commit 7de9f9084f93475998f35493a0e830b19e673b65
parent 770463352b8229482fd4768274babd449d95f8be
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Mon, 14 Nov 2022 17:12:49 +0100
htrdr-planeto: add tetrahedron normals precomputation
Add the -N option that enables normal precomputation
Diffstat:
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/planeto/htrdr_planeto.c b/src/planeto/htrdr_planeto.c
@@ -177,7 +177,7 @@ setup_atmosphere
rnatm_args.spectral_range[1] = args->spectral_domain.wlen_range[1];
rnatm_args.optical_thickness = args->optical_thickness;
rnatm_args.grid_definition_hint = args->octree_definition_hint;
- rnatm_args.precompute_normals = 0;
+ rnatm_args.precompute_normals = args->precompute_normals;
rnatm_args.logger = htrdr_get_logger(cmd->htrdr);
rnatm_args.allocator = htrdr_get_allocator(cmd->htrdr);
rnatm_args.nthreads = args->nthreads;
diff --git a/src/planeto/htrdr_planeto_args.c b/src/planeto/htrdr_planeto_args.c
@@ -129,6 +129,8 @@ print_help(const char* cmd)
printf(
" -i image image to compute\n");
printf(
+" -N precompute tetrahedron normals\n");
+ printf(
" -O octrees_storage\n"
" file where atmospheric acceleration structures are\n"
" stored/loaded\n");
@@ -478,7 +480,7 @@ htrdr_planeto_args_init(struct htrdr_planeto_args* args, int argc, char** argv)
*args = HTRDR_PLANETO_ARGS_DEFAULT;
- while((opt = getopt(argc, argv, "a:C:dfG:g:hi:O:o:S:s:T:t:V:v")) != -1) {
+ while((opt = getopt(argc, argv, "a:C:dfG:g:hi:N:O:o:S:s:T:t:V:v")) != -1) {
switch(opt) {
case 'a':
sa_add(args->aerosols, 1);
@@ -519,6 +521,7 @@ htrdr_planeto_args_init(struct htrdr_planeto_args* args, int argc, char** argv)
case 'i':
res = htrdr_args_image_parse(&args->image, optarg);
break;
+ case 'N': args->precompute_normals = 1; break;
case 'O': args->octrees_storage = optarg; break;
case 'o': args->output = optarg; break;
case 'S':
diff --git a/src/planeto/htrdr_planeto_args.h b/src/planeto/htrdr_planeto_args.h
@@ -76,6 +76,7 @@ struct htrdr_planeto_args {
/* Miscellaneous arguments */
unsigned nthreads; /* Hint on the nimber of threads to use */
enum htrdr_planeto_args_output_type output_type;
+ int precompute_normals; /* Pre-compute tetrahedron normals */
int force_output_overwrite; /* Replace output if it exists */
int verbose; /* Verbose level */
int quit; /* Stop the command */
@@ -101,6 +102,7 @@ struct htrdr_planeto_args {
UINT_MAX, /* Number of threads */ \
HTRDR_PLANETO_ARGS_OUTPUT_IMAGE, \
0, /* Force output overwrite */ \
+ 0, /* Precompute normals */ \
0, /* Verbosity level */ \
0 /* Stop the command */ \
}