--- ray/test/renders/Makefile 2018/11/21 20:42:58 1.7 +++ ray/test/renders/Makefile 2025/05/23 19:42:48 1.42 @@ -1,30 +1,95 @@ -# RCSid $Id: Makefile,v 1.7 2018/11/21 20:42:58 greg Exp $ +# RCSid $Id: Makefile,v 1.42 2025/05/23 19:42:48 greg Exp $ # # Render and primitive type testing # +# Number of processes to use on tests that run multi-core +ifeq ($(OS),Windows_NT) # is Windows + NPROC := 1 +else + NPROC := 2 +endif + # Image reduction for comparisons RDU_PFILT = pfilt -1 -r 1 -x 128 -y 128 -pa 1 # Image comparison command -IMG_CMP = radcompare -rms 0.08 -max 1.5 +IMG_CMP = radcompare -rel 0.007 -rms 0.1 -max 1.5 # Default target is to test everything -all: test-xform test-trans2-def test-trans2-fish test-dielectric-def \ -test-dielectric-fish test-glass-def test-glass-fish test-glass-up \ -test-tfunc-def test-tfunc-fish test-inst-def test-inst-fish \ -test-mesh-def test-mesh-cyl test-mirror-fish test-mist-def \ -test-trans-def test-trans-fish test-patterns-def +all: batch1 batch2 batch3 batch4 clean: - rm -f *.oct *.amb *_ill.dat *_*.hdr *.unf combined.rad + rm -f *.oct *.amb *_ill.dat blinds_ill?.dat *_*.hdr *.unf \ +*.[cg]pm{,.leaf} inst_rad.txt combined.rad rfmirror.mtx -# Special test of xform +###### +# More-or-less evenly divided batches for NPROC=1 (redundancies removed) -test-xform: combined_scene.rad - xform -f combined_scene.rad | grep -v '^[ ]*#' > combined.rad - radcompare ref/combined.rad combined.rad +batch1: test-mixtex-def test-mixtex-fish test-mixtex-plan test-mixtex-rplan \ +test-xform test-oconv test-rad test-obj2mesh +batch2: test-rfluxmtx test-mist-def test-glass-def test-glass-fish test-glass-up \ +test-spectra-fish test-wgmdf-def + +batch3: test-inst-def test-inst-fish test-trans2-def test-trans2-fish test-trans2-win \ +test-dielectric-def test-dielectric-fish + +batch4: test-rtrace test-prism1-fish test-prism2-fish test-mirror-fish \ +test-mesh-def test-mesh-cyl test-mesh-cyl2 test-tfunc-def test-tfunc-fish \ +test-trans-def test-trans-fish test-patterns-def test-patterns-plan + +### Test Aliases ### + +test-rpict: test-mirror-fish + +test-rpiece test-mkpmap: test-mixtex-def + +### Special test of xform ### + +test-xform: combined.rad + radcompare "-c#" -max 0.04 ref/combined.rad combined.rad + +combined.rad: combined_scene.rad + xform -f combined_scene.rad > combined.rad + +### Special test of rad ### + +test-rad: inst.oct + rad -n -s -e inst.rif > inst_rad.txt + radcompare ref/inst_rad.txt inst_rad.txt + +### Special tests of oconv and obj2mesh ### + +test-oconv: inst.oct + radcompare ref/inst.oct inst.oct + +test-obj2mesh: cab.obj + obj2mesh -w cab.obj | radcompare ref/cab.rtm - + +### Special test of rtrace ### + +test-rtrace: rtmirror_fish.hdr + $(RDU_PFILT) rtmirror_fish.hdr | $(IMG_CMP) -h ref/mirror_fish.hdr - + +rtmirror_fish.hdr: mirror.oct + rad -v 0 mirror.rif OPT=mirror.opt + vwrays -ff -vf fish.vf -x 2048 -y 1991 | rtrace -n $(NPROC) @mirror.opt \ +-ffc -x 2048 -y 1991 mirror.oct | pfilt -1 -e +3 -r .6 -x /2 -y /2 \ +> rtmirror_fish.hdr + rm -f mirror.opt + +### Special test for rfluxmtx (and rcontrib) ### + +test-rfluxmtx: rfmirror.mtx + radcompare -max .4 -rms .05 -rel 1e-4 ref/rfmirror.mtx rfmirror.mtx + +rfmirror.mtx: mirror.rad dummysky.rad basic.mat diorama_walls.rad \ +closed_end.rad front_cap.rad glass_pane.rad antimatter_portal.rad + rfluxmtx -n $(NPROC) -ab 2 -lw 1e-4 mirror.rad dummysky.rad \ +basic.mat diorama_walls.rad closed_end.rad front_cap.rad \ +glass_pane.rad antimatter_portal.rad > rfmirror.mtx + ### Octree for dielectric ### dielectric.oct: dielectric.rif @@ -32,11 +97,10 @@ dielectric.oct: dielectric.rif ### Reference and test for dielectric view def ### -test-dielectric-def: ref/dielectric_def.hdr dielectric_def.hdr +test-dielectric-def: dielectric_def.hdr $(RDU_PFILT) dielectric_def.hdr | $(IMG_CMP) ref/dielectric_def.hdr - -ref/dielectric_def.hdr: - make dielectric_def.hdr +ref/dielectric_def.hdr: dielectric_def.hdr $(RDU_PFILT) dielectric_def.hdr > ref/dielectric_def.hdr dielectric_def.hdr: dielectric.oct @@ -46,11 +110,10 @@ dielectric_def.hdr: dielectric.oct ### Reference and test for dielectric view fish ### -test-dielectric-fish: ref/dielectric_fish.hdr dielectric_fish.hdr +test-dielectric-fish: dielectric_fish.hdr $(RDU_PFILT) dielectric_fish.hdr | $(IMG_CMP) ref/dielectric_fish.hdr - -ref/dielectric_fish.hdr: - make dielectric_fish.hdr +ref/dielectric_fish.hdr: dielectric_fish.hdr $(RDU_PFILT) dielectric_fish.hdr > ref/dielectric_fish.hdr dielectric_fish.hdr: dielectric.oct @@ -65,11 +128,10 @@ glass.oct: glass.rif ### Reference and test for glass view def ### -test-glass-def: ref/glass_def.hdr glass_def.hdr +test-glass-def: glass_def.hdr $(RDU_PFILT) glass_def.hdr | $(IMG_CMP) ref/glass_def.hdr - -ref/glass_def.hdr: - make glass_def.hdr +ref/glass_def.hdr: glass_def.hdr $(RDU_PFILT) glass_def.hdr > ref/glass_def.hdr glass_def.hdr: glass.oct @@ -79,11 +141,10 @@ glass_def.hdr: glass.oct ### Reference and test for glass view fish ### -test-glass-fish: ref/glass_fish.hdr glass_fish.hdr +test-glass-fish: glass_fish.hdr $(RDU_PFILT) glass_fish.hdr | $(IMG_CMP) ref/glass_fish.hdr - -ref/glass_fish.hdr: - make glass_fish.hdr +ref/glass_fish.hdr: glass_fish.hdr $(RDU_PFILT) glass_fish.hdr > ref/glass_fish.hdr glass_fish.hdr: glass.oct @@ -93,11 +154,10 @@ glass_fish.hdr: glass.oct ### Reference and test for glass view up ### -test-glass-up: ref/glass_up.hdr glass_up.hdr +test-glass-up: glass_up.hdr $(RDU_PFILT) glass_up.hdr | $(IMG_CMP) ref/glass_up.hdr - -ref/glass_up.hdr: - make glass_up.hdr +ref/glass_up.hdr: glass_up.hdr $(RDU_PFILT) glass_up.hdr > ref/glass_up.hdr glass_up.hdr: glass.oct @@ -112,11 +172,10 @@ inst.oct: inst.rif ### Reference and test for inst view def ### -test-inst-def: ref/inst_def.hdr inst_def.hdr +test-inst-def: inst_def.hdr $(RDU_PFILT) inst_def.hdr | $(IMG_CMP) ref/inst_def.hdr - -ref/inst_def.hdr: - make inst_def.hdr +ref/inst_def.hdr: inst_def.hdr $(RDU_PFILT) inst_def.hdr > ref/inst_def.hdr inst_def.hdr: inst.oct @@ -126,11 +185,10 @@ inst_def.hdr: inst.oct ### Reference and test for inst view fish ### -test-inst-fish: ref/inst_fish.hdr inst_fish.hdr +test-inst-fish: inst_fish.hdr $(RDU_PFILT) inst_fish.hdr | $(IMG_CMP) ref/inst_fish.hdr - -ref/inst_fish.hdr: - make inst_fish.hdr +ref/inst_fish.hdr: inst_fish.hdr $(RDU_PFILT) inst_fish.hdr > ref/inst_fish.hdr inst_fish.hdr: inst.oct @@ -145,11 +203,10 @@ mesh.oct: mesh.rif ### Reference and test for mesh view def ### -test-mesh-def: ref/mesh_def.hdr mesh_def.hdr +test-mesh-def: mesh_def.hdr $(RDU_PFILT) mesh_def.hdr | $(IMG_CMP) ref/mesh_def.hdr - -ref/mesh_def.hdr: - make mesh_def.hdr +ref/mesh_def.hdr: mesh_def.hdr $(RDU_PFILT) mesh_def.hdr > ref/mesh_def.hdr mesh_def.hdr: mesh.oct @@ -159,11 +216,10 @@ mesh_def.hdr: mesh.oct ### Reference and test for mesh view cyl ### -test-mesh-cyl: ref/mesh_cyl.hdr mesh_cyl.hdr +test-mesh-cyl: mesh_cyl.hdr $(RDU_PFILT) mesh_cyl.hdr | $(IMG_CMP) ref/mesh_cyl.hdr - -ref/mesh_cyl.hdr: - make mesh_cyl.hdr +ref/mesh_cyl.hdr: mesh_cyl.hdr $(RDU_PFILT) mesh_cyl.hdr > ref/mesh_cyl.hdr mesh_cyl.hdr: mesh.oct @@ -173,11 +229,10 @@ mesh_cyl.hdr: mesh.oct ### Reference and test for mesh view cyl2 ### -test-mesh-cyl2: ref/mesh_cyl2.hdr mesh_cyl2.hdr +test-mesh-cyl2: mesh_cyl2.hdr $(RDU_PFILT) mesh_cyl2.hdr | $(IMG_CMP) ref/mesh_cyl2.hdr - -ref/mesh_cyl2.hdr: - make mesh_cyl2.hdr +ref/mesh_cyl2.hdr: mesh_cyl2.hdr $(RDU_PFILT) mesh_cyl2.hdr > ref/mesh_cyl2.hdr mesh_cyl2.hdr: mesh.oct @@ -192,11 +247,10 @@ mirror.oct: mirror.rif ### Reference and test for mirror view fish ### -test-mirror-fish: ref/mirror_fish.hdr mirror_fish.hdr +test-mirror-fish: mirror_fish.hdr $(RDU_PFILT) mirror_fish.hdr | $(IMG_CMP) ref/mirror_fish.hdr - -ref/mirror_fish.hdr: - make mirror_fish.hdr +ref/mirror_fish.hdr: mirror_fish.hdr $(RDU_PFILT) mirror_fish.hdr > ref/mirror_fish.hdr mirror_fish.hdr: mirror.oct @@ -204,22 +258,16 @@ mirror_fish.hdr: mirror.oct ### End mirror-fish tests -### Octree for mist ### - -mist.oct: mist.rif - rad -v 0 mist.rif - ### Reference and test for mist view def ### -test-mist-def: ref/mist_def.hdr mist_def.hdr +test-mist-def: mist_def.hdr $(RDU_PFILT) mist_def.hdr | $(IMG_CMP) ref/mist_def.hdr - -ref/mist_def.hdr: - make mist_def.hdr +ref/mist_def.hdr: mist_def.hdr $(RDU_PFILT) mist_def.hdr > ref/mist_def.hdr -mist_def.hdr: mist.oct - rad -v def mist.rif +mist_def.hdr: mist.rif + rad -N $(NPROC) mist.rif ### End mist-def tests @@ -230,11 +278,10 @@ prism1.oct: prism1.rif ### Reference and test for prism1 view fish ### -test-prism1-fish: ref/prism1_fish.hdr prism1_fish.hdr +test-prism1-fish: prism1_fish.hdr $(RDU_PFILT) prism1_fish.hdr | $(IMG_CMP) ref/prism1_fish.hdr - -ref/prism1_fish.hdr: - make prism1_fish.hdr +ref/prism1_fish.hdr: prism1_fish.hdr $(RDU_PFILT) prism1_fish.hdr > ref/prism1_fish.hdr prism1_fish.hdr: prism1.oct @@ -249,11 +296,10 @@ prism2.oct: prism2.rif ### Reference and test for prism2 view fish ### -test-prism2-fish: ref/prism2_fish.hdr prism2_fish.hdr +test-prism2-fish: prism2_fish.hdr $(RDU_PFILT) prism2_fish.hdr | $(IMG_CMP) ref/prism2_fish.hdr - -ref/prism2_fish.hdr: - make prism2_fish.hdr +ref/prism2_fish.hdr: prism2_fish.hdr $(RDU_PFILT) prism2_fish.hdr > ref/prism2_fish.hdr prism2_fish.hdr: prism2.oct @@ -263,33 +309,31 @@ prism2_fish.hdr: prism2.oct ### Octree for tfunc ### -tfunc.oct: tfunc.rif +tfunc1.oct: tfunc.rif rad -v 0 tfunc.rif ### Reference and test for tfunc view def ### -test-tfunc-def: ref/tfunc_def.hdr tfunc_def.hdr +test-tfunc-def: tfunc_def.hdr $(RDU_PFILT) tfunc_def.hdr | $(IMG_CMP) ref/tfunc_def.hdr - -ref/tfunc_def.hdr: - make tfunc_def.hdr +ref/tfunc_def.hdr: tfunc_def.hdr $(RDU_PFILT) tfunc_def.hdr > ref/tfunc_def.hdr -tfunc_def.hdr: tfunc.oct +tfunc_def.hdr: tfunc1.oct rad -v def tfunc.rif ### End tfunc-def tests ### Reference and test for tfunc view fish ### -test-tfunc-fish: ref/tfunc_fish.hdr tfunc_fish.hdr +test-tfunc-fish: tfunc_fish.hdr $(RDU_PFILT) tfunc_fish.hdr | $(IMG_CMP) ref/tfunc_fish.hdr - -ref/tfunc_fish.hdr: - make tfunc_fish.hdr +ref/tfunc_fish.hdr: tfunc_fish.hdr $(RDU_PFILT) tfunc_fish.hdr > ref/tfunc_fish.hdr -tfunc_fish.hdr: tfunc.oct +tfunc_fish.hdr: tfunc1.oct rad -v fish tfunc.rif ### End tfunc-fish tests @@ -301,11 +345,10 @@ trans.oct: trans.rif ### Reference and test for trans view def ### -test-trans-def: ref/trans_def.hdr trans_def.hdr +test-trans-def: trans_def.hdr $(RDU_PFILT) trans_def.hdr | $(IMG_CMP) ref/trans_def.hdr - -ref/trans_def.hdr: - make trans_def.hdr +ref/trans_def.hdr: trans_def.hdr $(RDU_PFILT) trans_def.hdr > ref/trans_def.hdr trans_def.hdr: trans.oct @@ -315,11 +358,10 @@ trans_def.hdr: trans.oct ### Reference and test for trans view fish ### -test-trans-fish: ref/trans_fish.hdr trans_fish.hdr +test-trans-fish: trans_fish.hdr $(RDU_PFILT) trans_fish.hdr | $(IMG_CMP) ref/trans_fish.hdr - -ref/trans_fish.hdr: - make trans_fish.hdr +ref/trans_fish.hdr: trans_fish.hdr $(RDU_PFILT) trans_fish.hdr > ref/trans_fish.hdr trans_fish.hdr: trans.oct @@ -329,47 +371,44 @@ trans_fish.hdr: trans.oct ### Octree for trans2 ### -trans2.oct: trans2.rif +trans21.oct: trans2.rif rad -v 0 trans2.rif ### Reference and test for trans2 view def ### -test-trans2-def: ref/trans2_def.hdr trans2_def.hdr +test-trans2-def: trans2_def.hdr $(RDU_PFILT) trans2_def.hdr | $(IMG_CMP) ref/trans2_def.hdr - -ref/trans2_def.hdr: - make trans2_def.hdr +ref/trans2_def.hdr: trans2_def.hdr $(RDU_PFILT) trans2_def.hdr > ref/trans2_def.hdr -trans2_def.hdr: trans2.oct +trans2_def.hdr: trans21.oct rad -v def trans2.rif ### End trans2-def tests ### Reference and test for trans2 view fish ### -test-trans2-fish: ref/trans2_fish.hdr trans2_fish.hdr +test-trans2-fish: trans2_fish.hdr $(RDU_PFILT) trans2_fish.hdr | $(IMG_CMP) ref/trans2_fish.hdr - -ref/trans2_fish.hdr: - make trans2_fish.hdr +ref/trans2_fish.hdr: trans2_fish.hdr $(RDU_PFILT) trans2_fish.hdr > ref/trans2_fish.hdr -trans2_fish.hdr: trans2.oct +trans2_fish.hdr: trans21.oct rad -v fish trans2.rif ### End trans2-fish tests ### Reference and test for trans2 view win ### -test-trans2-win: ref/trans2_win.hdr trans2_win.hdr +test-trans2-win: trans2_win.hdr $(RDU_PFILT) trans2_win.hdr | $(IMG_CMP) ref/trans2_win.hdr - -ref/trans2_win.hdr: - make trans2_win.hdr +ref/trans2_win.hdr: trans2_win.hdr $(RDU_PFILT) trans2_win.hdr > ref/trans2_win.hdr -trans2_win.hdr: trans2.oct +trans2_win.hdr: trans21.oct rad -v win trans2.rif ### End trans2-win tests @@ -381,14 +420,119 @@ patterns.oct: patterns.rif ### Reference and test for patterns view def ### -test-patterns-def: ref/patterns_def.hdr patterns_def.hdr +test-patterns-def: patterns_def.hdr $(RDU_PFILT) patterns_def.hdr | $(IMG_CMP) ref/patterns_def.hdr - -ref/patterns_def.hdr: - make patterns_def.hdr +ref/patterns_def.hdr: patterns_def.hdr $(RDU_PFILT) patterns_def.hdr > ref/patterns_def.hdr patterns_def.hdr: patterns.oct rad -v def patterns.rif ### End patterns-def tests + +### Reference and test for patterns view plan ### + +test-patterns-plan: patterns_plan.hdr + $(RDU_PFILT) patterns_plan.hdr | $(IMG_CMP) ref/patterns_plan.hdr - + +ref/patterns_plan.hdr: patterns_plan.hdr + $(RDU_PFILT) patterns_plan.hdr > ref/patterns_plan.hdr + +patterns_plan.hdr: patterns.oct + rad -v plan patterns.rif + +### End patterns-plan tests + +### Octree for mixtex ### + +mixtex.oct: mixtex.rif + rad -v 0 -N $(NPROC) mixtex.rif + +### Reference and test for mixtex view def ### + +test-mixtex-def: mixtex_def.hdr + $(RDU_PFILT) mixtex_def.hdr | $(IMG_CMP) ref/mixtex_def.hdr - + +ref/mixtex_def.hdr: mixtex_def.hdr + $(RDU_PFILT) mixtex_def.hdr > ref/mixtex_def.hdr + +mixtex_def.hdr: mixtex.oct + rad -v def -N $(NPROC) mixtex.rif + +### End mixtex-def tests + +### Reference and test for mixtex view fish ### + +test-mixtex-fish: mixtex_fish.hdr + $(RDU_PFILT) mixtex_fish.hdr | $(IMG_CMP) ref/mixtex_fish.hdr - + +ref/mixtex_fish.hdr: mixtex_fish.hdr + $(RDU_PFILT) mixtex_fish.hdr > ref/mixtex_fish.hdr + +mixtex_fish.hdr: mixtex.oct + rad -v fish mixtex.rif + +### End mixtex-fish tests + +### Reference and test for mixtex view plan ### + +test-mixtex-plan: mixtex_plan.hdr + $(RDU_PFILT) mixtex_plan.hdr | $(IMG_CMP) ref/mixtex_plan.hdr - + +ref/mixtex_plan.hdr: mixtex_plan.hdr + $(RDU_PFILT) mixtex_plan.hdr > ref/mixtex_plan.hdr + +mixtex_plan.hdr: mixtex.oct + rad -v plan mixtex.rif + +### End mixtex-plan tests + +### Reference and test for mixtex view rplan ### + +test-mixtex-rplan: mixtex_rplan.hdr + $(RDU_PFILT) mixtex_rplan.hdr | $(IMG_CMP) ref/mixtex_rplan.hdr - + +ref/mixtex_rplan.hdr: mixtex_rplan.hdr + $(RDU_PFILT) mixtex_rplan.hdr > ref/mixtex_rplan.hdr + +mixtex_rplan.hdr: mixtex.oct + rad -v rplan mixtex.rif + +### End mixtex-rplan tests + +### Octree for spectra + +spectra.oct: spectra.rif + rad -v 0 spectra.rif + +### Reference and test for spectra fish ### + +test-spectra-fish: spectra_fish.hdr + $(RDU_PFILT) spectra_fish.hdr | $(IMG_CMP) ref/spectra_fish.hdr - + +ref/spectra_fish.hdr: spectra_fish.hdr + $(RDU_PFILT) spectra_fish.hdr > ref/spectra_fish.hdr + +spectra_fish.hdr: spectra.oct + rad -v fish spectra.rif + +### End spectra-fish tests + +### Octree for wgmdf + +wgmdf.oct: wgmdf.rif + rad -v 0 wgmdf.rif + +### Reference and test for wgmdf def ### + +test-wgmdf-def: wgmdf_def.hdr + $(RDU_PFILT) wgmdf_def.hdr | $(IMG_CMP) ref/wgmdf_def.hdr - + +ref/wgmdf_def.hdr: wgmdf_def.hdr + $(RDU_PFILT) wgmdf_def.hdr > ref/wgmdf_def.hdr + +wgmdf_def.hdr: wgmdf.oct + rad -v def wgmdf.rif + +### End of wgmdf-def tests