htrdr

Solving radiative transfer in heterogeneous media
git clone git://git.meso-star.fr/htrdr.git
Log | Files | Refs | README | LICENSE

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:
Msrc/planeto/htrdr_planeto.c | 2+-
Msrc/planeto/htrdr_planeto_args.c | 5++++-
Msrc/planeto/htrdr_planeto_args.h | 2++
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 */ \ }