34 #include <tiled_sequence.h> 38 #include <renderer_interface.h> 162 NEE_ALGORITHM_MESH = 0,
163 NEE_ALGORITHM_VPL = 1,
171 uint32 max_path_length;
172 uint32 direct_lighting : 1;
173 uint32 direct_lighting_nee : 1;
174 uint32 direct_lighting_bsdf : 1;
175 uint32 indirect_lighting_nee : 1;
176 uint32 indirect_lighting_bsdf : 1;
177 uint32 visible_lights : 1;
178 uint32 diffuse_scattering : 1;
179 uint32 glossy_scattering : 1;
180 uint32 indirect_glossy : 1;
185 #if !defined(OPTIX_COMPILATION) 188 direct_lighting_nee(
true),
189 direct_lighting_bsdf(
true),
190 indirect_lighting_nee(
true),
191 indirect_lighting_bsdf(
true),
192 visible_lights(
true),
193 direct_lighting(
true),
194 diffuse_scattering(
true),
195 glossy_scattering(
true),
196 indirect_glossy(
false),
198 nee_type(NEE_ALGORITHM_VPL),
202 void parse(
const int argc,
char** argv)
204 for (
int i = 0; i < argc; ++i)
206 if (strcmp(argv[i],
"-pl") == 0 ||
207 strcmp(argv[i],
"-path-length") == 0 ||
208 strcmp(argv[i],
"-max-path-length") == 0)
209 max_path_length = atoi(argv[++i]);
210 else if (strcmp(argv[i],
"-bounces") == 0)
211 max_path_length = atoi(argv[++i]) + 1;
212 else if (strcmp(argv[i],
"-nee") == 0)
213 direct_lighting_nee = indirect_lighting_nee = atoi(argv[++i]) > 0;
214 else if (strcmp(argv[i],
"-bsdf") == 0)
215 direct_lighting_bsdf = indirect_lighting_bsdf = atoi(argv[++i]) > 0;
216 else if (strcmp(argv[i],
"-direct-nee") == 0)
217 direct_lighting_nee = atoi(argv[++i]) > 0;
218 else if (strcmp(argv[i],
"-direct-bsdf") == 0)
219 direct_lighting_bsdf = atoi(argv[++i]) > 0;
220 else if (strcmp(argv[i],
"-indirect-nee") == 0)
221 indirect_lighting_nee = atoi(argv[++i]) > 0;
222 else if (strcmp(argv[i],
"-indirect-bsdf") == 0)
223 indirect_lighting_bsdf = atoi(argv[++i]) > 0;
224 else if (strcmp(argv[i],
"-visible-lights") == 0)
225 visible_lights = atoi(argv[++i]) > 0;
226 else if (strcmp(argv[i],
"-direct-lighting") == 0)
227 direct_lighting = atoi(argv[++i]) > 0;
228 else if (strcmp(argv[i],
"-indirect-glossy") == 0)
229 indirect_glossy = atoi(argv[++i]) > 0;
230 else if (strcmp(argv[i],
"-diffuse") == 0)
231 diffuse_scattering = atoi(argv[++i]) > 0;
232 else if (strcmp(argv[i],
"-glossy") == 0)
233 glossy_scattering = atoi(argv[++i]) > 0;
234 else if (strcmp(argv[i],
"-rr") == 0)
235 rr = atoi(argv[++i]) > 0;
236 else if (strcmp(argv[i],
"-nee-algorithm") == 0 ||
237 strcmp(argv[i],
"-nee-alg") == 0)
239 if (strcmp(argv[i+1],
"mesh") == 0)
240 nee_type = NEE_ALGORITHM_MESH;
241 else if (strcmp(argv[i+1],
"vpl") == 0)
242 nee_type = NEE_ALGORITHM_VPL;
243 else if (strcmp(argv[i+1],
"rl") == 0)
244 nee_type = NEE_ALGORITHM_RL;
276 void setup_samples(
const uint32 instance);
278 void keyboard(
unsigned char character,
int x,
int y,
bool& invalidate);
282 void dump_speed_stats(FILE* stats);
284 void update_vtls_rl(
const uint32 instance);
297 VTLRLStorage* m_vtls_rl;
302 uint32 m_pathtracer_raygen;
Definition: mesh_lights.h:59
Definition: clustered_rl.h:161
Definition: pathtracer.h:169
Defines an axis-aligned bounding box class.
Definition: pathtracer.h:265
Definition: tiled_sequence.h:131
Definition: renderer_interface.h:45
Definition: clustered_rl.h:87
Definition: renderer.h:52
void destroy()
Definition: pathtracer.h:280
Defines utilities for variance estimation.
Definition: pathtracer.h:254
Defines several random samplers.