@woosh/meep-engine 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/editor/process/SymbolicDisplayProcess.js +106 -106
- package/editor/process/symbolic/{SoundEmitterSymbolicDisplay.js → AudioEmitterSymbolicDisplay.js} +67 -57
- package/package.json +94 -94
- package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +110 -102
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts +54 -0
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.js +10 -3
- package/src/engine/EntityCreator.d.ts +19 -11
- package/src/engine/EntityCreator.d.ts.map +1 -1
- package/src/engine/EntityCreator.js +116 -94
- package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
- package/src/engine/achievements/AchievementManager.js +437 -433
- package/src/engine/animation/AnimatedActions.d.ts +6 -1
- package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
- package/src/engine/animation/AnimatedActions.js +111 -81
- package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
- package/src/engine/animation/AnimationUtils.js +234 -252
- package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +275 -269
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +26 -5
- package/src/engine/ecs/util/hideEntityGracefully.d.ts.map +1 -1
- package/src/engine/ecs/util/hideEntityGracefully.js +196 -208
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +3 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +4 -2
- package/src/engine/sound/SOUND_EMITTER_RETIREMENT_PLAN.md +536 -0
- package/src/engine/sound/SoundEngine.d.ts +2 -2
- package/src/engine/sound/SoundEngine.js +124 -124
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +20 -0
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +25 -2
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +6 -6
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +338 -314
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +143 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +191 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts +33 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +81 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +65 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -0
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +184 -0
- package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +999 -993
- package/src/engine/sound/sopra/README.md +644 -643
- package/src/engine/sound/sopra/SopraEngine.d.ts +2 -2
- package/src/engine/sound/sopra/SopraEngine.js +432 -432
- package/src/engine/sound/sopra/legacy/SoundAttenuationFunction.d.ts.map +1 -0
- package/src/engine/sound/{ecs → sopra/legacy}/SoundController.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/SoundController.d.ts.map +1 -0
- package/src/engine/sound/{ecs → sopra/legacy}/SoundController.js +176 -176
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.d.ts +11 -27
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.js +352 -382
- package/src/engine/sound/sopra/legacy/SoundEmitterFlags.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/SoundEmitterSerializationAdapter.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts.map +1 -1
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundPanningModelType.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.d.ts +11 -55
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -0
- package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.js +278 -357
- package/src/engine/sound/sopra/legacy/SoundTrackFlags.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts +34 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts.map +1 -0
- package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.js +279 -0
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts +3 -3
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.js +122 -122
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +7 -1
- package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
- package/src/shade/device/timing/GPUTimerArray.js +10 -0
- package/src/shade/playground/add_random_meshes.d.ts +19 -3
- package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
- package/src/shade/playground/add_random_meshes.js +132 -84
- package/src/shade/playground/bvh_repro/README.md +57 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts +33 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts.map +1 -0
- package/src/shade/playground/bvh_repro/bvh_repro_device.js +90 -0
- package/src/shade/playground/bvh_repro/index.html +124 -0
- package/src/shade/playground/bvh_repro/main.d.ts.map +1 -0
- package/src/shade/playground/bvh_repro/main.js +254 -0
- package/src/shade/playground/load_default_environment.d.ts +10 -1
- package/src/shade/playground/load_default_environment.d.ts.map +1 -1
- package/src/shade/playground/load_default_environment.js +44 -20
- package/src/shade/playground/make_playground_asset_manager.d.ts +16 -0
- package/src/shade/playground/make_playground_asset_manager.d.ts.map +1 -0
- package/src/shade/playground/make_playground_asset_manager.js +33 -0
- package/src/shade/playground/skinned_blas_refit/README.md +103 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +47 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/add_floor.js +71 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts +28 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.js +745 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts +30 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/flat_environment.js +67 -0
- package/src/shade/playground/skinned_blas_refit/index.html +168 -0
- package/src/shade/playground/skinned_blas_refit/main.d.ts +8 -0
- package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/main.js +502 -0
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts +81 -0
- package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/place_character.js +116 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +21 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +104 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts +23 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +94 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts +26 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +134 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +40 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +135 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts +31 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +240 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts +20 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +202 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +50 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +366 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +17 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -0
- package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +249 -0
- package/src/shade/playground/sponza_path_trace/README.md +57 -0
- package/src/shade/playground/sponza_path_trace/index.html +164 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts +8 -0
- package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -0
- package/src/shade/playground/sponza_path_trace/main.js +363 -0
- package/src/shade/renderer/Renderer.d.ts +16 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +23 -4
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts +5 -1
- package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
- package/src/shade/renderer/animation/GPUAnimationManager.js +28 -3
- package/src/shade/renderer/animation/Skin.d.ts +9 -7
- package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
- package/src/shade/renderer/animation/Skin.js +9 -7
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts +35 -0
- package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts.map +1 -0
- package/src/shade/renderer/animation/compute_skin_world_bounds.js +146 -0
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
- package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +41 -0
- package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/GPUGeometryManager.js +65 -15
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +78 -7
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +302 -77
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +18 -6
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +19 -6
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts +51 -0
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.js +260 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts +23 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.js +82 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts +25 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts +30 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -0
- package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +122 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts +55 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.js +70 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.js +45 -0
- package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +1115 -0
- package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +201 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts +88 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.js +233 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +18 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +38 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +79 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +49 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +43 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +24 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +143 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +17 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +83 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +24 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +141 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +31 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +422 -0
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.d.ts.map +1 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.js +1 -2
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts +9 -0
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.js +23 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts +18 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.js +32 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts +27 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.js +41 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts +25 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.js +74 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.d.ts +71 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/defs.js +79 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +37 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +197 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts +16 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +85 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts +15 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +192 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts +12 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts.map +1 -0
- package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.js +188 -0
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +16 -4
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +235 -24
- package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
- package/src/shade/renderer/scene/GPUSceneContext.js +15 -3
- package/src/shade/renderer/scene/SkinnedMesh.d.ts +57 -11
- package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
- package/src/shade/renderer/scene/SkinnedMesh.js +111 -11
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts +22 -0
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -0
- package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +145 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts +18 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts.map +1 -0
- package/src/shade/renderer/scene/verify_gpu_tlas_build.js +364 -0
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts +9 -1
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.js +29 -21
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.js +31 -0
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.js +87 -39
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.js +40 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.js +52 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts +9 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.js +9 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts +20 -0
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.js +52 -34
- package/src/shade/renderer/texture/virtual/README.md +255 -276
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -2
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +83 -0
- package/src/view/interaction/InterfaceCommand.d.ts +8 -8
- package/src/view/interaction/InterfaceCommand.d.ts.map +1 -1
- package/src/view/interaction/InterfaceCommand.js +146 -146
- package/src/view/interaction/createInterfaceCommandButton.d.ts.map +1 -1
- package/src/view/interaction/createInterfaceCommandButton.js +115 -124
- package/src/engine/ecs/components/Timer.d.ts +0 -50
- package/src/engine/ecs/components/Timer.d.ts.map +0 -1
- package/src/engine/ecs/components/Timer.js +0 -80
- package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts +0 -22
- package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessBinary.js +0 -33
- package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts +0 -12
- package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessConstant.js +0 -27
- package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts +0 -17
- package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/PointFitnessFunction.js +0 -20
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts +0 -12
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.js +0 -27
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts +0 -12
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.js +0 -28
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts +0 -50
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +0 -176
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts +0 -7
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.js +0 -68
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts +0 -7
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.js +0 -89
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts +0 -17
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts.map +0 -1
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.js +0 -60
- package/src/engine/ecs/systems/TimerSystem.d.ts +0 -10
- package/src/engine/ecs/systems/TimerSystem.d.ts.map +0 -1
- package/src/engine/ecs/systems/TimerSystem.js +0 -86
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts +0 -13
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts.map +0 -1
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +0 -14
- package/src/engine/graphics/StandardFrameBuffers.d.ts +0 -7
- package/src/engine/graphics/StandardFrameBuffers.d.ts.map +0 -1
- package/src/engine/graphics/StandardFrameBuffers.js +0 -9
- package/src/engine/graphics/copy_transform_to_threejs_object.d.ts +0 -7
- package/src/engine/graphics/copy_transform_to_threejs_object.d.ts.map +0 -1
- package/src/engine/graphics/copy_transform_to_threejs_object.js +0 -12
- package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts +0 -42
- package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/LightBinding.js +0 -133
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts +0 -25
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.js +0 -90
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts +0 -7
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.js +0 -24
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts +0 -7
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.js +0 -12
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts +0 -8
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.js +0 -41
- package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts +0 -4
- package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/LightShadow.js +0 -4
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts +0 -27
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.js +0 -53
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts +0 -8
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.js +0 -7
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts +0 -14
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.js +0 -62
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts +0 -30
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +0 -77
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts +0 -13
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.js +0 -43
- package/src/engine/graphics/ecs/light/three/light2type.d.ts +0 -8
- package/src/engine/graphics/ecs/light/three/light2type.d.ts.map +0 -1
- package/src/engine/graphics/ecs/light/three/light2type.js +0 -20
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts +0 -7
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts.map +0 -1
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.js +0 -13
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts +0 -20
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.js +0 -47
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts +0 -12
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.js +0 -19
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts +0 -18
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.js +0 -249
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.js +0 -8
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.js +0 -8
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +0 -14
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +0 -20
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.js +0 -58
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.js +0 -44
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.js +0 -28
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.js +0 -28
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.js +0 -39
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.js +0 -124
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts +0 -3
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.js +0 -30
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts +0 -64
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.js +0 -131
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts +0 -32
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.js +0 -62
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts +0 -46
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.js +0 -272
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts +0 -28
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.js +0 -57
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts +0 -32
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +0 -55
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts +0 -34
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +0 -178
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.js +0 -31
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts +0 -13
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.js +0 -13
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.js +0 -26
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts +0 -4
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.js +0 -5
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.js +0 -14
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts +0 -37
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.js +0 -73
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.js +0 -30
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.js +0 -30
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.js +0 -32
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.js +0 -15
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.js +0 -27
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.js +0 -26
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.js +0 -25
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.js +0 -39
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts +0 -39
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.js +0 -45
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts +0 -9
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.js +0 -10
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts +0 -13
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.js +0 -14
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +0 -50
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +0 -47
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts +0 -51
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.js +0 -93
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts +0 -6
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.js +0 -23
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts +0 -7
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.js +0 -48
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts +0 -21
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.js +0 -35
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts +0 -20
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.js +0 -35
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts +0 -14
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.js +0 -17
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts +0 -5
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.js +0 -150
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts +0 -55
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.js +0 -105
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts +0 -49
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.js +0 -103
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts +0 -4
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.js +0 -6
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts +0 -83
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.js +0 -188
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts +0 -123
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts.map +0 -1
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.js +0 -415
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +0 -71
- package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +0 -1
- package/src/engine/graphics/render/buffer/FrameBufferManager.js +0 -229
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts +0 -22
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts.map +0 -1
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +0 -84
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts +0 -33
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/LightRenderMetadata.js +0 -61
- package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +0 -155
- package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts +0 -29
- package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/assign_cluster.js +0 -124
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.js +0 -17
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +0 -17
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.js +0 -29
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts +0 -12
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.js +0 -43
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts +0 -8
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.js +0 -68
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts +0 -4
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.js +0 -46
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts +0 -14
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.js +0 -327
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +0 -40
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.js +0 -74
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +0 -55
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.js +0 -11
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +0 -34
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +0 -60
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +0 -38
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +0 -30
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +0 -51
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/model/Decal.js +0 -133
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts +0 -16
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.js +0 -18
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.js +0 -8
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts +0 -10
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.js +0 -65
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts +0 -7
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +0 -8
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts +0 -11
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.js +0 -38
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts +0 -21
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +0 -96
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts +0 -22
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +0 -44
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts +0 -11
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +0 -169
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +0 -33
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.js +0 -2
- package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts +0 -9
- package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/sort_decal_data.js +0 -102
- package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts +0 -10
- package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts.map +0 -1
- package/src/engine/graphics/render/forward_plus/testClusterEquality.js +0 -22
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts +0 -19
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts.map +0 -1
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js +0 -62
- package/src/engine/graphics/shaders/AlphaBlendShader.d.ts +0 -18
- package/src/engine/graphics/shaders/AlphaBlendShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/AlphaBlendShader.js +0 -42
- package/src/engine/graphics/shaders/ClearShader.d.ts +0 -8
- package/src/engine/graphics/shaders/ClearShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ClearShader.js +0 -28
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts +0 -13
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.js +0 -38
- package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts +0 -7
- package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts.map +0 -1
- package/src/engine/graphics/shaders/ScreenSpaceShader.js +0 -102
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts +0 -102
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts.map +0 -1
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.js +0 -277
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts +0 -40
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts.map +0 -1
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.js +0 -57
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts +0 -8
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts.map +0 -1
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.js +0 -39
- package/src/engine/graphics/shadows/README.md +0 -6
- package/src/engine/graphics/shadows/vsm.glsl.d.ts +0 -3
- package/src/engine/graphics/shadows/vsm.glsl.d.ts.map +0 -1
- package/src/engine/graphics/shadows/vsm.glsl.js +0 -43
- package/src/engine/graphics/util/composeMatrix4.d.ts +0 -9
- package/src/engine/graphics/util/composeMatrix4.d.ts.map +0 -1
- package/src/engine/graphics/util/composeMatrix4.js +0 -13
- package/src/engine/graphics/util/threeUpdateMatrix.d.ts +0 -6
- package/src/engine/graphics/util/threeUpdateMatrix.d.ts.map +0 -1
- package/src/engine/graphics/util/threeUpdateMatrix.js +0 -14
- package/src/engine/graphics/util/threeUpdateTransform.d.ts +0 -6
- package/src/engine/graphics/util/threeUpdateTransform.d.ts.map +0 -1
- package/src/engine/graphics/util/threeUpdateTransform.js +0 -16
- package/src/engine/sound/ecs/SoundController.d.ts.map +0 -1
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts +0 -23
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +0 -1
- package/src/engine/sound/ecs/SoundControllerSystem.js +0 -103
- package/src/engine/sound/ecs/emitter/SoundAttenuationFunction.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts +0 -55
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +0 -265
- package/src/engine/sound/ecs/emitter/SoundEmitterFlags.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +0 -88
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -159
- package/src/engine/sound/ecs/emitter/SoundPanningModelType.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundTrack.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/SoundTrackFlags.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts +0 -8
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts.map +0 -1
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.js +0 -41
- package/src/shade/playground/FramePerformanceMonitor.d.ts +0 -114
- package/src/shade/playground/FramePerformanceMonitor.d.ts.map +0 -1
- package/src/shade/playground/FramePerformanceMonitor.js +0 -468
- package/src/shade/playground/add_random_lights.d.ts +0 -8
- package/src/shade/playground/add_random_lights.d.ts.map +0 -1
- package/src/shade/playground/add_random_lights.js +0 -50
- package/src/shade/playground/animation_prototype.d.ts +0 -24
- package/src/shade/playground/animation_prototype.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype.js +0 -508
- package/src/shade/playground/animation_prototype_skinning.d.ts +0 -31
- package/src/shade/playground/animation_prototype_skinning.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype_skinning.js +0 -647
- package/src/shade/playground/animation_prototype_stress.d.ts +0 -35
- package/src/shade/playground/animation_prototype_stress.d.ts.map +0 -1
- package/src/shade/playground/animation_prototype_stress.js +0 -765
- package/src/shade/playground/enable_picker.d.ts +0 -8
- package/src/shade/playground/enable_picker.d.ts.map +0 -1
- package/src/shade/playground/enable_picker.js +0 -60
- package/src/shade/playground/gltf_skinned_prototype.d.ts +0 -27
- package/src/shade/playground/gltf_skinned_prototype.d.ts.map +0 -1
- package/src/shade/playground/gltf_skinned_prototype.js +0 -560
- package/src/shade/playground/gltf_skinned_stress_prototype.d.ts +0 -24
- package/src/shade/playground/gltf_skinned_stress_prototype.d.ts.map +0 -1
- package/src/shade/playground/gltf_skinned_stress_prototype.js +0 -387
- package/src/shade/playground/gltf_viewer.d.ts +0 -2
- package/src/shade/playground/gltf_viewer.d.ts.map +0 -1
- package/src/shade/playground/gltf_viewer.js +0 -283
- package/src/shade/playground/main.d.ts.map +0 -1
- package/src/shade/playground/main.js +0 -2727
- package/src/shade/playground/make_animated_instances.d.ts +0 -9
- package/src/shade/playground/make_animated_instances.d.ts.map +0 -1
- package/src/shade/playground/make_animated_instances.js +0 -118
- package/src/shade/playground/prototype_virtual_texture.d.ts +0 -2
- package/src/shade/playground/prototype_virtual_texture.d.ts.map +0 -1
- package/src/shade/playground/prototype_virtual_texture.js +0 -274
- package/src/shade/playground/prototype_volumetrics_01.d.ts +0 -2
- package/src/shade/playground/prototype_volumetrics_01.d.ts.map +0 -1
- package/src/shade/playground/prototype_volumetrics_01.js +0 -206
- package/src/shade/playground/sample.d.ts +0 -2
- package/src/shade/playground/sample.d.ts.map +0 -1
- package/src/shade/playground/sample.js +0 -234
- package/src/shade/playground/sample_load_gltf.d.ts +0 -9
- package/src/shade/playground/sample_load_gltf.d.ts.map +0 -1
- package/src/shade/playground/sample_load_gltf.js +0 -103
- package/src/shade/playground/spread_node3d_grid.d.ts +0 -7
- package/src/shade/playground/spread_node3d_grid.d.ts.map +0 -1
- package/src/shade/playground/spread_node3d_grid.js +0 -20
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts +0 -24
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts.map +0 -1
- package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.js +0 -88
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.js +0 -49
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.js +0 -93
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts +0 -24
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.js +0 -119
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.js +0 -235
- package/src/shade/renderer/gpu_primitive/sort/NOTES.md +0 -5
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.js +0 -136
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts +0 -18
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.js +0 -108
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts +0 -35
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/defs.js +0 -42
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts +0 -13
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.js +0 -116
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.js +0 -120
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.js +0 -76
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.js +0 -125
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.js +0 -140
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.js +0 -338
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts +0 -7
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.js +0 -261
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.js +0 -14
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts +0 -25
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.js +0 -25
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts +0 -15
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.js +0 -192
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.js +0 -990
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.js +0 -82
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.js +0 -44
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts +0 -5
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.js +0 -156
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts +0 -6
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.js +0 -55
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts +0 -14
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.js +0 -110
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts +0 -12
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.js +0 -74
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts +0 -3
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts.map +0 -1
- package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.js +0 -125
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.js +0 -36
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts +0 -7
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.js +0 -54
- package/src/shade/renderer/shader/chunk/bvh/packed/NOTES.md +0 -19
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.js +0 -9
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts +0 -6
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.js +0 -5
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts +0 -8
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.js +0 -17
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.js +0 -14
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.js +0 -27
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.js +0 -31
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.js +0 -25
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts +0 -3
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts.map +0 -1
- package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.js +0 -42
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.js +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.d.ts +0 -0
- /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.js +0 -0
- /package/src/shade/playground/{main.d.ts → bvh_repro/main.d.ts} +0 -0
|
@@ -1,2727 +0,0 @@
|
|
|
1
|
-
import { downloadAsFile } from "../../core/binary/downloadAsFile.js";
|
|
2
|
-
import { Color } from "../../core/color/Color.js";
|
|
3
|
-
import { AABB3 } from "../../core/geom/3d/aabb/AABB3.js";
|
|
4
|
-
import {
|
|
5
|
-
aabb3_intersects_frustum_degree
|
|
6
|
-
} from "../../core/geom/3d/aabb/aabb3_intersects_frustum_degree.js";
|
|
7
|
-
import Quaternion from "../../core/geom/Quaternion.js";
|
|
8
|
-
import Vector3 from "../../core/geom/Vector3.js";
|
|
9
|
-
import { DEG_TO_RAD } from "../../core/math/DEG_TO_RAD.js";
|
|
10
|
-
import {
|
|
11
|
-
MIE_PARTICLES_STANDARD_PRECOMPUTED
|
|
12
|
-
} from "../../core/math/physics/mie/MIE_PARTICLES_STANDARD_PRECOMPUTED.js";
|
|
13
|
-
import { randomFloatBetween } from "../../core/math/random/randomFloatBetween.js";
|
|
14
|
-
import { randomIntegerBetween } from "../../core/math/random/randomIntegerBetween.js";
|
|
15
|
-
import { seededRandom } from "../../core/math/random/seededRandom.js";
|
|
16
|
-
import ConcurrentExecutor from "../../core/process/executor/ConcurrentExecutor.js";
|
|
17
|
-
import { Transform } from "../../engine/ecs/transform/Transform.js";
|
|
18
|
-
import GUI from "lil-gui";
|
|
19
|
-
import Stats from "stats.js/src/Stats.js";
|
|
20
|
-
import { FramePerformanceMonitor } from "./FramePerformanceMonitor.js";
|
|
21
|
-
// import { OrbitalCameraController } from "../renderer/camera/OrbitalCameraController.js"; // legacy (no inertia)
|
|
22
|
-
import { OrbitalCameraController } from "../renderer/camera/orbital/index.js"; // direct-drive + release momentum
|
|
23
|
-
import { PerspectiveCamera } from "../renderer/camera/PerspectiveCamera.js";
|
|
24
|
-
import { create_frame_loop } from "../renderer/create_frame_loop.js";
|
|
25
|
-
import { DynamicResolutionScaling } from "../renderer/DynamicResolutionScaling.js";
|
|
26
|
-
import { enable_picker } from "./enable_picker.js";
|
|
27
|
-
import { BoxGeometry } from "../renderer/geometry/BoxGeometry.js";
|
|
28
|
-
import { make_box_geometry } from "../renderer/geometry/primitives/make_box_geometry.js";
|
|
29
|
-
import { make_octahedron_geometry } from "../renderer/geometry/primitives/make_octahedron_geometry.js";
|
|
30
|
-
import { make_plane_geometry } from "../renderer/geometry/primitives/make_plane_geometry.js";
|
|
31
|
-
import { brick4_bake_for_scene } from "../renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js";
|
|
32
|
-
import { lpv_visualise_probes } from "../renderer/global_illumination/lpv/lpv_visualise_probes.js";
|
|
33
|
-
import {
|
|
34
|
-
lpv_generate_probe_locations2
|
|
35
|
-
} from "../renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js";
|
|
36
|
-
import { load_environment_map, ProjectionMappingType } from "../renderer/light/environment/rgbe/load_environment_map.js";
|
|
37
|
-
import { make_sunlight } from "../renderer/light/make_sunlight.js";
|
|
38
|
-
import { SpotLight } from "../renderer/light/model/SpotLight.js";
|
|
39
|
-
import { ParticipatingMediaVolume, VolumetricsParticleSpec } from "../renderer/volumetrics/ParticipatingMediaVolume.js";
|
|
40
|
-
import { load_default_environment } from "./load_default_environment.js";
|
|
41
|
-
import { load_gltf } from "../renderer/loader/gltf/load_gltf.js";
|
|
42
|
-
import { StandardShadeMaterial } from "../renderer/material/StandardShadeMaterial.js";
|
|
43
|
-
import { TransparencyMode } from "../renderer/material/TransparencyMode.js";
|
|
44
|
-
import { Mesh } from "../renderer/scene/Mesh.js";
|
|
45
|
-
import { DOF_PRESET_NAMES } from "../renderer/postprocess/dof/DOF_PRESETS.js";
|
|
46
|
-
import { Renderer } from "../renderer/Renderer.js";
|
|
47
|
-
import { scene_optimize } from "../renderer/scene/optimization/scene_optimize.js";
|
|
48
|
-
import { Scene } from "../renderer/scene/Scene.js";
|
|
49
|
-
import { serialize_scene } from "../renderer/scene/serialization/serialize_scene.js";
|
|
50
|
-
import { verify_radix_sort_one_sweep } from "../renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.js";
|
|
51
|
-
import { get_single_pixel_texture } from "../renderer/texture/util/get_single_pixel_texture.js";
|
|
52
|
-
import { make_checkers_texture } from "../renderer/texture/util/make_checkers_texture.js";
|
|
53
|
-
import { add_random_meshes } from "./add_random_meshes.js";
|
|
54
|
-
|
|
55
|
-
import { t64_look_rotation } from "../../engine/ecs/transform/t64_look_rotation.js";
|
|
56
|
-
/**
|
|
57
|
-
*
|
|
58
|
-
* @param {Scene} scene
|
|
59
|
-
* @param {PerspectiveCamera} camera
|
|
60
|
-
*/
|
|
61
|
-
function sample_Blender35(scene, camera) {
|
|
62
|
-
|
|
63
|
-
function add_bundle(bundle) {
|
|
64
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const p = load_gltf('Blender3.5-splash/model.gltf').then(add_bundle);
|
|
68
|
-
|
|
69
|
-
scene.lights.add(make_sunlight({
|
|
70
|
-
direction: new Vector3(-1, -1, 1)
|
|
71
|
-
}));
|
|
72
|
-
|
|
73
|
-
camera.transform.fromJSON({
|
|
74
|
-
position: { x: 1.7463508196335535, y: 1.9190651121172662, z: 1.8690058269716217 },
|
|
75
|
-
rotation: { x: -0.008126135887431813, y: 0.9419140115684058, z: -0.022849665148099302, w: -0.33497739256444115 }
|
|
76
|
-
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
camera.far = 30;
|
|
80
|
-
|
|
81
|
-
return p;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
* @param {Scene} scene
|
|
87
|
-
* @param {string} url
|
|
88
|
-
*/
|
|
89
|
-
async function load_slpv(scene, url) {
|
|
90
|
-
|
|
91
|
-
const response = await fetch(url);
|
|
92
|
-
const buffer = await response.arrayBuffer();
|
|
93
|
-
|
|
94
|
-
renderer.scenes.obtain(scene).volumetric_light_map.upload(buffer);
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
*
|
|
100
|
-
* @param {Scene} scene
|
|
101
|
-
* @param {PerspectiveCamera} camera
|
|
102
|
-
*/
|
|
103
|
-
function sample_Blender41(scene, camera) {
|
|
104
|
-
|
|
105
|
-
function add_bundle(bundle) {
|
|
106
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const p = load_gltf('Blender4.1-splash/model.gltf').then(add_bundle);
|
|
110
|
-
|
|
111
|
-
scene.lights.add(make_sunlight());
|
|
112
|
-
|
|
113
|
-
camera.transform.fromJSON({
|
|
114
|
-
position: { x: -14.823, y: 1.71024, z: 5.45426 },
|
|
115
|
-
rotation: Quaternion.fromEulerAngles(0, 180 * DEG_TO_RAD, 0),
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
load_default_environment(scene)
|
|
119
|
-
|
|
120
|
-
camera.far = 50;
|
|
121
|
-
|
|
122
|
-
return p;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
*
|
|
127
|
-
* @param {Scene} scene
|
|
128
|
-
* @param {PerspectiveCamera} camera
|
|
129
|
-
*/
|
|
130
|
-
function sample_flower_scattering(scene, camera) {
|
|
131
|
-
|
|
132
|
-
function add_nodes(bundle) {
|
|
133
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
load_gltf('flower_scattering/model.gltf').then(add_nodes);
|
|
137
|
-
|
|
138
|
-
scene.lights.add(make_sunlight());
|
|
139
|
-
|
|
140
|
-
camera.transform.fromJSON({
|
|
141
|
-
position: { x: -6.4682708821438695, y: 5.878561621922152, z: -6.936678014165665 },
|
|
142
|
-
rotation: { x: 0.25841972623672294, y: 0.34462020646106367, z: -0.09928340561408339, w: 0.8969944056459552 },
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
load_default_environment(scene);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
*
|
|
150
|
-
* @param {Scene} scene
|
|
151
|
-
* @param {PerspectiveCamera} camera
|
|
152
|
-
*/
|
|
153
|
-
function sample_pebble_scattering(scene, camera) {
|
|
154
|
-
|
|
155
|
-
function add_nodes(bundle) {
|
|
156
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const p = load_gltf('pebble_scattering/model.gltf').then(add_nodes);
|
|
160
|
-
|
|
161
|
-
scene.lights.add(make_sunlight({
|
|
162
|
-
direction: new Vector3(-1.5, -1, 1.5)
|
|
163
|
-
}));
|
|
164
|
-
|
|
165
|
-
const v_default = {
|
|
166
|
-
position: { x: -2.4354279345968988, y: 0.30977640357262476, z: -2.8011386726457594 },
|
|
167
|
-
rotation: { x: 0.1668703393578709, y: 0.3130673645258333, z: -0.05597646104601723, w: 0.9332790316514143 }
|
|
168
|
-
};
|
|
169
|
-
const v_stress = {
|
|
170
|
-
position: { x: -0.02432305358312252, y: 3.9703021885351473, z: -0.03367423494234176 },
|
|
171
|
-
rotation: { x: 0.7071061165730906, y: 0, z: 0, w: 0.7071068236795591 },
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
load_default_environment(scene);
|
|
175
|
-
|
|
176
|
-
camera.transform.fromJSON(v_default);
|
|
177
|
-
|
|
178
|
-
camera.far = 16;
|
|
179
|
-
|
|
180
|
-
return p;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
*
|
|
185
|
-
* @param {Scene} scene
|
|
186
|
-
* @param {PerspectiveCamera} camera
|
|
187
|
-
*/
|
|
188
|
-
function sample_powerplant(scene, camera) {
|
|
189
|
-
|
|
190
|
-
function add_nodes(bundle) {
|
|
191
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const p = load_gltf('powerplant/model.gltf').then(add_nodes);
|
|
195
|
-
|
|
196
|
-
scene.lights.add(make_sunlight());
|
|
197
|
-
|
|
198
|
-
camera.transform.fromJSON({
|
|
199
|
-
position: { x: 50.34309806555996, y: 75.72974432754577, z: 97.060131115306 },
|
|
200
|
-
rotation: { x: -0.11422042118122494, y: 0.8529826504674208, z: -0.20998089073160459, w: -0.4639852572165621 }
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
load_default_environment(scene);
|
|
204
|
-
|
|
205
|
-
return p;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
*
|
|
210
|
-
* @param {Scene} scene
|
|
211
|
-
* @param {PerspectiveCamera} camera
|
|
212
|
-
*/
|
|
213
|
-
function sample_NormalTangentTest(scene, camera) {
|
|
214
|
-
|
|
215
|
-
function add_nodes(bundle) {
|
|
216
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
load_gltf('glTF-Sample-Models/2.0/NormalTangentTest/glTF/NormalTangentTest.gltf').then(add_nodes);
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
scene.lights.add(make_sunlight({}));
|
|
223
|
-
|
|
224
|
-
camera.transform.fromJSON({
|
|
225
|
-
position: { x: 0.3125825233068688, y: -0.05614099272964101, z: 1.8286251743429103 },
|
|
226
|
-
rotation: {
|
|
227
|
-
x: -0.00018466271417495077,
|
|
228
|
-
y: 0.9993264049082066,
|
|
229
|
-
z: -0.005077478130592861,
|
|
230
|
-
w: -0.036344484708887966
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
*
|
|
237
|
-
* @param {Scene} scene
|
|
238
|
-
* @param {PerspectiveCamera} camera
|
|
239
|
-
*/
|
|
240
|
-
function sample_WaterBottle(scene, camera) {
|
|
241
|
-
|
|
242
|
-
function add_nodes(bundle) {
|
|
243
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
load_gltf('glTF-Sample-Models/2.0/WaterBottle/glTF/WaterBottle.gltf').then(add_nodes);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
scene.lights.add(make_sunlight({}));
|
|
250
|
-
scene.lights.add(make_sunlight({
|
|
251
|
-
intensity: 1,
|
|
252
|
-
direction: Vector3.forward
|
|
253
|
-
}));
|
|
254
|
-
|
|
255
|
-
camera.transform.fromJSON({
|
|
256
|
-
position: { x: 0.004448837166293011, y: 0.035540680034447505, z: -0.9993583280838544 },
|
|
257
|
-
rotation: {
|
|
258
|
-
x: 0.017773103345215122,
|
|
259
|
-
y: -0.0022254787244741048,
|
|
260
|
-
z: 0.00003956001003957647,
|
|
261
|
-
w: 0.9998395683693124
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
*
|
|
268
|
-
* @param {Scene} scene
|
|
269
|
-
* @param {PerspectiveCamera} camera
|
|
270
|
-
*/
|
|
271
|
-
function sample_MaterialsVariantsShoe(scene, camera) {
|
|
272
|
-
|
|
273
|
-
function add_nodes(bundle) {
|
|
274
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
const p = load_gltf('glTF-Sample-Models/2.0/MaterialsVariantsShoe/glTF/MaterialsVariantsShoe.gltf').then(add_nodes);
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
scene.lights.add(make_sunlight({
|
|
281
|
-
direction: new Vector3(-0.2, -1, 0.8),
|
|
282
|
-
}));
|
|
283
|
-
|
|
284
|
-
const v_default = {
|
|
285
|
-
position: { x: 0, y: 0.07, z: -0.24 },
|
|
286
|
-
rotation: {
|
|
287
|
-
x: 0,
|
|
288
|
-
y: 0,
|
|
289
|
-
z: 0,
|
|
290
|
-
w: 1
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
|
|
294
|
-
const v_terminator = {
|
|
295
|
-
position: { x: 0.19559476593453173, y: 0.09293976556177566, z: 0.10044825380016276 },
|
|
296
|
-
rotation: { x: -0.06768135072685622, y: 0.8930638771739731, z: -0.1435708651376218, w: -0.42100303174016906 },
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
camera.far = 5;
|
|
300
|
-
camera.transform.fromJSON(v_default);
|
|
301
|
-
|
|
302
|
-
return p;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
*
|
|
307
|
-
* @param {Scene} scene
|
|
308
|
-
* @param {PerspectiveCamera} camera
|
|
309
|
-
*/
|
|
310
|
-
function sample_MetalRoughSpheres(scene, camera) {
|
|
311
|
-
|
|
312
|
-
function add_nodes(bundle) {
|
|
313
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
const p = load_gltf('glTF-Sample-Models/2.0/MetalRoughSpheres/glTF/MetalRoughSpheres.gltf').then(add_nodes);
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
scene.lights.add(make_sunlight({
|
|
320
|
-
direction: new Vector3(-0.2, -1, 0.8)
|
|
321
|
-
}));
|
|
322
|
-
|
|
323
|
-
const v_main = {
|
|
324
|
-
position: { x: 0, y: 0, z: -12 },
|
|
325
|
-
rotation: {
|
|
326
|
-
x: 0,
|
|
327
|
-
y: 0,
|
|
328
|
-
z: 0,
|
|
329
|
-
w: 1
|
|
330
|
-
}
|
|
331
|
-
};
|
|
332
|
-
|
|
333
|
-
const v_main2 = {
|
|
334
|
-
position: { x: -0.008087582804548243, y: -0.08519009972495122, z: -9.98057115266989 },
|
|
335
|
-
rotation: {
|
|
336
|
-
x: 0,
|
|
337
|
-
y: 0,
|
|
338
|
-
z: 0,
|
|
339
|
-
w: 1
|
|
340
|
-
}
|
|
341
|
-
};
|
|
342
|
-
|
|
343
|
-
const v_pixel_bug = {
|
|
344
|
-
position: { x: -1.070048837802901, y: 3.5174314448172965, z: -0.4644000600621032 },
|
|
345
|
-
rotation: {
|
|
346
|
-
x: -2.1855695031547374e-8,
|
|
347
|
-
y: 4.371138995207255e-8,
|
|
348
|
-
z: 9.553428081975427e-16,
|
|
349
|
-
w: 0.9999999999999988
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
const v_reflections_0 = {
|
|
354
|
-
position: { x: -1.0786426150362676, y: 1.7054015934539062, z: 4.017754498922638 },
|
|
355
|
-
rotation: { x: 0.002683893129299963, y: 0.9952843779789958, z: -0.09256944346132598, w: 0.028856573010222465 }
|
|
356
|
-
}
|
|
357
|
-
const v_closeup = {
|
|
358
|
-
position: { x: 3.30239796672363, y: 2.1891135306983998, z: -3.8443340687524534 },
|
|
359
|
-
rotation: { x: -0.13316414067176083, y: 0.19398613316295302, z: 0.02658815103680908, w: 0.9715604777902817 },
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
camera.transform.fromJSON(v_main2);
|
|
363
|
-
|
|
364
|
-
load_environment_map("environments/octahedral/pretoria_gardens_2k.hdr", ProjectionMappingType.Octahedral)
|
|
365
|
-
.then(texture => {
|
|
366
|
-
|
|
367
|
-
scene.lights.environment = texture;
|
|
368
|
-
});
|
|
369
|
-
|
|
370
|
-
return p;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
*
|
|
375
|
-
* @param {Scene} scene
|
|
376
|
-
* @param {PerspectiveCamera} camera
|
|
377
|
-
*/
|
|
378
|
-
function sample_rungholt(scene, camera) {
|
|
379
|
-
|
|
380
|
-
function add_nodes(bundle) {
|
|
381
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
camera.far = 700;
|
|
385
|
-
|
|
386
|
-
load_default_environment(scene);
|
|
387
|
-
|
|
388
|
-
const p = load_gltf('rungholt/v2/model.gltf').then(add_nodes);
|
|
389
|
-
|
|
390
|
-
scene.lights.add(make_sunlight({
|
|
391
|
-
intensity: 5
|
|
392
|
-
}));
|
|
393
|
-
|
|
394
|
-
camera.transform.fromJSON({
|
|
395
|
-
position: { x: 142.82152692901172, y: 206.9304200926864, z: 88.1237330266172 },
|
|
396
|
-
rotation: { x: -0.18746816342866535, y: 0.8110449076261371, z: -0.36362466298372104, w: -0.41813747737361334 }
|
|
397
|
-
});
|
|
398
|
-
|
|
399
|
-
return p;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
/**
|
|
403
|
-
*
|
|
404
|
-
* @param {Scene} scene
|
|
405
|
-
* @param {PerspectiveCamera} camera
|
|
406
|
-
*/
|
|
407
|
-
async function sample_Blender2(scene, camera) {
|
|
408
|
-
|
|
409
|
-
function add_nodes(bundle) {
|
|
410
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
const p = load_gltf('Blender2-gltf/Blender 2.gltf').then(add_nodes);
|
|
414
|
-
|
|
415
|
-
scene.lights.add(make_sunlight({
|
|
416
|
-
intensity: 8,
|
|
417
|
-
direction: new Vector3(-0.2, -1, -0.2)
|
|
418
|
-
}));
|
|
419
|
-
|
|
420
|
-
const v_main = {
|
|
421
|
-
position: { x: 1.2551072414379085, y: 2.4910501690081395, z: 4.1322917192379105 },
|
|
422
|
-
rotation: { x: -0.025477322537200888, y: 0.9541455163739329, z: -0.08503280795263604, w: -0.2858787526059721 },
|
|
423
|
-
};
|
|
424
|
-
|
|
425
|
-
const v_bug_01 = {
|
|
426
|
-
position: { x: -15.129516254389948, y: 5.057020031317275, z: 0.09288128318520528 },
|
|
427
|
-
rotation: { x: 0.00037506475815295354, y: 0.9964050527935893, z: -0.004417403435695944, w: 0.0846009257674992 }
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
const v_hero_0 = {
|
|
431
|
-
position: { x: 2.223599481892907, y: 1.6722018700707628, z: 6.167739572612925 },
|
|
432
|
-
rotation: {
|
|
433
|
-
x: 0.00021324453847545806,
|
|
434
|
-
y: 0.9749165706301498,
|
|
435
|
-
z: 0.0009340745944802329,
|
|
436
|
-
w: -0.22256855649926593
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
camera.transform.fromJSON(v_hero_0);
|
|
441
|
-
|
|
442
|
-
load_default_environment(scene);
|
|
443
|
-
|
|
444
|
-
camera.far = 50;
|
|
445
|
-
|
|
446
|
-
await load_slpv(scene, 'Blender2-gltf/lightmap.svlm');
|
|
447
|
-
|
|
448
|
-
return p;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
*
|
|
453
|
-
* @param {Scene} scene
|
|
454
|
-
* @param {PerspectiveCamera} camera
|
|
455
|
-
*/
|
|
456
|
-
function sample_Blender2_spec_test(scene, camera) {
|
|
457
|
-
|
|
458
|
-
function add_nodes(bundle) {
|
|
459
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
load_gltf('Blender2-gltf/Blender 2.gltf').then(add_nodes);
|
|
463
|
-
|
|
464
|
-
scene.lights.add(make_sunlight({
|
|
465
|
-
intensity: 6
|
|
466
|
-
}));
|
|
467
|
-
|
|
468
|
-
camera.transform.fromJSON({
|
|
469
|
-
position: { x: -0.5869416336109241, y: 0.6906890957245286, z: 2.6371570204147097 },
|
|
470
|
-
rotation: { x: 0.06115335483650239, y: 0.9166233444777053, z: -0.1541016669957492, w: 0.36375072203348 }
|
|
471
|
-
});
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
/**
|
|
475
|
-
*
|
|
476
|
-
* @param {Scene} scene
|
|
477
|
-
* @param {AABB3} bounds
|
|
478
|
-
* @param {Vector3} resolution
|
|
479
|
-
*/
|
|
480
|
-
function build_lpv_mesh(scene, resolution) {
|
|
481
|
-
console.log(`#build_lpv_mesh, ${resolution}`)
|
|
482
|
-
|
|
483
|
-
const bounds = scene.instances.bounding_box;
|
|
484
|
-
|
|
485
|
-
bounds.grow(Math.max(bounds.width, bounds.height, bounds.depth) * 0.05);
|
|
486
|
-
|
|
487
|
-
scene.light_probe_volume.build_grid(
|
|
488
|
-
bounds,
|
|
489
|
-
resolution
|
|
490
|
-
);
|
|
491
|
-
|
|
492
|
-
// // jitter points to avoid regular grid look
|
|
493
|
-
// const jitter = new Vector3();
|
|
494
|
-
// jitter.set(bounds.width, bounds.height, bounds.depth);
|
|
495
|
-
// jitter._multiply(
|
|
496
|
-
// 1 / resolution.x,
|
|
497
|
-
// 1 / resolution.y,
|
|
498
|
-
// 1 / resolution.z,
|
|
499
|
-
// );
|
|
500
|
-
// jitter.multiplyScalar(0.2);
|
|
501
|
-
//
|
|
502
|
-
// lpv_jitter_points(
|
|
503
|
-
// scene.light_probe_volume.positions,
|
|
504
|
-
// 0,
|
|
505
|
-
// scene.light_probe_volume.probe_count,
|
|
506
|
-
// jitter
|
|
507
|
-
// );
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
/**
|
|
512
|
-
*
|
|
513
|
-
* @type {number}
|
|
514
|
-
*/
|
|
515
|
-
const timestamp_main_parsed_ms = performance.now();
|
|
516
|
-
|
|
517
|
-
/**
|
|
518
|
-
*
|
|
519
|
-
* @param {Scene} scene
|
|
520
|
-
* @param {PerspectiveCamera} camera
|
|
521
|
-
*/
|
|
522
|
-
async function sample_Sponza(scene, camera) {
|
|
523
|
-
|
|
524
|
-
function add_nodes(bundle) {
|
|
525
|
-
bundle.scenes.forEach(n => scene.add(n));
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
const load_promise = load_gltf('Sponza/glTF/Sponza.gltf')
|
|
529
|
-
.then(add_nodes);
|
|
530
|
-
|
|
531
|
-
const light = make_sunlight({
|
|
532
|
-
intensity: 7.5,
|
|
533
|
-
temperature: 3500,
|
|
534
|
-
direction: new Vector3(-0.2, -1, 0.21),
|
|
535
|
-
});
|
|
536
|
-
|
|
537
|
-
scene.lights.add(light);
|
|
538
|
-
|
|
539
|
-
// camera-lion close-up
|
|
540
|
-
const transform_close_up_lion = Transform.fromJSON({
|
|
541
|
-
position: { x: -9.717819451746418, y: 1.3545300016789599, z: -0.2532305219160802 },
|
|
542
|
-
rotation: { x: -0.007464555805272171, y: -0.7040350876804718, z: -0.007400933001196929, w: 0.7100873903345221 }
|
|
543
|
-
})
|
|
544
|
-
|
|
545
|
-
const transform_ao_validation = Transform.fromJSON({
|
|
546
|
-
position: { x: 6.797289774373101, y: 3.4096001001163443, z: -1.8289157946422079 },
|
|
547
|
-
rotation: { x: 0.02690314252273821, y: -0.6849852484370184, z: 0.025326779193201573, w: 0.7276193954271535 }
|
|
548
|
-
});
|
|
549
|
-
|
|
550
|
-
const gi_view_0 = Transform.fromJSON({
|
|
551
|
-
position: { x: 8.573368095824236, y: 0.2941973473465046, z: -2.6852566883620366 },
|
|
552
|
-
rotation: { x: 0.049154929277954576, y: -0.5744610112446781, z: 0.03459123557196376, w: 0.816322109163427 }
|
|
553
|
-
});
|
|
554
|
-
|
|
555
|
-
const view_balcony_0 = Transform.fromJSON({
|
|
556
|
-
position: {
|
|
557
|
-
x: -0.49078825022791883,
|
|
558
|
-
y: 4.78451792229094,
|
|
559
|
-
z: -4.362871167702758
|
|
560
|
-
},
|
|
561
|
-
rotation: {
|
|
562
|
-
x: 0,
|
|
563
|
-
y: 0,
|
|
564
|
-
z: 0,
|
|
565
|
-
w: 1
|
|
566
|
-
},
|
|
567
|
-
});
|
|
568
|
-
|
|
569
|
-
const transform_hzb_bug_0 = Transform.fromJSON({
|
|
570
|
-
position: {
|
|
571
|
-
x: 6.152824559915167,
|
|
572
|
-
y: 3.217854454310324,
|
|
573
|
-
z: -2.512206533819479
|
|
574
|
-
},
|
|
575
|
-
rotation: {
|
|
576
|
-
w: 0.6845326358906514,
|
|
577
|
-
x: 0.02729685762631996,
|
|
578
|
-
y: -0.7278924707556823,
|
|
579
|
-
z: 0.02902590190697945
|
|
580
|
-
},
|
|
581
|
-
})
|
|
582
|
-
|
|
583
|
-
const v_main = Transform.fromJSON({
|
|
584
|
-
position: {
|
|
585
|
-
"x": 6.882350816359706,
|
|
586
|
-
"y": 3.46377271542073,
|
|
587
|
-
"z": -0.35451149125927056
|
|
588
|
-
},
|
|
589
|
-
rotation: {
|
|
590
|
-
"x": 0,
|
|
591
|
-
"y": -0.7071067811865476,
|
|
592
|
-
"z": 0,
|
|
593
|
-
"w": 0.7071067811865476
|
|
594
|
-
}
|
|
595
|
-
});
|
|
596
|
-
|
|
597
|
-
const v_terminator_column = Transform.fromJSON({
|
|
598
|
-
position: { x: 3.154283913825675, y: 4.489943035497312, z: 1.677231833825024 },
|
|
599
|
-
rotation: { x: -0.013922532338911293, y: -0.7271504395753207, z: -0.014753854506712625, w: 0.6861783478774922 },
|
|
600
|
-
});
|
|
601
|
-
|
|
602
|
-
const v_terminator_drape = Transform.fromJSON({
|
|
603
|
-
position: { x: 3.490824675095654, y: 3.6322529547592164, z: 0.00597384560351788 },
|
|
604
|
-
rotation: { x: 0.017382246091421583, y: 0.026076850851011926, z: -0.000453497039986395, w: 0.9995087041696766 }
|
|
605
|
-
});
|
|
606
|
-
|
|
607
|
-
const v_terminator_drape_0 = Transform.fromJSON({
|
|
608
|
-
position: { x: 4.344951054147374, y: 3.990828287929621, z: 1.0679631063393713 },
|
|
609
|
-
rotation: {
|
|
610
|
-
x: 0.017382246077006475,
|
|
611
|
-
y: 0.026076882621904787,
|
|
612
|
-
z: -0.00045349759250732405,
|
|
613
|
-
w: 0.999508703340784
|
|
614
|
-
},
|
|
615
|
-
});
|
|
616
|
-
|
|
617
|
-
const v_broken_clusters = Transform.fromJSON({
|
|
618
|
-
position: { x: -0.6989944062625513, y: 0.7955559229247222, z: -1.5901727118090194 },
|
|
619
|
-
rotation: { x: -0.08711217232943305, y: 0.9108561015638399, z: 0.31533742646869023, w: 0.2516245996401671 }
|
|
620
|
-
});
|
|
621
|
-
|
|
622
|
-
const v_csm_bug0 = Transform.fromJSON({
|
|
623
|
-
position: { x: 1.496414878399618, y: 2.5553749641849284, z: -1.6356492905885907 },
|
|
624
|
-
rotation: { x: 0.1612611060150937, y: -0.556325258333227, z: 0.11109200075590174, w: 0.8075615332563257 }
|
|
625
|
-
});
|
|
626
|
-
|
|
627
|
-
const v_csm_bug1 = Transform.fromJSON({
|
|
628
|
-
position: { x: 5.921343087423949, y: 2.5282490785875793, z: 0.3310384650765162 },
|
|
629
|
-
rotation: { x: 0.19685487689931777, y: -0.7788268451340126, z: 0.29700837262990126, w: 0.5162004739704265 }
|
|
630
|
-
});
|
|
631
|
-
const v_csm_bug2 = Transform.fromJSON({
|
|
632
|
-
position: { x: -1.8606525126360738, y: 2.012460328343715, z: 0.5264204830865257 },
|
|
633
|
-
rotation: { x: 0.24438857096312552, y: -0.7147978900872488, z: 0.2998369949894897, w: 0.5826113448475677 }
|
|
634
|
-
});
|
|
635
|
-
const v_csm_bug3 = Transform.fromJSON({
|
|
636
|
-
position: { x: -7.742480655513035, y: 0.1945624757616174, z: 2.0849360809488315 },
|
|
637
|
-
rotation: { x: -0.04015724245258378, y: 0.9554173423548293, z: -0.24841907381621356, w: -0.15444436399731087 }
|
|
638
|
-
})
|
|
639
|
-
const v_csm_bug4 = Transform.fromJSON({
|
|
640
|
-
position: { x: 3.211711160246605, y: 1.7430670321220587, z: -0.11893329862588438 },
|
|
641
|
-
rotation: { x: -0.013985978355409878, y: -0.7442104294103111, z: -0.015590547272532038, w: 0.6676167792994012 }
|
|
642
|
-
})
|
|
643
|
-
|
|
644
|
-
const v_csm_blend_bug0 = Transform.fromJSON({
|
|
645
|
-
position: { x: -4.225904341620395, y: 3.463743711332445, z: 4.475033277117049 },
|
|
646
|
-
rotation: { x: 0.0685720673385106, y: 0.7485445950285943, z: -0.07838262382305794, w: 0.6548549649479748 },
|
|
647
|
-
})
|
|
648
|
-
|
|
649
|
-
const v_ssgi_bug0 = Transform.fromJSON({
|
|
650
|
-
position: { x: 1.7623567689392967, y: 2.70670297934202, z: -0.4340710062119524 },
|
|
651
|
-
rotation: { x: 0.17705316728914253, y: 0.5717526681775746, z: -0.12801042067556012, w: 0.7907998448300135 }
|
|
652
|
-
});
|
|
653
|
-
|
|
654
|
-
const v_hashed_alpha_0 = Transform.fromJSON({
|
|
655
|
-
position: { x: -1.5887714801183048, y: 0.3501061407711964, z: 1.3395318836669996 },
|
|
656
|
-
rotation: { x: 0.16815564870502012, y: -0.4035703568180537, z: 0.07572519618248541, w: 0.8961698162566438 }
|
|
657
|
-
});
|
|
658
|
-
|
|
659
|
-
const v_hashed_alpha_1 = Transform.fromJSON({
|
|
660
|
-
position: { x: -1.6623734058708086, y: 1.3090366336333448, z: 0.6365927524443017 },
|
|
661
|
-
rotation: { x: 0.4254654649716964, y: -0.20415401068294317, z: 0.09914975336686183, w: 0.8760534255659168 }
|
|
662
|
-
});
|
|
663
|
-
|
|
664
|
-
camera.transform.copy(v_main);
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
// const probe_bounds = new AABB3(
|
|
668
|
-
// ...camera.transform.position.asArray(),
|
|
669
|
-
// ...camera.transform.position.asArray(),
|
|
670
|
-
// );
|
|
671
|
-
//
|
|
672
|
-
// probe_bounds.grow(0.1);
|
|
673
|
-
//
|
|
674
|
-
// scene.light_probe_volume.build_grid(
|
|
675
|
-
// probe_bounds,
|
|
676
|
-
// new Vector3(2, 2, 2)
|
|
677
|
-
// );
|
|
678
|
-
|
|
679
|
-
camera.far = 50;
|
|
680
|
-
|
|
681
|
-
const env_map = "environments/octahedral/venice_sunset_4k.hdr";
|
|
682
|
-
|
|
683
|
-
await load_slpv(scene, "Sponza/glTF/lightmap-2.svlm")
|
|
684
|
-
|
|
685
|
-
scene.lights.environment = await load_environment_map(env_map, ProjectionMappingType.Octahedral);
|
|
686
|
-
|
|
687
|
-
await load_promise;
|
|
688
|
-
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
function sample_EldenRing0(scene, camera) {
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
const p = load_gltf('EldenRing/map/m10/m10_00_00_00/combined-model.glb').then(b => scene.add(b.scenes));
|
|
695
|
-
|
|
696
|
-
const light = make_sunlight();
|
|
697
|
-
|
|
698
|
-
scene.lights.add(light);
|
|
699
|
-
camera.transform.fromJSON({
|
|
700
|
-
position: { x: -268.8277181502093, y: 106.78324490323607, z: -182.09757478520098 },
|
|
701
|
-
rotation: { x: 0.13698650607681923, y: 0.8408518684798718, z: -0.2504861029753127, w: 0.4598473057907536 }
|
|
702
|
-
});
|
|
703
|
-
|
|
704
|
-
load_default_environment(scene);
|
|
705
|
-
|
|
706
|
-
return p;
|
|
707
|
-
}
|
|
708
|
-
|
|
709
|
-
function sample_EldenRing1(scene, camera) {
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
load_gltf('EldenRing/map/m10/m10_00_00_00_005002/combined-model.gltf').then(b => scene.add(b.scenes));
|
|
713
|
-
|
|
714
|
-
const light = make_sunlight();
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
scene.lights.add(light);
|
|
718
|
-
camera.transform.fromJSON({
|
|
719
|
-
position: { x: -274.6873386051618, y: 117.652285439949, z: -189.47627894544158 },
|
|
720
|
-
rotation: { x: 0.019642869777503548, y: 0.9767560210337751, z: -0.10246246087627864, w: 0.187251908274251 },
|
|
721
|
-
});
|
|
722
|
-
}
|
|
723
|
-
|
|
724
|
-
function sample_EldenRing2(scene, camera) {
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
load_gltf('EldenRing/map/m10/tangent_test/model.gltf').then(b => scene.add(b.scenes));
|
|
728
|
-
|
|
729
|
-
const light = make_sunlight();
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
scene.lights.add(light);
|
|
733
|
-
camera.transform.fromJSON({
|
|
734
|
-
position: { x: -268.5855976275191, y: 114.32201153034802, z: -206.6815780680543 },
|
|
735
|
-
rotation: { x: 0.016071580936215937, y: -0.859168337591329, z: 0.027036430229921284, w: 0.5107254677487556 },
|
|
736
|
-
});
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
function sample_italian_kitchen(scene, camera) {
|
|
740
|
-
|
|
741
|
-
const p = load_gltf('italian_kitchen/scene.gltf').then(b => scene.add(b.scenes));
|
|
742
|
-
|
|
743
|
-
const plane = Mesh.from(
|
|
744
|
-
make_box_geometry(100, 1, 100),
|
|
745
|
-
new StandardShadeMaterial(),
|
|
746
|
-
Transform.fromJSON({
|
|
747
|
-
position: { x: 0, y: -0.5, z: 0 }
|
|
748
|
-
}).matrix
|
|
749
|
-
);
|
|
750
|
-
scene.add(plane);
|
|
751
|
-
|
|
752
|
-
scene.lights.add(make_sunlight({
|
|
753
|
-
intensity: 2.2,
|
|
754
|
-
direction: new Vector3(0.5, -1, 0.7)
|
|
755
|
-
}));
|
|
756
|
-
|
|
757
|
-
camera.transform.fromJSON({
|
|
758
|
-
position: { x: -5.888507648629962, y: 22.123269699087274, z: 37.88011448200162 },
|
|
759
|
-
rotation: { x: 0.009246620025009488, y: 0.9893682629522365, z: -0.1255061382991719, w: 0.07289135428990696 }
|
|
760
|
-
});
|
|
761
|
-
|
|
762
|
-
return p;
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
function sample_country_kitchen_cycles(scene, camera) {
|
|
766
|
-
|
|
767
|
-
const p = load_gltf('country-kitchen-cycles/gltf/scene.gltf').then(b => scene.add(b.scenes));
|
|
768
|
-
|
|
769
|
-
scene.lights.add(make_sunlight({
|
|
770
|
-
intensity: 2.2,
|
|
771
|
-
direction: new Vector3(0.5, -1, 0.7)
|
|
772
|
-
}));
|
|
773
|
-
|
|
774
|
-
const view_main = {
|
|
775
|
-
position: { x: 0.30194759981108865, y: 2.02149414430389, z: -4.215181352418013 },
|
|
776
|
-
rotation: { x: 0.05567752606385583, y: -0.0784643822386679, z: 0.004389106593464819, w: 0.9953512392892391 }
|
|
777
|
-
};
|
|
778
|
-
|
|
779
|
-
const view_shadow_glitch = {
|
|
780
|
-
position: { x: 0.5985769455694623, y: 1.933247106703753, z: -3.513577848876495 },
|
|
781
|
-
rotation: { x: 0.2576197080640052, y: -0.08706953833238104, z: 0.023316072186571838, w: 0.9620329216245114 }
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
camera.transform.fromJSON(view_shadow_glitch);
|
|
785
|
-
|
|
786
|
-
load_default_environment(scene);
|
|
787
|
-
|
|
788
|
-
camera.far = 15;
|
|
789
|
-
|
|
790
|
-
return p;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
function sample_house_diorama(scene, camera) {
|
|
794
|
-
|
|
795
|
-
const p = load_gltf('house_diorama/v2/scene.gltf').then(b => scene.add(b.scenes));
|
|
796
|
-
|
|
797
|
-
scene.lights.add(make_sunlight({
|
|
798
|
-
intensity: 2.2,
|
|
799
|
-
direction: new Vector3(0.5, -1, 0.7)
|
|
800
|
-
}));
|
|
801
|
-
|
|
802
|
-
camera.transform.fromJSON({
|
|
803
|
-
position: { x: -0.20867290303933145, y: 3.878670459691777, z: 5.200458518006686 },
|
|
804
|
-
rotation: {
|
|
805
|
-
x: -0.0007302964919395506,
|
|
806
|
-
y: 0.9912801495707657,
|
|
807
|
-
z: -0.13165445692355932,
|
|
808
|
-
w: -0.005498700406178939
|
|
809
|
-
}
|
|
810
|
-
});
|
|
811
|
-
|
|
812
|
-
load_default_environment(scene)
|
|
813
|
-
|
|
814
|
-
camera.far = 10;
|
|
815
|
-
|
|
816
|
-
return p;
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
function sample_salle_de_bain(scene, camera) {
|
|
820
|
-
|
|
821
|
-
const p = load_gltf('salle_de_bain/model.glb').then(b => scene.add(b.scenes));
|
|
822
|
-
|
|
823
|
-
scene.lights.add(make_sunlight({
|
|
824
|
-
intensity: 2.2,
|
|
825
|
-
direction: new Vector3(0.1, -1, 1)
|
|
826
|
-
}));
|
|
827
|
-
|
|
828
|
-
camera.transform.fromJSON({
|
|
829
|
-
position: { x: 0.316127248092972, y: 22.709977038068786, z: 25.5284314719473 },
|
|
830
|
-
rotation: {
|
|
831
|
-
x: -0.0042827867293474126,
|
|
832
|
-
y: 0.9810612336178611,
|
|
833
|
-
z: -0.19241538785786377,
|
|
834
|
-
w: -0.021836486565822544
|
|
835
|
-
}
|
|
836
|
-
});
|
|
837
|
-
|
|
838
|
-
load_default_environment(scene);
|
|
839
|
-
|
|
840
|
-
return p;
|
|
841
|
-
}
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
function sample_harley_davidson_xr1200x(scene, camera) {
|
|
845
|
-
|
|
846
|
-
const p = load_gltf('harley_davidson_xr1200x/scene.gltf').then(b => scene.add(b.scenes));
|
|
847
|
-
|
|
848
|
-
const plane = Mesh.from(
|
|
849
|
-
make_box_geometry(10, 1, 10),
|
|
850
|
-
new StandardShadeMaterial(),
|
|
851
|
-
Transform.fromJSON({
|
|
852
|
-
position: { x: 0, y: -0.5, z: 0 }
|
|
853
|
-
}).matrix
|
|
854
|
-
);
|
|
855
|
-
scene.add(plane);
|
|
856
|
-
|
|
857
|
-
scene.lights.add(make_sunlight({
|
|
858
|
-
intensity: 2.2,
|
|
859
|
-
direction: new Vector3(-2, -1, -1)
|
|
860
|
-
}));
|
|
861
|
-
|
|
862
|
-
camera.transform.fromJSON({
|
|
863
|
-
position: { x: 1.1165812965622877, y: 0.8353902858093329, z: -0.8883911787074074 },
|
|
864
|
-
rotation: { x: 0.08765802959658824, y: -0.5083251961592707, z: 0.0521090800425825, w: 0.8551059633600963 }
|
|
865
|
-
});
|
|
866
|
-
|
|
867
|
-
camera.far = 10;
|
|
868
|
-
|
|
869
|
-
load_default_environment(scene);
|
|
870
|
-
|
|
871
|
-
return p;
|
|
872
|
-
}
|
|
873
|
-
|
|
874
|
-
function sample_csgo_de_inferno(scene, camera) {
|
|
875
|
-
|
|
876
|
-
load_gltf('csgo/de_inferno/de_inferno.gltf').then(b => scene.add(b.scenes));
|
|
877
|
-
|
|
878
|
-
scene.lights.add(make_sunlight({
|
|
879
|
-
intensity: 2.2,
|
|
880
|
-
direction: new Vector3(0.3, -1, -0.3)
|
|
881
|
-
}));
|
|
882
|
-
|
|
883
|
-
camera.transform.fromJSON({
|
|
884
|
-
position: { x: -0.32568158541374564, y: 0.6060166272297361, z: 0.5713064310120421 },
|
|
885
|
-
rotation: { x: 0.05514977858089271, y: 0.9414421705459582, z: -0.19031839914297508, w: 0.2728077132117947 }
|
|
886
|
-
});
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
function sample_csgo_de_ancient(scene, camera) {
|
|
890
|
-
|
|
891
|
-
load_gltf('csgo/de_ancient/de_ancient.gltf').then(b => scene.add(b.scenes));
|
|
892
|
-
|
|
893
|
-
scene.lights.add(make_sunlight({
|
|
894
|
-
intensity: 2.2,
|
|
895
|
-
direction: new Vector3(0.3, -1, -0.3)
|
|
896
|
-
}));
|
|
897
|
-
|
|
898
|
-
camera.transform.fromJSON({
|
|
899
|
-
position: { x: -0.32568158541374564, y: 0.6060166272297361, z: 0.5713064310120421 },
|
|
900
|
-
rotation: { x: 0.05514977858089271, y: 0.9414421705459582, z: -0.19031839914297508, w: 0.2728077132117947 }
|
|
901
|
-
});
|
|
902
|
-
}
|
|
903
|
-
|
|
904
|
-
function sample_csgo_de_gwalior(scene, camera) {
|
|
905
|
-
|
|
906
|
-
load_gltf('csgo/de_gwalior/de_gwalior.gltf').then(b => scene.add(b.scenes));
|
|
907
|
-
|
|
908
|
-
scene.lights.add(make_sunlight({
|
|
909
|
-
intensity: 2.2,
|
|
910
|
-
direction: new Vector3(0.3, -1, -0.3)
|
|
911
|
-
}));
|
|
912
|
-
|
|
913
|
-
camera.transform.fromJSON({
|
|
914
|
-
position: { x: -0.32568158541374564, y: 0.6060166272297361, z: 0.5713064310120421 },
|
|
915
|
-
rotation: { x: 0.05514977858089271, y: 0.9414421705459582, z: -0.19031839914297508, w: 0.2728077132117947 }
|
|
916
|
-
});
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
function sample_csgo_de_nuke(scene, camera) {
|
|
920
|
-
|
|
921
|
-
load_gltf('csgo/de_nuke/de_nuke.gltf').then(b => scene.add(b.scenes));
|
|
922
|
-
|
|
923
|
-
scene.lights.add(make_sunlight({
|
|
924
|
-
intensity: 2.2,
|
|
925
|
-
direction: new Vector3(0.3, -1, -0.3)
|
|
926
|
-
}));
|
|
927
|
-
|
|
928
|
-
camera.transform.fromJSON({
|
|
929
|
-
position: { x: -0.32568158541374564, y: 0.6060166272297361, z: 0.5713064310120421 },
|
|
930
|
-
rotation: { x: 0.05514977858089271, y: 0.9414421705459582, z: -0.19031839914297508, w: 0.2728077132117947 }
|
|
931
|
-
});
|
|
932
|
-
}
|
|
933
|
-
|
|
934
|
-
function sample_FlightHelmet(scene, camera) {
|
|
935
|
-
|
|
936
|
-
const p = load_gltf('glTF-Sample-Models/2.0/FlightHelmet/glTF/FlightHelmet.gltf').then(b => scene.add(b.scenes));
|
|
937
|
-
|
|
938
|
-
scene.lights.add(make_sunlight({
|
|
939
|
-
intensity: 2.2,
|
|
940
|
-
direction: new Vector3(0.3, -1, -0.3)
|
|
941
|
-
}));
|
|
942
|
-
|
|
943
|
-
camera.transform.fromJSON({
|
|
944
|
-
position: { x: -0.32568158541374564, y: 0.6060166272297361, z: 0.5713064310120421 },
|
|
945
|
-
rotation: { x: 0.05514977858089271, y: 0.9414421705459582, z: -0.19031839914297508, w: 0.2728077132117947 }
|
|
946
|
-
});
|
|
947
|
-
|
|
948
|
-
load_default_environment(scene);
|
|
949
|
-
|
|
950
|
-
camera.far = 3;
|
|
951
|
-
|
|
952
|
-
return p;
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
async function sample_Bistro(scene, camera) {
|
|
956
|
-
|
|
957
|
-
const p = load_gltf('Bistro_v5_2/gltf-v1/model.gltf').then(b => scene.add(b.scenes));
|
|
958
|
-
|
|
959
|
-
scene.lights.add(make_sunlight({
|
|
960
|
-
intensity: 5.2,
|
|
961
|
-
direction: new Vector3(0.5, -1, 0.3)
|
|
962
|
-
}));
|
|
963
|
-
|
|
964
|
-
const v_books = {
|
|
965
|
-
position: { x: 18.601740820267107, y: 3.186870770035556, z: -38.48390168174029 },
|
|
966
|
-
rotation: { x: 0.11838799028787608, y: 0.4899354967368206, z: -0.0673623752254661, w: 0.8610515682564118 }
|
|
967
|
-
};
|
|
968
|
-
|
|
969
|
-
const v_main = {
|
|
970
|
-
position: { x: -15.178634475900287, y: 8.19487549774558, z: 2.082348334498482 },
|
|
971
|
-
rotation: { x: 0.086751267628722, y: 0.7637693518798772, z: -0.10501233847843479, w: 0.63095404227336 }
|
|
972
|
-
};
|
|
973
|
-
|
|
974
|
-
camera.transform.fromJSON(v_main);
|
|
975
|
-
|
|
976
|
-
const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
977
|
-
// const env_map = "environments/octahedral/rustig_koppie_puresky_2k.hdr";
|
|
978
|
-
// const env_map = "environments/test4_16.hdr";
|
|
979
|
-
load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
980
|
-
|
|
981
|
-
scene.lights.environment = texture;
|
|
982
|
-
|
|
983
|
-
renderer.indicate_view_change();
|
|
984
|
-
|
|
985
|
-
});
|
|
986
|
-
|
|
987
|
-
const lightmap_promise = load_slpv(scene, "Bistro_v5_2/gltf-v1/lightmap.svlm");
|
|
988
|
-
|
|
989
|
-
return Promise.all([p, lightmap_promise]);
|
|
990
|
-
}
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
function sample_Sibenik(scene, camera) {
|
|
994
|
-
|
|
995
|
-
const p = load_gltf('sibenik/model.gltf').then(b => scene.add(b.scenes));
|
|
996
|
-
|
|
997
|
-
scene.lights.add(make_sunlight({
|
|
998
|
-
intensity: 15
|
|
999
|
-
}));
|
|
1000
|
-
|
|
1001
|
-
camera.transform.fromJSON({
|
|
1002
|
-
position: { x: -11.508146013053528, y: -7.019423534356523, z: 0.22170187357721272 },
|
|
1003
|
-
rotation: { x: 0.06335615464437039, y: 0.6884888029762511, z: -0.06058929259869287, w: 0.7199292350414709 }
|
|
1004
|
-
});
|
|
1005
|
-
|
|
1006
|
-
const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
1007
|
-
load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
1008
|
-
|
|
1009
|
-
scene.lights.environment = texture;
|
|
1010
|
-
|
|
1011
|
-
renderer.indicate_view_change();
|
|
1012
|
-
|
|
1013
|
-
});
|
|
1014
|
-
|
|
1015
|
-
return p;
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
/**
|
|
1019
|
-
*
|
|
1020
|
-
* @param {Scene} scene
|
|
1021
|
-
* @param {Camera} camera
|
|
1022
|
-
* @returns {Promise<void>}
|
|
1023
|
-
*/
|
|
1024
|
-
function sample_PicaPica(scene, camera) {
|
|
1025
|
-
|
|
1026
|
-
const p = load_gltf('pica_pica/pica_pica.gltf').then(b => scene.add(b.scenes));
|
|
1027
|
-
|
|
1028
|
-
scene.lights.add(make_sunlight({
|
|
1029
|
-
intensity: 2.2
|
|
1030
|
-
}));
|
|
1031
|
-
|
|
1032
|
-
const view_0 = {
|
|
1033
|
-
position: { x: 7.990444788625961, y: 27.102921043144782, z: 14.50242104415642 },
|
|
1034
|
-
rotation: { x: -0.06467917148351163, y: 0.8954409270109066, z: -0.4181080310353906, w: -0.13852012631297853 }
|
|
1035
|
-
};
|
|
1036
|
-
|
|
1037
|
-
const view_1 = {
|
|
1038
|
-
position: { x: 27.608709796058342, y: 10.392400837998734, z: 28.419039946225517 },
|
|
1039
|
-
rotation: { x: -0.044895638695714966, y: 0.9344647171665834, z: -0.12733934815048423, w: -0.32946132460349703 }
|
|
1040
|
-
}
|
|
1041
|
-
const view_shadow = {
|
|
1042
|
-
position: { x: 2.5759440334688475, y: 0.43798173280282265, z: 13.845405474797067 },
|
|
1043
|
-
rotation: { x: 0.01989389344176856, y: 0.939313054815156, z: -0.3379919449332818, w: 0.05528709811307331 }
|
|
1044
|
-
};
|
|
1045
|
-
|
|
1046
|
-
const view_reprojection = {
|
|
1047
|
-
position: { x: -3.492360513032427, y: 4.216132128296507, z: 12.328360034334205 },
|
|
1048
|
-
rotation: { x: 0.01015610670901215, y: 0.9585852983120718, z: -0.28253090934728836, w: 0.03445815752279594 }
|
|
1049
|
-
}
|
|
1050
|
-
|
|
1051
|
-
/**
|
|
1052
|
-
* Shadows flicker via self-occlusion
|
|
1053
|
-
*/
|
|
1054
|
-
const view_shadow_messed_up = {
|
|
1055
|
-
position: { x: 2.4452539518710643, y: 13.843778843378821, z: 9.908749947483336 },
|
|
1056
|
-
rotation: { x: -0.0016857710322627504, y: 0.9970493587577702, z: 0.022951603715497444, w: 0.07323222148503233 }
|
|
1057
|
-
}
|
|
1058
|
-
|
|
1059
|
-
/**
|
|
1060
|
-
* Depth occlusion via HiZ is messed up
|
|
1061
|
-
*/
|
|
1062
|
-
const view_occlusion_messed_up = {
|
|
1063
|
-
position: { x: 1.214641991766806, y: 1.4069866256727495, z: 7.159309200384172 },
|
|
1064
|
-
rotation: { x: -0.003546427582025649, y: 0.9870500843846836, z: -0.15885199921399767, w: -0.022036245444962143 }
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
|
-
const view_reflections = {
|
|
1068
|
-
|
|
1069
|
-
position: { x: 16.457801772564125, y: 6.91539404807458, z: 17.821228326352184 },
|
|
1070
|
-
rotation: { x: -0.09033405780797099, y: 0.8914656660916815, z: -0.2042845091317301, w: -0.3942037081363757 }
|
|
1071
|
-
}
|
|
1072
|
-
const view_reflections2 = {
|
|
1073
|
-
|
|
1074
|
-
position: { x: 3.1986735877702213, y: 31.9916047652275, z: 16.439765693328106 },
|
|
1075
|
-
rotation: { x: 0.1328767675767749, y: 0.8636123331566495, z: -0.3831916091931462, w: 0.2994690189352531 }
|
|
1076
|
-
}
|
|
1077
|
-
|
|
1078
|
-
/*
|
|
1079
|
-
* [21/05/2025] at this specific camera state there was a huge black triangle connected to the clock hand rasterized incorrectly.
|
|
1080
|
-
* Disappeared when changing the view within a few degrees.
|
|
1081
|
-
* after reloading the page the problem did not reproduce
|
|
1082
|
-
*/
|
|
1083
|
-
const view_bugged_raster = {
|
|
1084
|
-
position: { x: -4.7934928685061, y: 14.804578193142104, z: 9.291182894913526 },
|
|
1085
|
-
rotation: { x: 0.09768322312996866, y: 0.8804377633324317, z: -0.20714685069063818, w: 0.4151837124286984 },
|
|
1086
|
-
}
|
|
1087
|
-
|
|
1088
|
-
/*
|
|
1089
|
-
* flicked in the middle left of the screen at resolution 1080x1080.
|
|
1090
|
-
*/
|
|
1091
|
-
const view_csm_bug_0 = {
|
|
1092
|
-
position: { x: -0.5873810872638958, y: 24.97234351136642, z: 16.899311513786486 },
|
|
1093
|
-
rotation: { x: -0.07004619535457735, y: 0.9257167832834796, z: -0.30473893356127196, w: -0.2127819307074132 }
|
|
1094
|
-
}
|
|
1095
|
-
|
|
1096
|
-
const view_csm_bug_1 = {
|
|
1097
|
-
position: { x: -16.523606106182925, y: 4.823308025044677, z: 8.71350625010329 },
|
|
1098
|
-
rotation: { x: -0.06427824947885483, y: -0.7222231161759307, z: -0.06773878165112963, w: 0.6853273192901935 }
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
const view_oit_0 = {
|
|
1102
|
-
position: { x: 4.997418245589089, y: 9.018463085496833, z: 14.898966499595447 },
|
|
1103
|
-
rotation: { x: -0.0009360539523078567, y: 0.941375078430896, z: -0.3373503559774804, w: -0.002612055529676634 }
|
|
1104
|
-
}
|
|
1105
|
-
const view_oit_1 = {
|
|
1106
|
-
position: { x: 3.3633691782203856, y: 7.261528718488533, z: 11.542850343640474 },
|
|
1107
|
-
rotation: { x: -0.0005687153277725135, y: 0.6820020749726231, z: 0.0005303413235261416, w: 0.731349823978917 }
|
|
1108
|
-
}
|
|
1109
|
-
|
|
1110
|
-
camera.transform.fromJSON(view_0);
|
|
1111
|
-
|
|
1112
|
-
// p.then(() => build_lpv_mesh(
|
|
1113
|
-
// scene,
|
|
1114
|
-
// new Vector3(32, 16, 32)
|
|
1115
|
-
// ));
|
|
1116
|
-
|
|
1117
|
-
// add a bright cube
|
|
1118
|
-
const material = new StandardShadeMaterial();
|
|
1119
|
-
material.emissive_factor.set(20, 0, 0);
|
|
1120
|
-
const box = Mesh.from(new BoxGeometry(2, 2, 2), material);
|
|
1121
|
-
// scene.add(box);
|
|
1122
|
-
|
|
1123
|
-
const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
1124
|
-
load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
1125
|
-
|
|
1126
|
-
scene.lights.environment = texture;
|
|
1127
|
-
|
|
1128
|
-
renderer.indicate_view_change();
|
|
1129
|
-
|
|
1130
|
-
});
|
|
1131
|
-
|
|
1132
|
-
return p;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
function sample_JustAGirl(scene, camera) {
|
|
1136
|
-
|
|
1137
|
-
load_gltf('just_a_girl/scene.gltf').then(b => scene.add(b.scenes));
|
|
1138
|
-
|
|
1139
|
-
scene.lights.add(make_sunlight({
|
|
1140
|
-
direction: new Vector3(0.2, -1, -0.5)
|
|
1141
|
-
}));
|
|
1142
|
-
|
|
1143
|
-
camera.transform.fromJSON({
|
|
1144
|
-
position: { x: -11.283656511445908, y: 90.65578779568742, z: 25.972806145166548 },
|
|
1145
|
-
rotation: { x: -0.005127058889583556, y: 0.9833683470015583, z: 0.028109772172140796, w: 0.17936066483762794 }
|
|
1146
|
-
});
|
|
1147
|
-
|
|
1148
|
-
load_default_environment(scene);
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
function sample_CafeBernini(scene, camera) {
|
|
1152
|
-
|
|
1153
|
-
const p = load_gltf('caffe_bernini/scene.gltf').then(b => scene.add(b.scenes));
|
|
1154
|
-
|
|
1155
|
-
scene.lights.add(make_sunlight());
|
|
1156
|
-
|
|
1157
|
-
camera.transform.fromJSON({
|
|
1158
|
-
position: { x: 630.8862665385361, y: 1481.1856917959858, z: 2122.944915799807 },
|
|
1159
|
-
rotation: { x: 0.0033743306880141925, y: 0.9829829122453883, z: 0.018148275316988267, w: -0.1827671968078574 }
|
|
1160
|
-
});
|
|
1161
|
-
|
|
1162
|
-
load_default_environment(scene);
|
|
1163
|
-
|
|
1164
|
-
return p;
|
|
1165
|
-
}
|
|
1166
|
-
|
|
1167
|
-
function sample_Conference(scene, camera) {
|
|
1168
|
-
|
|
1169
|
-
const p = load_gltf('conference/model.glb').then(b => scene.add(b.scenes));
|
|
1170
|
-
|
|
1171
|
-
scene.lights.add(make_sunlight());
|
|
1172
|
-
|
|
1173
|
-
camera.transform.fromJSON({
|
|
1174
|
-
position: { x: -32.56003483363031, y: 398.4662739124476, z: -321.8140581258559 },
|
|
1175
|
-
rotation: { x: 0.11065255270495904, y: 0.49736196986724446, z: -0.06413785788114089, w: 0.8580637614397132 }
|
|
1176
|
-
});
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
const plane = Mesh.from(
|
|
1180
|
-
make_box_geometry(1000, 1, 1000),
|
|
1181
|
-
new StandardShadeMaterial(),
|
|
1182
|
-
Transform.fromJSON({
|
|
1183
|
-
position: { x: 0, y: -0.5, z: 0 }
|
|
1184
|
-
}).matrix
|
|
1185
|
-
);
|
|
1186
|
-
scene.add(plane);
|
|
1187
|
-
|
|
1188
|
-
return p;
|
|
1189
|
-
}
|
|
1190
|
-
|
|
1191
|
-
function sample_Plane(scene, camera) {
|
|
1192
|
-
|
|
1193
|
-
scene.lights.add(make_sunlight());
|
|
1194
|
-
|
|
1195
|
-
const material = new StandardShadeMaterial();
|
|
1196
|
-
material.texture_albedo = make_checkers_texture({
|
|
1197
|
-
size: 64,
|
|
1198
|
-
repeat: 8,
|
|
1199
|
-
color1: Color.fromRGB(1, 0.6, 0),
|
|
1200
|
-
color2: Color.fromRGB(1, 1, 1),
|
|
1201
|
-
});
|
|
1202
|
-
material.roughness_factor = 1;
|
|
1203
|
-
material.metallic_factor = 0;
|
|
1204
|
-
|
|
1205
|
-
const transform = Transform.fromJSON({
|
|
1206
|
-
position: { x: 0, y: -0.5, z: 0 },
|
|
1207
|
-
});
|
|
1208
|
-
transform.lookAt(Vector3.up);
|
|
1209
|
-
|
|
1210
|
-
const plane = Mesh.from(
|
|
1211
|
-
make_plane_geometry(
|
|
1212
|
-
100, 100,
|
|
1213
|
-
5, 5,
|
|
1214
|
-
),
|
|
1215
|
-
material,
|
|
1216
|
-
transform.matrix
|
|
1217
|
-
);
|
|
1218
|
-
|
|
1219
|
-
scene.add(plane);
|
|
1220
|
-
|
|
1221
|
-
camera.transform.fromJSON({
|
|
1222
|
-
position: { x: 0, y: 2, z: 0 },
|
|
1223
|
-
rotation: { x: 0.11065255270495904, y: 0.49736196986724446, z: -0.06413785788114089, w: 0.8580637614397132 }
|
|
1224
|
-
});
|
|
1225
|
-
|
|
1226
|
-
load_default_environment(scene)
|
|
1227
|
-
return Promise.resolve();
|
|
1228
|
-
}
|
|
1229
|
-
|
|
1230
|
-
function sample_Classroom(scene, camera) {
|
|
1231
|
-
|
|
1232
|
-
const p = load_gltf('classroom/gltf2/model.gltf').then(b => scene.add(b.scenes[0]));
|
|
1233
|
-
|
|
1234
|
-
scene.lights.add(make_sunlight({
|
|
1235
|
-
direction: new Vector3(-1, -1, -1)
|
|
1236
|
-
}));
|
|
1237
|
-
|
|
1238
|
-
camera.transform.fromJSON({
|
|
1239
|
-
position: { x: 1.244353751164485, y: 1.1681474214190015, z: 0.8488125513802389 },
|
|
1240
|
-
rotation: { x: -0.00006083963607998484, y: 0.999823003536261, z: 0.003283608695736593, w: 0.01852500505267974 }
|
|
1241
|
-
});
|
|
1242
|
-
|
|
1243
|
-
load_default_environment(scene)
|
|
1244
|
-
|
|
1245
|
-
camera.far = 30;
|
|
1246
|
-
|
|
1247
|
-
return p;
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
async function sample_TrashGod(scene, camera) {
|
|
1252
|
-
const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
1253
|
-
// const env_map = "environments/octahedral/moonless_golf_4k.hdr";
|
|
1254
|
-
// const env_map = "environments/octahedral/rustig_koppie_puresky_2k.hdr";
|
|
1255
|
-
// const env_map = "environments/test4_16.hdr";
|
|
1256
|
-
load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
1257
|
-
|
|
1258
|
-
scene.lights.environment = texture;
|
|
1259
|
-
|
|
1260
|
-
renderer.indicate_view_change();
|
|
1261
|
-
|
|
1262
|
-
});
|
|
1263
|
-
|
|
1264
|
-
{
|
|
1265
|
-
const fog = new ParticipatingMediaVolume();
|
|
1266
|
-
fog.transform.position.set(-55, 4, -5.116);
|
|
1267
|
-
fog.transform.scale.set(10, 3, 20);
|
|
1268
|
-
fog.transform.rotation.fromAxisAngle(Vector3.up, 83 * (Math.PI / 180));
|
|
1269
|
-
fog.fade_distance = 0.5;
|
|
1270
|
-
|
|
1271
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.CLOUD_DROPLET_LARGE);
|
|
1272
|
-
|
|
1273
|
-
fog.target_extinction = 1;
|
|
1274
|
-
|
|
1275
|
-
console.log(fog);
|
|
1276
|
-
|
|
1277
|
-
scene.volumetrics.add(fog);
|
|
1278
|
-
}
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
{
|
|
1282
|
-
// test volume in the sky
|
|
1283
|
-
const fog = new ParticipatingMediaVolume();
|
|
1284
|
-
fog.transform.position.set(-55, 0, -5.116);
|
|
1285
|
-
fog.transform.scale.set(200, 200, 200);
|
|
1286
|
-
fog.fade_distance = 10;
|
|
1287
|
-
|
|
1288
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.MARITIME_HAZE_SMALL);
|
|
1289
|
-
|
|
1290
|
-
fog.target_extinction = 0.003;
|
|
1291
|
-
|
|
1292
|
-
// scene.volumetrics.add(fog);
|
|
1293
|
-
}
|
|
1294
|
-
|
|
1295
|
-
{
|
|
1296
|
-
// graveyard
|
|
1297
|
-
const fog = new ParticipatingMediaVolume();
|
|
1298
|
-
fog.transform.position.set(-51.98019820725889, 7.899311905935347, -15.3228393616169);
|
|
1299
|
-
fog.transform.scale.set(7, 5, 7);
|
|
1300
|
-
fog.fade_distance = 1;
|
|
1301
|
-
|
|
1302
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.FOG_DROPLET_SMALL);
|
|
1303
|
-
|
|
1304
|
-
fog.target_extinction = 0.4;
|
|
1305
|
-
|
|
1306
|
-
scene.volumetrics.add(fog);
|
|
1307
|
-
}
|
|
1308
|
-
|
|
1309
|
-
{
|
|
1310
|
-
// Mine
|
|
1311
|
-
const fog = new ParticipatingMediaVolume();
|
|
1312
|
-
fog.transform.position.set(-50.846390607312934, 0.3159949821015605, 17.89429433940319);
|
|
1313
|
-
fog.transform.scale.set(10, 7, 10);
|
|
1314
|
-
fog.fade_distance = 4;
|
|
1315
|
-
|
|
1316
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.COARSE_DUST_MEDIUM);
|
|
1317
|
-
|
|
1318
|
-
fog.target_extinction = 0.4;
|
|
1319
|
-
|
|
1320
|
-
scene.volumetrics.add(fog);
|
|
1321
|
-
}
|
|
1322
|
-
|
|
1323
|
-
{
|
|
1324
|
-
// large crystal
|
|
1325
|
-
const fog = new ParticipatingMediaVolume();
|
|
1326
|
-
fog.transform.position.set(-53.41918585295826, 17.333878151116526, 29.90844167706601);
|
|
1327
|
-
fog.transform.scale.set(18, 10, 18);
|
|
1328
|
-
fog.fade_distance = 4;
|
|
1329
|
-
|
|
1330
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.MARITIME_HAZE_MEDIUM);
|
|
1331
|
-
|
|
1332
|
-
fog.target_extinction = 0.1;
|
|
1333
|
-
|
|
1334
|
-
scene.volumetrics.add(fog);
|
|
1335
|
-
}
|
|
1336
|
-
|
|
1337
|
-
{
|
|
1338
|
-
// Low cloud
|
|
1339
|
-
const fog = new ParticipatingMediaVolume();
|
|
1340
|
-
fog.transform.position.set(-57.36387203979457, -15, 2.607232848593789);
|
|
1341
|
-
fog.transform.scale.set(400, 20, 400);
|
|
1342
|
-
fog.fade_distance = 4;
|
|
1343
|
-
|
|
1344
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.CLOUD_DROPLET_LARGE);
|
|
1345
|
-
|
|
1346
|
-
fog.target_extinction = 0.1;
|
|
1347
|
-
|
|
1348
|
-
scene.volumetrics.add(fog);
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
{
|
|
1352
|
-
// ball cloud
|
|
1353
|
-
const fog = new ParticipatingMediaVolume();
|
|
1354
|
-
fog.transform.position.set(-51.137423384559284, 33, 5.593067265589105);
|
|
1355
|
-
fog.transform.scale.set(15, 15, 15);
|
|
1356
|
-
fog.fade_distance = 7;
|
|
1357
|
-
|
|
1358
|
-
fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.CLOUD_DROPLET_LARGE);
|
|
1359
|
-
|
|
1360
|
-
fog.target_extinction = 1;
|
|
1361
|
-
|
|
1362
|
-
scene.volumetrics.add(fog);
|
|
1363
|
-
}
|
|
1364
|
-
|
|
1365
|
-
const p = load_gltf('flying_world_-_battle_of_the_trash_god/v2/scene.gltf').then(b => scene.add(b.scenes[0]));
|
|
1366
|
-
|
|
1367
|
-
// p.then(() => {
|
|
1368
|
-
//
|
|
1369
|
-
// scene.lights.elements
|
|
1370
|
-
// .filter(l => l.name === "Point Torch Yellow")
|
|
1371
|
-
// .forEach(l => {
|
|
1372
|
-
//
|
|
1373
|
-
// const fog = new ParticipatingMediaVolume();
|
|
1374
|
-
//
|
|
1375
|
-
// fog.transform.position.set(...l.position);
|
|
1376
|
-
// fog.transform.position._add(0, 0.7, 0);
|
|
1377
|
-
// fog.transform.scale.set(1, 2, 1);
|
|
1378
|
-
// fog.fade_distance = 0.5;
|
|
1379
|
-
//
|
|
1380
|
-
// fog.particle_spec = VolumetricsParticleSpec.fromMeep(MIE_PARTICLES_STANDARD_PRECOMPUTED.SOOT_PARTICLE_SMALL);
|
|
1381
|
-
//
|
|
1382
|
-
// fog.target_extinction = 1;
|
|
1383
|
-
//
|
|
1384
|
-
// scene.volumetrics.add(fog);
|
|
1385
|
-
//
|
|
1386
|
-
// })
|
|
1387
|
-
//
|
|
1388
|
-
// })
|
|
1389
|
-
|
|
1390
|
-
scene.lights.add(make_sunlight({
|
|
1391
|
-
intensity: 0.6,
|
|
1392
|
-
temperature: 5500,
|
|
1393
|
-
}));
|
|
1394
|
-
|
|
1395
|
-
const skull_view = {
|
|
1396
|
-
position: { x: -26.275197432538384, y: 7.498790962451237, z: -14.42467495393056 },
|
|
1397
|
-
rotation: { x: 0.10177000778045209, y: -0.7321660020265738, z: 0.11220628445996303, w: 0.6640674368770687 }
|
|
1398
|
-
};
|
|
1399
|
-
|
|
1400
|
-
const over_view = {
|
|
1401
|
-
position: { x: 561.3195688834221, y: 3167.9298818170405, z: 1381.5435954300099 },
|
|
1402
|
-
rotation: { x: 0.10177001090182168, y: -0.7321659835534557, z: 0.1122062816289112, w: 0.6640674572445613 }
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
const spider = {
|
|
1406
|
-
|
|
1407
|
-
position: { x: -5191.672826640803, y: 2892.1892981228802, z: -2043.5879697201829 },
|
|
1408
|
-
rotation: { x: 0.080291737740006, y: -0.7631136560429292, z: 0.09665356975856286, w: 0.6339312835508361 }
|
|
1409
|
-
}
|
|
1410
|
-
|
|
1411
|
-
const shadow_aliasing = {
|
|
1412
|
-
position: { x: -4946.674267332207, y: 822.1640478401062, z: -392.519591814741 },
|
|
1413
|
-
rotation: { x: 0.426693783608766, y: -0.5231794083976178, z: 0.34134946843470265, w: 0.6539849096559494 }
|
|
1414
|
-
}
|
|
1415
|
-
|
|
1416
|
-
const inside_out = {
|
|
1417
|
-
position: { x: -61.55864473831582, y: 23.7158848700074, z: -19.634434309820563 },
|
|
1418
|
-
rotation: { x: 0.27745576215003553, y: 0.0922110339369582, z: -0.026764015593898134, w: 0.9559284035634205 }
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
|
-
/*
|
|
1422
|
-
* Bits of the near cascade missing on the left side of the screen
|
|
1423
|
-
*/
|
|
1424
|
-
const bug_csm_0 = {
|
|
1425
|
-
position: { x: -39.15820039740183, y: 17.305095595368833, z: 44.319508050243655 },
|
|
1426
|
-
rotation: { x: -0.035838706300981016, y: 0.9628441269037102, z: -0.161869537454111, w: -0.21317839304698766 }
|
|
1427
|
-
}
|
|
1428
|
-
|
|
1429
|
-
const bug_csm_1 = {
|
|
1430
|
-
position: { x: -43.91323377490874, y: 10.080327167610022, z: -4.1856509114938 },
|
|
1431
|
-
rotation: { x: 0.020717047791664202, y: 0.968231065465529, z: -0.08572609843316348, w: 0.23398812757426804 }
|
|
1432
|
-
}
|
|
1433
|
-
|
|
1434
|
-
const bug_csm_2 = {
|
|
1435
|
-
|
|
1436
|
-
position: { x: -42.67024163051378, y: 10.401522537349356, z: 0.6341511635976064 },
|
|
1437
|
-
rotation: { x: -0.11791330161935587, y: 0.8722587201986901, z: -0.2583114533866139, w: -0.39816626098636393 }
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
|
-
const bug_csm_3 = {
|
|
1441
|
-
position: { x: -58.73836000019737, y: 9.641602065925643, z: 10.126891117770958 },
|
|
1442
|
-
rotation: { x: 0.280837710090786, y: -0.04708735441480127, z: 0.013796455012015974, w: 0.9585001927356509 }
|
|
1443
|
-
}
|
|
1444
|
-
|
|
1445
|
-
const v_dead_overview = {
|
|
1446
|
-
position: { x: -44.23572420730413, y: 16.787419516572818, z: -0.3908097424888902 },
|
|
1447
|
-
rotation: { x: -0.10289617976426199, y: 0.8965686124184902, z: -0.32052909150868936, w: -0.2878162624184363 }
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
const v_shadow_filter_size = {
|
|
1451
|
-
position: { x: -75.55871135386205, y: 1.9080206598480183, z: -18.294818145397606 },
|
|
1452
|
-
rotation: { x: -0.16327189433088332, y: 0.8004006042626218, z: -0.518922071596019, w: -0.25183535261779855 }
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
const v_volumetrics_0 = {
|
|
1456
|
-
position: { x: -39.165083083628595, y: 9.002002938463146, z: -12.822321096883556 },
|
|
1457
|
-
rotation: { x: 0.0461501744849993, y: 0.9414711984407541, z: -0.14428237367052793, w: 0.3011390717750397 }
|
|
1458
|
-
}
|
|
1459
|
-
|
|
1460
|
-
const v_volumetrics_1 = {
|
|
1461
|
-
position: { x: -57.19543561067503, y: 4.497368033549733, z: -5.431935542965578 },
|
|
1462
|
-
rotation: {
|
|
1463
|
-
x: 0.0012158994167123557,
|
|
1464
|
-
y: 0.9584376528911036,
|
|
1465
|
-
z: -0.0040851224490818586,
|
|
1466
|
-
w: 0.28527022081489145
|
|
1467
|
-
},
|
|
1468
|
-
}
|
|
1469
|
-
|
|
1470
|
-
const v_volumetrics_aliasing_0 = {
|
|
1471
|
-
position: { x: -44.358600521646366, y: 8.13976892720825, z: 2.6707745658793725 },
|
|
1472
|
-
rotation: { x: -0.07197787209539422, y: 0.9277035010259875, z: -0.24609398688026018, w: -0.2713358614966388 }
|
|
1473
|
-
}
|
|
1474
|
-
const v_volumetrics_aliasing_1 = {
|
|
1475
|
-
position: { x: -36.56903863396318, y: 19.1017887067011, z: 13.881382214134083 },
|
|
1476
|
-
rotation: { x: -0.0961072760435774, y: 0.9036695806244697, z: -0.3054532939528032, w: -0.28432897453277794 }
|
|
1477
|
-
}
|
|
1478
|
-
|
|
1479
|
-
const v_volumetrics_light_extinction_0 = {
|
|
1480
|
-
position: { x: -47.074886781095216, y: 0.0051172127701454295, z: 0.46145311799353866 },
|
|
1481
|
-
rotation: { x: -0.04468415098642029, y: 0.7811718063448942, z: 0.620166060884645, w: 0.056284922930574056 }
|
|
1482
|
-
}
|
|
1483
|
-
|
|
1484
|
-
const v_volumetrics_light_extinction_1 = {
|
|
1485
|
-
position: { x: -54.94436821717198, y: 72.07148512632519, z: -4.2209546627188335 },
|
|
1486
|
-
rotation: { x: 0.0051060368457535015, y: 0.7070887360615967, z: 0.7070879549622326, w: -0.005106042486242929 }
|
|
1487
|
-
}
|
|
1488
|
-
|
|
1489
|
-
const v_hzb_bug_7 = {
|
|
1490
|
-
position: { x: -49.664092722839094, y: 11.429727150839048, z: 26.506353317643125 },
|
|
1491
|
-
rotation: { x: 0.07238277495443966, y: 0.8109369207802384, z: -0.10271154858200157, w: 0.5714826175775142 }
|
|
1492
|
-
};
|
|
1493
|
-
|
|
1494
|
-
const v_upscale_0 = {
|
|
1495
|
-
position: { x: -54.77560187021332, y: 17.558461532917807, z: 30.878805142919266 },
|
|
1496
|
-
rotation: { x: 0.13934693181182012, y: -0.7809321354230323, z: 0.187894577434838, w: 0.5791571982016959 }
|
|
1497
|
-
}
|
|
1498
|
-
|
|
1499
|
-
camera.transform.fromJSON(v_dead_overview);
|
|
1500
|
-
|
|
1501
|
-
camera.far = 120;
|
|
1502
|
-
|
|
1503
|
-
await load_slpv(scene, "flying_world_-_battle_of_the_trash_god/v2/lightmap-low.svlm");
|
|
1504
|
-
|
|
1505
|
-
return p;
|
|
1506
|
-
}
|
|
1507
|
-
|
|
1508
|
-
function sample_SeaKeep(scene, camera) {
|
|
1509
|
-
|
|
1510
|
-
const p = load_gltf('sea_keep_lonely_watcher/v2/scene.gltf').then(b => scene.add(b.scenes[0]));
|
|
1511
|
-
|
|
1512
|
-
scene.lights.add(make_sunlight({
|
|
1513
|
-
intensity: 20,
|
|
1514
|
-
direction: new Vector3(-0.7, -1, -0.5)
|
|
1515
|
-
}));
|
|
1516
|
-
|
|
1517
|
-
camera.transform.fromJSON({
|
|
1518
|
-
position: { x: 10.475921102533784, y: 16.581366474984392, z: -8.686678195075844 },
|
|
1519
|
-
rotation: { x: 0.29364345376677314, y: -0.3801409351324641, z: 0.12866203194569786, w: 0.867590037420982 }
|
|
1520
|
-
});
|
|
1521
|
-
|
|
1522
|
-
camera.far = 60;
|
|
1523
|
-
|
|
1524
|
-
load_default_environment(scene);
|
|
1525
|
-
|
|
1526
|
-
load_slpv(scene, "sea_keep_lonely_watcher/v2/lightmap.svlm");
|
|
1527
|
-
|
|
1528
|
-
return p;
|
|
1529
|
-
}
|
|
1530
|
-
|
|
1531
|
-
function stress_test_01(scene, controller) {
|
|
1532
|
-
scene.lights.add(make_sunlight());
|
|
1533
|
-
|
|
1534
|
-
const random = seededRandom();
|
|
1535
|
-
|
|
1536
|
-
const geometries = (new Array(10000).fill(1)).map(() => {
|
|
1537
|
-
|
|
1538
|
-
const shape = randomIntegerBetween(random, 0, 1);
|
|
1539
|
-
|
|
1540
|
-
switch (shape) {
|
|
1541
|
-
default:
|
|
1542
|
-
case 0:
|
|
1543
|
-
return make_box_geometry(
|
|
1544
|
-
randomFloatBetween(random, 1, 5),
|
|
1545
|
-
randomFloatBetween(random, 1, 5),
|
|
1546
|
-
randomFloatBetween(random, 1, 5),
|
|
1547
|
-
)
|
|
1548
|
-
case 1:
|
|
1549
|
-
return make_octahedron_geometry(
|
|
1550
|
-
randomFloatBetween(random, 1, 5),
|
|
1551
|
-
randomIntegerBetween(random, 0, 2)
|
|
1552
|
-
);
|
|
1553
|
-
|
|
1554
|
-
}
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
});
|
|
1558
|
-
|
|
1559
|
-
const materials = (new Array(1000).fill(1)).map(() => {
|
|
1560
|
-
const mat = new StandardShadeMaterial();
|
|
1561
|
-
|
|
1562
|
-
mat.texture_albedo = get_single_pixel_texture(Color.fromHSV(random(), 1, 1));
|
|
1563
|
-
mat.roughness_factor = randomFloatBetween(random, 0.1, 1);
|
|
1564
|
-
mat.metallic_factor = randomFloatBetween(random, 0, 1);
|
|
1565
|
-
|
|
1566
|
-
return mat;
|
|
1567
|
-
});
|
|
1568
|
-
|
|
1569
|
-
add_random_meshes({
|
|
1570
|
-
batch: scene.instances,
|
|
1571
|
-
geometries,
|
|
1572
|
-
materials,
|
|
1573
|
-
count: 3e6
|
|
1574
|
-
}); // stress-test
|
|
1575
|
-
|
|
1576
|
-
controller.camera.far = 200;
|
|
1577
|
-
controller.from_transform(Transform.fromJSON({
|
|
1578
|
-
position: { x: 316.89373184490677, y: 395.0583521172159, z: 308.85758369195605 },
|
|
1579
|
-
rotation: { x: -0.14299422200935458, y: 0.8569380002295408, z: -0.3442801973586337, w: -0.35592283144136044 },
|
|
1580
|
-
}));
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
load_default_environment(scene);
|
|
1584
|
-
|
|
1585
|
-
return Promise.resolve();
|
|
1586
|
-
}
|
|
1587
|
-
|
|
1588
|
-
function make_spotlight() {
|
|
1589
|
-
const sp = new SpotLight();
|
|
1590
|
-
sp.color.copy(Color.red);
|
|
1591
|
-
sp.intensity = 100;
|
|
1592
|
-
sp.angle = 10 * DEG_TO_RAD;
|
|
1593
|
-
sp.penumbra = 0.1;
|
|
1594
|
-
sp.distance = 50;
|
|
1595
|
-
|
|
1596
|
-
sp.transform_local.setTranslation(0, 5, 0);
|
|
1597
|
-
t64_look_rotation(sp.transform_local, Vector3.down.x, Vector3.down.y, Vector3.down.z, 0, 1, 0);
|
|
1598
|
-
sp.updateMatrices();
|
|
1599
|
-
return sp;
|
|
1600
|
-
}
|
|
1601
|
-
|
|
1602
|
-
/**
|
|
1603
|
-
*
|
|
1604
|
-
* @param canvas
|
|
1605
|
-
* @param {GUI} gui
|
|
1606
|
-
* @returns {Promise<void>}
|
|
1607
|
-
*/
|
|
1608
|
-
const init = async ({ canvas, gui }) => {
|
|
1609
|
-
|
|
1610
|
-
const context = canvas.getContext('webgpu');
|
|
1611
|
-
|
|
1612
|
-
const renderer = new Renderer();
|
|
1613
|
-
window.renderer = renderer;
|
|
1614
|
-
|
|
1615
|
-
await renderer.initialize({
|
|
1616
|
-
context
|
|
1617
|
-
});
|
|
1618
|
-
|
|
1619
|
-
const DEBUG_PATCH_QUEUE_LOGGING = false;
|
|
1620
|
-
|
|
1621
|
-
// patch DEBUG
|
|
1622
|
-
if (DEBUG_PATCH_QUEUE_LOGGING) {
|
|
1623
|
-
const queue = renderer.device.queue;
|
|
1624
|
-
const submit = queue.submit;
|
|
1625
|
-
queue.submit = function (commandBuffers) {
|
|
1626
|
-
console.log("queue.submit");
|
|
1627
|
-
|
|
1628
|
-
return submit.call(queue, commandBuffers);
|
|
1629
|
-
}
|
|
1630
|
-
|
|
1631
|
-
const writeBuffer = queue.writeBuffer;
|
|
1632
|
-
queue.writeBuffer = function (buffer, bufferOffset, data, dataOffset, size) {
|
|
1633
|
-
console.log(`queue.writeBuffer("${buffer.label}", ${bufferOffset}, data, ${dataOffset}, ${size})`);
|
|
1634
|
-
|
|
1635
|
-
return writeBuffer.call(queue, buffer, bufferOffset, data, dataOffset, size);
|
|
1636
|
-
}
|
|
1637
|
-
}
|
|
1638
|
-
|
|
1639
|
-
globalThis.gfx = renderer.graphics;
|
|
1640
|
-
|
|
1641
|
-
console.log(renderer);
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
const camera = new PerspectiveCamera();
|
|
1645
|
-
camera.transform.position.set(0, 0, -5);
|
|
1646
|
-
camera.transform.lookAt(Vector3.zero);
|
|
1647
|
-
|
|
1648
|
-
camera.near = 0.1;
|
|
1649
|
-
camera.far = 200;
|
|
1650
|
-
camera.fov = 72 * DEG_TO_RAD;
|
|
1651
|
-
camera.aspect = renderer.aspect_ratio;
|
|
1652
|
-
|
|
1653
|
-
let frame_limit = Infinity;
|
|
1654
|
-
// let frame_limit = 1;
|
|
1655
|
-
|
|
1656
|
-
// controller.look(new Vector3(0, 50, -100), Vector3.zero);
|
|
1657
|
-
// controller.look(new Vector3(0,2,-2), Vector3.zero);
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
const scene = new Scene();
|
|
1661
|
-
|
|
1662
|
-
window.scene = scene;
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
const executor = new ConcurrentExecutor(3, 2);
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
async function visialize_probes() {
|
|
1669
|
-
|
|
1670
|
-
// disable LPV so that we don't collect lighting with probes in the scene
|
|
1671
|
-
renderer.feature_lpv_enabled = false;
|
|
1672
|
-
|
|
1673
|
-
const gpu_scene = renderer.scenes.obtain(scene);
|
|
1674
|
-
|
|
1675
|
-
// get current coefficients
|
|
1676
|
-
await gpu_scene.light_probe_volume.download();
|
|
1677
|
-
|
|
1678
|
-
lpv_visualise_probes(scene);
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
async function handle_scene_loaded() {
|
|
1683
|
-
console.log("SCENE LOAD COMPLETE");
|
|
1684
|
-
|
|
1685
|
-
{
|
|
1686
|
-
let count = 0;
|
|
1687
|
-
|
|
1688
|
-
console.time("graphics update");
|
|
1689
|
-
renderer.graphics.update();
|
|
1690
|
-
console.timeEnd("graphics update");
|
|
1691
|
-
|
|
1692
|
-
const time_load_finished = performance.now();
|
|
1693
|
-
|
|
1694
|
-
renderer.onFrameFinished.add(() => {
|
|
1695
|
-
count++;
|
|
1696
|
-
|
|
1697
|
-
if (count === 1) {
|
|
1698
|
-
const duration = performance.now() - time_load_finished;
|
|
1699
|
-
console.log(`Time to render first frame after load: ${duration.toFixed(2)}ms`);
|
|
1700
|
-
}
|
|
1701
|
-
|
|
1702
|
-
if (count === 3) {
|
|
1703
|
-
const time = performance.now();
|
|
1704
|
-
const time_since_load = time - timestamp_main_parsed_ms;
|
|
1705
|
-
|
|
1706
|
-
console.log(`first meaningful frame after scene load in ${time_since_load} ms`)
|
|
1707
|
-
}
|
|
1708
|
-
})
|
|
1709
|
-
}
|
|
1710
|
-
|
|
1711
|
-
// await delay(1000);
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
// frame_limit = 0;
|
|
1715
|
-
|
|
1716
|
-
// await delay(1000);
|
|
1717
|
-
|
|
1718
|
-
// renderer.indicate_view_change();
|
|
1719
|
-
|
|
1720
|
-
frame_limit += 3; // limit number of drawn frames to spare the GPU
|
|
1721
|
-
camera.transform.subscribe(() => {
|
|
1722
|
-
frame_limit = Math.max(frame_limit, 1);
|
|
1723
|
-
});
|
|
1724
|
-
|
|
1725
|
-
const bb = scene.instances.bounding_box;
|
|
1726
|
-
|
|
1727
|
-
if (controller.movement_speed_scale === 1.0) {
|
|
1728
|
-
// looks unmodified, let's change that
|
|
1729
|
-
controller.movement_speed_scale = Math.max(bb.width, bb.height, bb.depth) * 0.1;
|
|
1730
|
-
}
|
|
1731
|
-
|
|
1732
|
-
}
|
|
1733
|
-
|
|
1734
|
-
// test_radix_sort(renderer.graphics);
|
|
1735
|
-
// test_prefix_sum(renderer.graphics);
|
|
1736
|
-
// generate_dfg_texture({
|
|
1737
|
-
// graphics: renderer.graphics,
|
|
1738
|
-
// });
|
|
1739
|
-
|
|
1740
|
-
// load_slpv(scene, "Sponza/glTF/lightmap-2.svlm")
|
|
1741
|
-
// load_scene_from_url('Sponza/scene-v11.shade', scene)
|
|
1742
|
-
// .then(async () => {
|
|
1743
|
-
// })
|
|
1744
|
-
// .then(() => {
|
|
1745
|
-
// // camera.fov = 55 * DEG_TO_RAD;
|
|
1746
|
-
// camera.far = 25;
|
|
1747
|
-
// controller.from_transform(Transform.fromJSON({
|
|
1748
|
-
// position: {
|
|
1749
|
-
// "x": 6.882350816359706,
|
|
1750
|
-
// "y": 3.46377271542073,
|
|
1751
|
-
// "z": -0.35451149125927056
|
|
1752
|
-
// },
|
|
1753
|
-
// rotation: {
|
|
1754
|
-
// "x": 0,
|
|
1755
|
-
// "y": -0.7071067811865476,
|
|
1756
|
-
// "z": 0,
|
|
1757
|
-
// "w": 0.7071067811865476
|
|
1758
|
-
// }
|
|
1759
|
-
// }));
|
|
1760
|
-
// })
|
|
1761
|
-
// .then(handle_scene_loaded);
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
// load_scene_from_url('public/EmeraldSquare_v4_1/scene-day-v2.shade', scene)
|
|
1765
|
-
// .then(() => {
|
|
1766
|
-
// camera.far = 200;
|
|
1767
|
-
// const v_square_0 = {
|
|
1768
|
-
// position: { x: -36.500386604645435, y: 54.39537857145933, z: -14.811733171263 },
|
|
1769
|
-
// rotation: {
|
|
1770
|
-
// x: 0.423022072756093,
|
|
1771
|
-
// y: -0.00038350294642907576,
|
|
1772
|
-
// z: 0.00017903847226245933,
|
|
1773
|
-
// w: 0.9061192784793038
|
|
1774
|
-
// }
|
|
1775
|
-
// };
|
|
1776
|
-
// controller.from_transform(Transform.fromJSON(v_square_0));
|
|
1777
|
-
// })
|
|
1778
|
-
// .then(handle_scene_loaded)
|
|
1779
|
-
// .then(async () => {
|
|
1780
|
-
//
|
|
1781
|
-
// await load_slpv(scene, "public/EmeraldSquare_v4_1/lightmap-v2.svlm")
|
|
1782
|
-
// });
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
// await load_slpv(scene, "flying_world_-_battle_of_the_trash_god/export/lightmap.svlm");
|
|
1786
|
-
// load_scene_from_url('flying_world_-_battle_of_the_trash_god/export/scene.shade', scene)
|
|
1787
|
-
// .then(() => {
|
|
1788
|
-
// camera.far = 120;
|
|
1789
|
-
// const v_dead_overview = {
|
|
1790
|
-
// position: { x: -44.23572420730413, y: 16.787419516572818, z: -0.3908097424888902 },
|
|
1791
|
-
// rotation: {
|
|
1792
|
-
// x: -0.10289617976426199,
|
|
1793
|
-
// y: 0.8965686124184902,
|
|
1794
|
-
// z: -0.32052909150868936,
|
|
1795
|
-
// w: -0.2878162624184363
|
|
1796
|
-
// }
|
|
1797
|
-
// }
|
|
1798
|
-
// controller.from_transform(Transform.fromJSON(v_dead_overview));
|
|
1799
|
-
// })
|
|
1800
|
-
// .then(handle_scene_loaded)
|
|
1801
|
-
// .then(async () => {
|
|
1802
|
-
// });
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
// sample_PicaPica(scene, camera).then(handle_scene_loaded);
|
|
1806
|
-
// sample_Sponza(scene, camera).then(handle_scene_loaded)
|
|
1807
|
-
// sample_Plane(scene, camera).then(handle_scene_loaded);
|
|
1808
|
-
// sample_rungholt(scene, camera).then(handle_scene_loaded);
|
|
1809
|
-
// sample_house_diorama(scene, camera).then(handle_scene_loaded);
|
|
1810
|
-
// sample_italian_kitchen(scene, camera).then(handle_scene_loaded);
|
|
1811
|
-
// sample_country_kitchen_cycles(scene, camera).then(handle_scene_loaded);
|
|
1812
|
-
// sample_salle_de_bain(scene, camera).then(handle_scene_loaded);
|
|
1813
|
-
// sample_harley_davidson_xr1200x(scene, camera).then(handle_scene_loaded);
|
|
1814
|
-
sample_TrashGod(scene, camera).then(handle_scene_loaded);
|
|
1815
|
-
// sample_SeaKeep(scene, camera).then(handle_scene_loaded);
|
|
1816
|
-
// sample_FlightHelmet(scene, camera).then(handle_scene_loaded)
|
|
1817
|
-
// sample_Blender2(scene, camera).then(handle_scene_loaded);
|
|
1818
|
-
// sample_pebble_scattering(scene, camera).then(handle_scene_loaded);
|
|
1819
|
-
// sample_EldenRing0(scene, camera).then(handle_scene_loaded);
|
|
1820
|
-
// sample_Blender35(scene, camera).then(handle_scene_loaded);
|
|
1821
|
-
// sample_Blender41(scene, camera).then(handle_scene_loaded);
|
|
1822
|
-
// sample_powerplant(scene, camera).then(handle_scene_loaded);
|
|
1823
|
-
// sample_Sibenik(scene, camera).then(handle_scene_loaded);
|
|
1824
|
-
// sample_flower_scattering(scene, camera);
|
|
1825
|
-
// sample_Bistro(scene, camera).then(handle_scene_loaded);
|
|
1826
|
-
// sample_JustAGirl(scene, camera);
|
|
1827
|
-
// sample_CafeBernini(scene, camera).then(handle_scene_loaded);
|
|
1828
|
-
// sample_Conference(scene, camera).then(handle_scene_loaded);
|
|
1829
|
-
// sample_Classroom(scene, camera).then(handle_scene_loaded);
|
|
1830
|
-
// sample_csgo_de_inferno(scene, camera);
|
|
1831
|
-
// sample_csgo_de_ancient(scene, camera);
|
|
1832
|
-
// sample_csgo_de_gwalior(scene, camera);
|
|
1833
|
-
// sample_csgo_de_nuke(scene, camera);
|
|
1834
|
-
|
|
1835
|
-
// sample_NormalTangentTest(scene, camera);
|
|
1836
|
-
// sample_WaterBottle(scene, camera);
|
|
1837
|
-
// sample_MaterialsVariantsShoe(scene, camera).then(handle_scene_loaded);
|
|
1838
|
-
// sample_MetalRoughSpheres(scene, camera).then(handle_scene_loaded);
|
|
1839
|
-
|
|
1840
|
-
const controller = new OrbitalCameraController(camera, document.body);
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
// animation_prototype({ renderer, scene, controller });
|
|
1844
|
-
// animation_prototype_stress({ renderer, scene, controller });
|
|
1845
|
-
// gltf_skinned_prototype({ renderer, scene, controller });
|
|
1846
|
-
// gltf_skinned_stress_prototype({ renderer, scene, controller });
|
|
1847
|
-
// handle_scene_loaded();
|
|
1848
|
-
|
|
1849
|
-
// load_scene_from_url("public/Bistro_v5_2/exterior/v6/scene-bistro-v6.shade", scene)
|
|
1850
|
-
// .then(handle_scene_loaded)
|
|
1851
|
-
// .then(()=>{
|
|
1852
|
-
//
|
|
1853
|
-
// const v_main = {
|
|
1854
|
-
// position: { x: -15.178634475900287, y: 8.19487549774558, z: 2.082348334498482 },
|
|
1855
|
-
// rotation: { x: 0.086751267628722, y: 0.7637693518798772, z: -0.10501233847843479, w: 0.63095404227336 }
|
|
1856
|
-
// };
|
|
1857
|
-
//
|
|
1858
|
-
// camera.far = 100;
|
|
1859
|
-
// controller.distance = 1;
|
|
1860
|
-
// controller.from_transform(Transform.fromJSON(v_main));
|
|
1861
|
-
//
|
|
1862
|
-
// });
|
|
1863
|
-
|
|
1864
|
-
// sample_load_gltf(scene, controller, "public/Bistro_v5_2/exterior/v7/scene.gltf")
|
|
1865
|
-
// .then(handle_scene_loaded)
|
|
1866
|
-
// .then(() => {
|
|
1867
|
-
//
|
|
1868
|
-
// const v_main = {
|
|
1869
|
-
// position: { x: -15.178634475900287, y: 8.19487549774558, z: 2.082348334498482 },
|
|
1870
|
-
// rotation: { x: 0.086751267628722, y: 0.7637693518798772, z: -0.10501233847843479, w: 0.63095404227336 }
|
|
1871
|
-
// };
|
|
1872
|
-
//
|
|
1873
|
-
// camera.far = 100;
|
|
1874
|
-
// controller.distance = 1;
|
|
1875
|
-
// controller.from_transform(Transform.fromJSON(v_main));
|
|
1876
|
-
//
|
|
1877
|
-
// load_slpv(scene, "public/Bistro_v5_2/exterior/v7/lightmap-v1.svlm");
|
|
1878
|
-
//
|
|
1879
|
-
// renderer.indirect_lighting_mode = ShadeIndirectLightingMode.Brick4;
|
|
1880
|
-
//
|
|
1881
|
-
// load_environment_map("public/environments/octahedral/night_sky.hdr", ProjectionMappingType.Octahedral)
|
|
1882
|
-
// .then(t => {
|
|
1883
|
-
// scene.lights.environment = t;
|
|
1884
|
-
// })
|
|
1885
|
-
// });
|
|
1886
|
-
|
|
1887
|
-
// sample_load_gltf(scene, controller, 'glTF-Sample-Models/2.0/TransmissionTest/glTF/TransmissionTest.gltf');
|
|
1888
|
-
// sample_load_gltf(scene, controller, 'glTF-Sample-Models/2.0/ABeautifulGame/glTF/ABeautifulGame.gltf').then(handle_scene_loaded);
|
|
1889
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/24h-burnout-bot/scene.gltf');
|
|
1890
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/simple_house/scene.gltf');
|
|
1891
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/2023_lamborghini_urus_performante/scene.gltf').then(handle_scene_loaded);
|
|
1892
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/water_bottles/scene.gltf');
|
|
1893
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/realistic_potions/scene.gltf').then(()=>{
|
|
1894
|
-
// controller.from_transform(Transform.fromJSON({
|
|
1895
|
-
// position: { x: 1.9657516684854834, y: -0.1831089598638198, z: 0.0026640782736288005 },
|
|
1896
|
-
// rotation: { x: -0.045103185083318, y: -0.6400281362737125, z: -0.03768084056001766, w: 0.766100412301174 }
|
|
1897
|
-
// }))
|
|
1898
|
-
// }).then(handle_scene_loaded);
|
|
1899
|
-
// sample_load_gltf(scene, controller, 'batch_2025_07_29/sadmeal/scene.gltf');
|
|
1900
|
-
// sample_load_gltf(scene, controller, 'shade_stuff/samples/transparency_cross_01.glb');
|
|
1901
|
-
|
|
1902
|
-
// sample_load_gltf(scene, controller, "customer/ozone/qatar/gltf/v7/scene.gltf")
|
|
1903
|
-
// .then(() => {
|
|
1904
|
-
//
|
|
1905
|
-
// // get sun
|
|
1906
|
-
// const sun = scene.lights.elements.find(e => e.isDirectionalLight);
|
|
1907
|
-
//
|
|
1908
|
-
//
|
|
1909
|
-
// // sun.intensity = 1;
|
|
1910
|
-
// // scene.lights.needsUpdate = true;
|
|
1911
|
-
//
|
|
1912
|
-
// const t = new Transform();
|
|
1913
|
-
// t.rotation.lookRotation(new Vector3(0.40910809346944355, -0.7460735278820639, -0.5253616457749919).normalize());
|
|
1914
|
-
// sun.transform_local.set(t.matrix);
|
|
1915
|
-
// sun.updateMatrices();
|
|
1916
|
-
//
|
|
1917
|
-
//
|
|
1918
|
-
// // const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
1919
|
-
// const env_map = "environments/octahedral/goegap_4k.hdr";
|
|
1920
|
-
// // const env_map = "environments/test4_16.hdr";
|
|
1921
|
-
// load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
1922
|
-
//
|
|
1923
|
-
// scene.lights.environment = texture;
|
|
1924
|
-
//
|
|
1925
|
-
// renderer.indicate_view_change();
|
|
1926
|
-
//
|
|
1927
|
-
// });
|
|
1928
|
-
//
|
|
1929
|
-
// camera.transform.fromJSON({
|
|
1930
|
-
// position: {
|
|
1931
|
-
// x: 23.327619424582437,
|
|
1932
|
-
// y: 12.816779165481643,
|
|
1933
|
-
// z: 11.105323990290163,
|
|
1934
|
-
// },
|
|
1935
|
-
// rotation: {
|
|
1936
|
-
// w: 0.7592648195644102,
|
|
1937
|
-
// x: 0.19492013609844236,
|
|
1938
|
-
// y: -0.6014031188510489,
|
|
1939
|
-
// z: 0.15439353273832238,
|
|
1940
|
-
// }
|
|
1941
|
-
// });
|
|
1942
|
-
//
|
|
1943
|
-
// camera.far = 500;
|
|
1944
|
-
//
|
|
1945
|
-
// controller.look(camera.transform.position, camera.transform.position.clone().add(camera.transform.forward));
|
|
1946
|
-
//
|
|
1947
|
-
// })
|
|
1948
|
-
// .then(handle_scene_loaded);
|
|
1949
|
-
|
|
1950
|
-
//
|
|
1951
|
-
// sample_load_gltf(scene, controller, [
|
|
1952
|
-
// "customer/moicon/06-04_MTNC2021/0/model.gltf",
|
|
1953
|
-
// "customer/moicon/06-04_MTNC2021/1/model.gltf",
|
|
1954
|
-
// "customer/moicon/06-04_MTNC2021/2/model.gltf",
|
|
1955
|
-
// "customer/moicon/06-04_MTNC2021/3/model.gltf",
|
|
1956
|
-
// "customer/moicon/06-04_MTNC2021/4/model.gltf",
|
|
1957
|
-
// "customer/moicon/06-04_MTNC2021/5/model.gltf",
|
|
1958
|
-
// "customer/moicon/06-04_MTNC2021/6/model.gltf",
|
|
1959
|
-
// ]).then(() => {
|
|
1960
|
-
// // get sun
|
|
1961
|
-
// const sun = scene.lights.elements.find(e => e.isDirectionalLight);
|
|
1962
|
-
//
|
|
1963
|
-
// const t = new Transform();
|
|
1964
|
-
// t.rotation.lookRotation(new Vector3(0.4, -1, 0.63).normalize());
|
|
1965
|
-
// sun.transform_local.set(t.matrix);
|
|
1966
|
-
// sun.updateMatrices();
|
|
1967
|
-
//
|
|
1968
|
-
// // const env_map = "environments/octahedral/venice_sunset_2k.hdr";
|
|
1969
|
-
// const env_map = "environments/octahedral/rustig_koppie_puresky_2k.hdr";
|
|
1970
|
-
// // const env_map = "environments/test4_16.hdr";
|
|
1971
|
-
// load_environment_map(env_map, ProjectionMappingType.Octahedral).then(texture => {
|
|
1972
|
-
//
|
|
1973
|
-
// scene.lights.environment = texture;
|
|
1974
|
-
//
|
|
1975
|
-
// renderer.indicate_view_change();
|
|
1976
|
-
//
|
|
1977
|
-
// });
|
|
1978
|
-
// })
|
|
1979
|
-
// .then(handle_scene_loaded);
|
|
1980
|
-
// sample_load_gltf(scene, controller, "shade_stuff/kitchen_alex_b/gltf2/scene.gltf")
|
|
1981
|
-
// .then(handle_scene_loaded)
|
|
1982
|
-
// .then(() => {
|
|
1983
|
-
// camera.transform.fromJSON({
|
|
1984
|
-
// position: { x: 12.125880736194556, y: 1.2, z: -3.605599244935128 },
|
|
1985
|
-
// rotation: {
|
|
1986
|
-
// x: -0.03777112857938461,
|
|
1987
|
-
// y: 0.9481334616173833,
|
|
1988
|
-
// z: -0.12325177369996557,
|
|
1989
|
-
// w: -0.29056028821415014
|
|
1990
|
-
// }
|
|
1991
|
-
// });
|
|
1992
|
-
// controller.look(camera.transform.position, camera.transform.position.clone().add(camera.transform.forward));
|
|
1993
|
-
//
|
|
1994
|
-
// const sun = scene.lights.elements[0];
|
|
1995
|
-
//
|
|
1996
|
-
// const t = new Transform();
|
|
1997
|
-
//
|
|
1998
|
-
// t.rotation.lookRotation(new Vector3(0, -0.2, -0.5).normalize(), Vector3.up);
|
|
1999
|
-
//
|
|
2000
|
-
// sun.transform_local.set(t.matrix);
|
|
2001
|
-
// sun.updateMatrices();
|
|
2002
|
-
//
|
|
2003
|
-
// scene.lights.needsUpdate = true;
|
|
2004
|
-
//
|
|
2005
|
-
// });
|
|
2006
|
-
// sample_load_gltf(scene, controller, "public/shade_stuff/kitchen and ground floor.glb").then(handle_scene_loaded);
|
|
2007
|
-
// sample_load_gltf(scene, controller, "public/customer/tmrw/keynote_hdr-no-window.glb").then(handle_scene_loaded).then(() => {
|
|
2008
|
-
// camera.transform.fromJSON({
|
|
2009
|
-
// position: { x: 4.367881168916819, y: 0.592727107122554, z: 5.711337952482239 },
|
|
2010
|
-
// rotation: {
|
|
2011
|
-
// x: -0.0442197121079618, y: -0.6853574043601649, z: -0.041763656303478426, w: 0.7256622095451515
|
|
2012
|
-
// }
|
|
2013
|
-
// });
|
|
2014
|
-
// controller.look(camera.transform.position, camera.transform.position.clone().add(camera.transform.forward));
|
|
2015
|
-
// })
|
|
2016
|
-
// sample_load_gltf(scene, controller, "public/cornell_box/scene.gltf").then(handle_scene_loaded);
|
|
2017
|
-
// sample_load_gltf(scene, controller, "public/blender-3.3-splash/scene.gltf")
|
|
2018
|
-
// .then(() => {
|
|
2019
|
-
// load_slpv(scene, "public/blender-3.3-splash/lightmap.svlm")
|
|
2020
|
-
// })
|
|
2021
|
-
// .then(handle_scene_loaded);
|
|
2022
|
-
// sample_load_gltf(scene, controller, "public/intel_sponza/main1_sponza/NewSponza_Main_glTF_003.gltf").then(handle_scene_loaded);
|
|
2023
|
-
// sample_load_gltf(scene, controller, "public/intel_sponza/pkg_a_curtains/NewSponza_Curtains_glTF.gltf").then(handle_scene_loaded);
|
|
2024
|
-
// sample_load_gltf(scene, controller, "public/pbr-test-spec-01/scene.gltf").then(handle_scene_loaded);
|
|
2025
|
-
// sample_load_gltf(scene, controller, "public/glTF-Sample-Models/2.0/Fox/glTF/Fox.gltf").then(handle_scene_loaded);
|
|
2026
|
-
// sample_load_gltf(scene, controller, "public/SEED/pica_pica_-_mini_diorama_01/scene.gltf").then(handle_scene_loaded);
|
|
2027
|
-
// sample_load_gltf(scene, controller, "public/SEED/pica_pica_-_floor_junk_clutter_01/scene.gltf").then(handle_scene_loaded);
|
|
2028
|
-
// sample_load_gltf(scene, controller, "public/SEED/pica_pica_-_floor_junk_clutter_02/scene.gltf").then(handle_scene_loaded);
|
|
2029
|
-
// sample_load_gltf(scene, controller, "public/SEED/pica_pica_-_machines/scene.gltf").then(handle_scene_loaded);
|
|
2030
|
-
// sample_load_gltf(scene, controller, "public/porsche_gt3_rs/scene.gltf").then(handle_scene_loaded);
|
|
2031
|
-
// sample_load_gltf(scene, controller, "public/low_poly_flat/scene.gltf").then(handle_scene_loaded);
|
|
2032
|
-
// sample_load_gltf(scene, controller, "public/breakfast_room/gltf/scene.gltf")
|
|
2033
|
-
// .then(() => {
|
|
2034
|
-
// camera.transform.fromJSON({
|
|
2035
|
-
// "position": { "x": -0.6330649449219954, "y": 1.5888956869792006, "z": 5.5901729937324465 },
|
|
2036
|
-
// "rotation": {
|
|
2037
|
-
// "x": -0.00012363111454709365,
|
|
2038
|
-
// "y": 0.9995860069248491,
|
|
2039
|
-
// "z": 0.028441518626431368,
|
|
2040
|
-
// "w": 0.004345053924334134
|
|
2041
|
-
// },
|
|
2042
|
-
// "scale": { "x": 1, "y": 1, "z": 1 }
|
|
2043
|
-
// });
|
|
2044
|
-
// camera.far = 15;
|
|
2045
|
-
// controller.look(camera.transform.position, camera.transform.position.clone().add(camera.transform.forward));
|
|
2046
|
-
//
|
|
2047
|
-
// const sun = scene.lights.elements[0];
|
|
2048
|
-
//
|
|
2049
|
-
// const t = new Transform();
|
|
2050
|
-
//
|
|
2051
|
-
// t.rotation.lookRotation(new Vector3(-0.5, -0.2, -0.5).normalize(), Vector3.up);
|
|
2052
|
-
//
|
|
2053
|
-
// sun.transform_local.set(t.matrix);
|
|
2054
|
-
// sun.updateMatrices();
|
|
2055
|
-
//
|
|
2056
|
-
// scene.lights.needsUpdate = true;
|
|
2057
|
-
// })
|
|
2058
|
-
// .then(handle_scene_loaded);
|
|
2059
|
-
// sample_load_gltf(scene, controller, "public/fireplace_room/gltf/scene.gltf").then(handle_scene_loaded);
|
|
2060
|
-
// sample_load_gltf(scene, controller, "public/hairball/gltf/scene.gltf").then(handle_scene_loaded);
|
|
2061
|
-
// sample_load_gltf(scene, controller, "public/shadow_testing/gltf/scene.gltf").then(handle_scene_loaded);
|
|
2062
|
-
// sample_load_gltf(scene, controller, "public/yale_lights/scene.gltf").then(handle_scene_loaded);
|
|
2063
|
-
// sample_load_gltf(scene, controller, "public/colourdraftssimon_stalenhag_scene/scene.gltf").then(handle_scene_loaded);
|
|
2064
|
-
// sample_load_gltf(scene, controller, "public/room_interior/scene.gltf").then(handle_scene_loaded);
|
|
2065
|
-
// sample_load_gltf(scene, controller, "public/the_blacksmiths/scene.gltf").then(handle_scene_loaded);
|
|
2066
|
-
// sample_load_gltf(scene, controller, "public/gi_box_01/export-01/model.gltf")
|
|
2067
|
-
// .then(() => {
|
|
2068
|
-
// const light = scene.lights.elements[0];
|
|
2069
|
-
//
|
|
2070
|
-
// const transform = new Transform();
|
|
2071
|
-
//
|
|
2072
|
-
// transform.lookAt(new Vector3(0.8, -1, -0.4));
|
|
2073
|
-
//
|
|
2074
|
-
// array_copy(
|
|
2075
|
-
// transform.matrix, 0,
|
|
2076
|
-
// light.transform_local, 0, 16);
|
|
2077
|
-
// light.updateMatrices();
|
|
2078
|
-
//
|
|
2079
|
-
// scene.lights.needsUpdate = true;
|
|
2080
|
-
// })
|
|
2081
|
-
// .then(handle_scene_loaded);
|
|
2082
|
-
// sample_load_gltf(scene, controller, "public/low_poly_classroom/no-glass/model.gltf").then(handle_scene_loaded);
|
|
2083
|
-
// sample_load_gltf(scene, controller, "public/sd_macross_city_standoff_diorama/scene.gltf").then(handle_scene_loaded);
|
|
2084
|
-
// sample_load_gltf(scene, controller, "public/vokselia_spawn/model.gltf").then(handle_scene_loaded);
|
|
2085
|
-
// sample_load_gltf(scene, controller, "public/siege_at_night_medievalremixchallenge/scene.gltf").then(handle_scene_loaded);
|
|
2086
|
-
// sample_load_gltf(scene, controller, "public/room/scene.gltf").then(handle_scene_loaded);
|
|
2087
|
-
// sample_load_gltf(scene, controller, "public/living_and_kitchen/scene.gltf").then(handle_scene_loaded);
|
|
2088
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_10_25/Tree1/gltf/scene.gltf").then(handle_scene_loaded).then(() => {
|
|
2089
|
-
// const light = scene.lights.elements[0];
|
|
2090
|
-
//
|
|
2091
|
-
// const transform = Transform.fromJSON({
|
|
2092
|
-
// position: { x: 0, y: 0, z: 0 },
|
|
2093
|
-
// rotation: { x: 0, y: 0, z: 0, w: 1 }
|
|
2094
|
-
// });
|
|
2095
|
-
//
|
|
2096
|
-
// camera.far = 80;
|
|
2097
|
-
//
|
|
2098
|
-
// transform.lookAt(new Vector3(0.4, -1, -0.4));
|
|
2099
|
-
//
|
|
2100
|
-
// array_copy(
|
|
2101
|
-
// transform.matrix, 0,
|
|
2102
|
-
// light.transform_local, 0, 16);
|
|
2103
|
-
//
|
|
2104
|
-
// light.updateMatrices();
|
|
2105
|
-
//
|
|
2106
|
-
// scene.lights.needsUpdate = true;
|
|
2107
|
-
//
|
|
2108
|
-
// controller.from_transform(Transform.fromJSON({
|
|
2109
|
-
// position: { x: -20.357444352928436, y: 14.160615331200855, z: -1.1000043982504222 },
|
|
2110
|
-
// rotation: { x: 0.08374805292613074, y: 0.6978096507844427, z: -0.08271257426951092, w: 0.7065455292908497 }
|
|
2111
|
-
// }));
|
|
2112
|
-
// });
|
|
2113
|
-
// sample_load_gltf(scene, controller, "public/EmeraldSquare_v4_1/gltf-day/scene.gltf").then(handle_scene_loaded)
|
|
2114
|
-
// .then(() => {
|
|
2115
|
-
//
|
|
2116
|
-
// load_environment_map("public/EmeraldSquare_v4_1/octahedral-symmetrical_garden_4k.hdr", ProjectionMappingType.Octahedral).then(texture => {
|
|
2117
|
-
// scene.lights.environment = texture;
|
|
2118
|
-
// renderer.indicate_view_change();
|
|
2119
|
-
// });
|
|
2120
|
-
//
|
|
2121
|
-
// const v_square_0 = {
|
|
2122
|
-
// position: { x: -36.500386604645435, y: 54.39537857145933, z: -14.811733171263 },
|
|
2123
|
-
// rotation: {
|
|
2124
|
-
// x: 0.423022072756093,
|
|
2125
|
-
// y: -0.00038350294642907576,
|
|
2126
|
-
// z: 0.00017903847226245933,
|
|
2127
|
-
// w: 0.9061192784793038
|
|
2128
|
-
// }
|
|
2129
|
-
// };
|
|
2130
|
-
//
|
|
2131
|
-
// const v_square_1 = {
|
|
2132
|
-
// position: { x: -28.153313300353275, y: 51.56295309567791, z: 11.3294031741776 },
|
|
2133
|
-
// rotation: {
|
|
2134
|
-
// x: 0.4532806960546689,
|
|
2135
|
-
// y: -0.17149926012149977,
|
|
2136
|
-
// z: 0.08933887254580901,
|
|
2137
|
-
// w: 0.8701397475200272
|
|
2138
|
-
// },
|
|
2139
|
-
// };
|
|
2140
|
-
//
|
|
2141
|
-
// // load_slpv(scene, "public/EmeraldSquare_v4_1/gltf-day/lightmap.svlm")
|
|
2142
|
-
//
|
|
2143
|
-
// controller.from_transform(Transform.fromJSON(v_square_0))
|
|
2144
|
-
// })
|
|
2145
|
-
// sample_load_gltf(scene, controller, "public/SunTemple_v4/SunTemple/gltf-v2/scene.gltf")
|
|
2146
|
-
// .then(async () => {
|
|
2147
|
-
// renderer.indirect_lighting_mode = ShadeIndirectLightingMode.IBL;
|
|
2148
|
-
//
|
|
2149
|
-
// camera.far = 50;
|
|
2150
|
-
//
|
|
2151
|
-
// controller.movement_speed_scale = 5;
|
|
2152
|
-
// controller.distanceLimits.set(0.5, 100);
|
|
2153
|
-
// controller.distance = 1;
|
|
2154
|
-
// controller.from_transform(Transform.fromJSON({
|
|
2155
|
-
// "position": { "x": -6.794427874548205, "y": 4.669972481347289, "z": -11.696397774444222 },
|
|
2156
|
-
// "rotation": {
|
|
2157
|
-
// "x": 0.0005146039946247688,
|
|
2158
|
-
// "y": 0.27604020641271343,
|
|
2159
|
-
// "z": -0.00014779378136064382,
|
|
2160
|
-
// "w": 0.961145939898491
|
|
2161
|
-
// }
|
|
2162
|
-
// }))
|
|
2163
|
-
//
|
|
2164
|
-
// scene.lights.environment = await load_environment_map("public/SunTemple_v4/SunTemple/SunTemple_Skybox_oct.hdr", ProjectionMappingType.Octahedral);
|
|
2165
|
-
//
|
|
2166
|
-
// // await renderer.getProbeRendererForScene(scene)
|
|
2167
|
-
// // .generate_locations(64);
|
|
2168
|
-
//
|
|
2169
|
-
// // lpv_generate_probe_locations2({scene});
|
|
2170
|
-
//
|
|
2171
|
-
// // renderer.indirect_lighting_mode = ShadeIndirectLightingMode.LPV;
|
|
2172
|
-
//
|
|
2173
|
-
// // await delay(30000);
|
|
2174
|
-
// // await visialize_probes()
|
|
2175
|
-
//
|
|
2176
|
-
// }).then(handle_scene_loaded);
|
|
2177
|
-
// sample_load_gltf(scene, controller, "public/San_Miguel/gltf/scene.gltf").then(handle_scene_loaded);
|
|
2178
|
-
// sample_load_gltf(scene, controller, "public/TheCarnival/scene.gltf").then(handle_scene_loaded);
|
|
2179
|
-
// sample_load_gltf(scene, controller, "public/TheCabin/scene.gltf").then(handle_scene_loaded);
|
|
2180
|
-
// sample_load_gltf(scene, controller, "public/dreamsong/scene.gltf").then(handle_scene_loaded);
|
|
2181
|
-
// sample_load_gltf(scene, controller, "public/dreamsong/scene-no-bake.gltf").then(handle_scene_loaded);
|
|
2182
|
-
// sample_load_gltf(scene, controller, "public/low-poly_fantasy_island_medieval/scene.gltf").then(handle_scene_loaded);
|
|
2183
|
-
// sample_load_gltf(scene, controller, "public/stylized_little_japanese_town_street/scene.gltf").then(handle_scene_loaded);
|
|
2184
|
-
// sample_load_gltf(scene, controller, "public/sunrise_temple_environment/scene.gltf").then(handle_scene_loaded);
|
|
2185
|
-
// sample_load_gltf(scene, controller, "public/customer/ozone/garage/no-door/scene.gltf")
|
|
2186
|
-
// .then(handle_scene_loaded)
|
|
2187
|
-
// .then(() => {
|
|
2188
|
-
//
|
|
2189
|
-
// load_slpv(scene, "public/customer/ozone/garage/no-door/lightmap.svlm")
|
|
2190
|
-
//
|
|
2191
|
-
// controller.from_transform(Transform.fromJSON({
|
|
2192
|
-
// position: { x: -2.0149998497238504, y: 2.0925572987592562, z: 5.066550531633194 },
|
|
2193
|
-
// rotation: {
|
|
2194
|
-
// x: 0.000026690813678372202,
|
|
2195
|
-
// y: 0.9980212864655044,
|
|
2196
|
-
// z: -0.06287552432742036,
|
|
2197
|
-
// w: 0.0004236624742146783
|
|
2198
|
-
// }
|
|
2199
|
-
// }))
|
|
2200
|
-
// })
|
|
2201
|
-
// sample_load_gltf(scene, controller, "public/customer/ozone/Garden/scene.gltf")
|
|
2202
|
-
// .then(handle_scene_loaded)
|
|
2203
|
-
// .then(async ()=>{
|
|
2204
|
-
// camera.far = 100;
|
|
2205
|
-
//
|
|
2206
|
-
// await load_slpv(scene, "public/customer/ozone/Garden/lightmap.svlm")
|
|
2207
|
-
// })
|
|
2208
|
-
// ;
|
|
2209
|
-
|
|
2210
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/3d_pbr_curved_sofa/scene.gltf").then(handle_scene_loaded);
|
|
2211
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/chinese_style_tea_table/scene.gltf").then(handle_scene_loaded);
|
|
2212
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/simple_dining_table/scene.gltf").then(handle_scene_loaded);
|
|
2213
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/sofa_combination/scene.gltf").then(handle_scene_loaded);
|
|
2214
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/a_low-poly_modular_kitchen_set/scene.gltf").then(handle_scene_loaded);
|
|
2215
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/abandoned_underground_train_station/scene.gltf").then(handle_scene_loaded);
|
|
2216
|
-
|
|
2217
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/castle/scene.gltf").then(handle_scene_loaded);
|
|
2218
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/cdb8c2ee9d8d4186b301bdef2d8a976b/scene.gltf").then(handle_scene_loaded);
|
|
2219
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/chocolate_tart/scene.gltf").then(handle_scene_loaded);
|
|
2220
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/cleopatra_and_the_asp/scene.gltf").then(handle_scene_loaded);
|
|
2221
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/dae_sculpting_final__tree_house_2024/scene.gltf").then(handle_scene_loaded);
|
|
2222
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/fantasy_castle/scene.gltf").then(handle_scene_loaded);
|
|
2223
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/gm_goldencity_day_v2/scene.gltf").then(handle_scene_loaded);
|
|
2224
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/huge_medieval_battle_scene/scene.gltf").then(handle_scene_loaded);
|
|
2225
|
-
// sample_load_gltf(scene, controller, "public/sumatran_tiger/scene.gltf").then(handle_scene_loaded);
|
|
2226
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/koldy/scene.gltf").then(handle_scene_loaded);
|
|
2227
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/girl_portrait/scene.gltf").then(handle_scene_loaded);
|
|
2228
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/oni_girl_sculpt/scene.gltf").then(handle_scene_loaded);
|
|
2229
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/blanket_in_the_wind/scene.gltf").then(handle_scene_loaded);
|
|
2230
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/tokyo_ghoul/scene.gltf").then(handle_scene_loaded);
|
|
2231
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/low_poly_environment_jungle_scene/scene.gltf").then(handle_scene_loaded);
|
|
2232
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/low_poly_hilltop_castle/scene.gltf").then(handle_scene_loaded);
|
|
2233
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/makarov_pm/scene.gltf").then(handle_scene_loaded);
|
|
2234
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/medieval_tavern/scene.gltf").then(handle_scene_loaded);
|
|
2235
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/modern_luxury_villa_house_building_home/scene.gltf").then(handle_scene_loaded);
|
|
2236
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/modern_tower_office_apartment_building/scene.gltf").then(handle_scene_loaded);
|
|
2237
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/museum-and-hydroelectric-plant/source/scene.gltf").then(handle_scene_loaded);
|
|
2238
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/oval_place/scene.gltf").then(handle_scene_loaded);
|
|
2239
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/pawn_mate/scene.gltf").then(handle_scene_loaded);
|
|
2240
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/plaza_night_time/scene.gltf").then(handle_scene_loaded);
|
|
2241
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/prototype_robot/scene.gltf").then(handle_scene_loaded);
|
|
2242
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/ramen/scene.gltf").then(handle_scene_loaded);
|
|
2243
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/robot_character/scene.gltf").then(handle_scene_loaded);
|
|
2244
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/shoot_background__graffiti_street/scene.gltf").then(handle_scene_loaded);
|
|
2245
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/studio_setup/scene.gltf").then(handle_scene_loaded);
|
|
2246
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/suburban_shabby_house_low_poly/scene.gltf").then(handle_scene_loaded);
|
|
2247
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/the_steampunk_vault/scene.gltf").then(handle_scene_loaded);
|
|
2248
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/ururu/scene.gltf").then(handle_scene_loaded);
|
|
2249
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/vino/scene.gltf").then(handle_scene_loaded);
|
|
2250
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/the_japanese_school_corridor/scene.gltf").then(handle_scene_loaded);
|
|
2251
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/virtual_gallery_scene_01/scene.gltf").then(handle_scene_loaded);
|
|
2252
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/grand_enigma_-_contemporary/scene.gltf").then(handle_scene_loaded);
|
|
2253
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/town3f/scene.gltf").then(handle_scene_loaded);
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/solarpunk_village/scene.gltf").then(handle_scene_loaded);
|
|
2257
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/throne_room_-_medieval_fantasy_challenge/scene.gltf").then(handle_scene_loaded);
|
|
2258
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/medieval_alley/scene.gltf").then(handle_scene_loaded);
|
|
2259
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/low_poly_simple_city/scene.gltf").then(handle_scene_loaded);
|
|
2260
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_09_03/cartoon_two-story_villa_low_polygon_3d_model/scene.gltf").then(handle_scene_loaded);
|
|
2261
|
-
|
|
2262
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_12_23/steam_punk_engine/scene.gltf").then(handle_scene_loaded);
|
|
2263
|
-
// sample_load_gltf(scene, controller, "public/batch_2024_12_23/material_ball_in_3d-coat/scene.gltf").then(handle_scene_loaded);
|
|
2264
|
-
|
|
2265
|
-
//
|
|
2266
|
-
|
|
2267
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/93002f91aa764d9295f30d875599101d/scene.gltf").then(handle_scene_loaded);
|
|
2268
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/abandoned_house/scene.gltf").then(handle_scene_loaded);
|
|
2269
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/abandoned_mansion/scene.gltf").then(handle_scene_loaded);
|
|
2270
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/abandoned_water_canal/scene.gltf").then(handle_scene_loaded);
|
|
2271
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/bathroom_-_interior_design/scene.gltf").then(handle_scene_loaded);
|
|
2272
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/bianca_e_leo/scene.gltf").then(handle_scene_loaded);
|
|
2273
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/cartoon_bedroom/scene.gltf").then(handle_scene_loaded);
|
|
2274
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/ccity_building_set_1/scene.gltf").then(handle_scene_loaded);
|
|
2275
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/city/scene.gltf").then(handle_scene_loaded);
|
|
2276
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/crystal_crossroads_-_cc0_asset_pack/scene.gltf").then(handle_scene_loaded);
|
|
2277
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/cs_assault/scene.gltf").then(handle_scene_loaded);
|
|
2278
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/dae_diorama_-_forest_loner/scene.gltf").then(handle_scene_loaded);
|
|
2279
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/diorama/scene.gltf").then(handle_scene_loaded);
|
|
2280
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/exports_b/scene.gltf").then(handle_scene_loaded);
|
|
2281
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/factory_3d_model/scene.gltf").then(handle_scene_loaded);
|
|
2282
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/guitar_house/scene.gltf").then(handle_scene_loaded);
|
|
2283
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/hintze-hall_-_vr_tour/scene.gltf").then(handle_scene_loaded);
|
|
2284
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/house_on_the_hill/scene.gltf").then(handle_scene_loaded);
|
|
2285
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/huge_warehouse/scene.gltf").then(handle_scene_loaded);
|
|
2286
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/japan_street/scene.gltf").then(handle_scene_loaded);
|
|
2287
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/japanese_street_at_night/scene.gltf").then(handle_scene_loaded);
|
|
2288
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/japanese_town/scene.gltf").then(handle_scene_loaded);
|
|
2289
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/late_night_office/scene.gltf").then(handle_scene_loaded);
|
|
2290
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/lets_go_to_the_beach_-_beach_themed_diorama/scene.gltf").then(handle_scene_loaded);
|
|
2291
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/littlest_tokyo_sunset_-_3d_editor_challenge/scene.gltf").then(handle_scene_loaded);
|
|
2292
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/low_poly_city/scene.gltf").then(handle_scene_loaded);
|
|
2293
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/medieval_house_h2_annielihta/scene.gltf").then(handle_scene_loaded);
|
|
2294
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/medieval_house_stylized/scene.gltf").then(handle_scene_loaded);
|
|
2295
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/modern_city_block/scene.gltf").then(handle_scene_loaded);
|
|
2296
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/modular_house_cube_3_by_swanbuild_australia/scene.gltf").then(handle_scene_loaded);
|
|
2297
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/neighborhood_house_types/scene.gltf").then(handle_scene_loaded);
|
|
2298
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/nord_house/scene.gltf").then(handle_scene_loaded);
|
|
2299
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/old_building/scene.gltf").then(handle_scene_loaded);
|
|
2300
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/ordinary_behavior_2_-_television/scene.gltf").then(handle_scene_loaded);
|
|
2301
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/pripyat_palace_of_culture_energetik/scene.gltf").then(handle_scene_loaded);
|
|
2302
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/pub_interior/scene.gltf").then(handle_scene_loaded);
|
|
2303
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/pub_scene/scene.gltf").then(handle_scene_loaded);
|
|
2304
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/railway_station/scene.gltf").then(handle_scene_loaded);
|
|
2305
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/room/scene.gltf").then(handle_scene_loaded);
|
|
2306
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/sci-fi-corridor._texturing_challenge/scene.gltf").then(handle_scene_loaded);
|
|
2307
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/stylized_house/scene.gltf").then(handle_scene_loaded);
|
|
2308
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/subway_rtx/scene.gltf").then(handle_scene_loaded);
|
|
2309
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/terrain_dristibute_gn/scene.gltf").then(handle_scene_loaded);
|
|
2310
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/tetris_factory/scene.gltf").then(handle_scene_loaded);
|
|
2311
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/the_boys-vought_tower/scene.gltf").then(handle_scene_loaded);
|
|
2312
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/the_time_machine_house_final/scene.gltf").then(handle_scene_loaded);
|
|
2313
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/timber_truss_roof_structure_and_frame/scene.gltf").then(handle_scene_loaded);
|
|
2314
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/toninos_greek_temple/scene.gltf").then(handle_scene_loaded);
|
|
2315
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/ufa_state_tatar_theater_nur_building/scene.gltf").then(handle_scene_loaded);
|
|
2316
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/victorian_house/scene.gltf").then(handle_scene_loaded);
|
|
2317
|
-
|
|
2318
|
-
// ----
|
|
2319
|
-
|
|
2320
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/blue_archive__-_sunaookamishiroko/scene.gltf").then(handle_scene_loaded);
|
|
2321
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/furry_2b_nier_automata_free/scene.gltf").then(handle_scene_loaded);
|
|
2322
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/furry_jane_doe_zenless_zone_zero/scene.gltf").then(handle_scene_loaded);
|
|
2323
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/herkules/scene.gltf").then(handle_scene_loaded);
|
|
2324
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/penny/scene.gltf").then(handle_scene_loaded);
|
|
2325
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/prix/scene.gltf").then(handle_scene_loaded);
|
|
2326
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/skull_priestess/scene.gltf").then(handle_scene_loaded);
|
|
2327
|
-
|
|
2328
|
-
// ----
|
|
2329
|
-
|
|
2330
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/bt_mp9__gamerady_submachine_gun/scene.gltf").then(handle_scene_loaded);
|
|
2331
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/crashed_abandoned_car_-_game_ready/scene.gltf").then(handle_scene_loaded);
|
|
2332
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/girly_blossom_dagger/scene.gltf").then(handle_scene_loaded);
|
|
2333
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/knife/scene.gltf").then(handle_scene_loaded);
|
|
2334
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/lumen_vgs_pack/scene.gltf").then(handle_scene_loaded);
|
|
2335
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/nissan_skyline_gtr_r35/scene.gltf").then(handle_scene_loaded);
|
|
2336
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/revolver_magnum_357/scene.gltf").then(handle_scene_loaded);
|
|
2337
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/stylized_big_sword/scene.gltf").then(handle_scene_loaded);
|
|
2338
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_01_31/vroom_vroom/scene.gltf").then(handle_scene_loaded);
|
|
2339
|
-
|
|
2340
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_11_11/vilhelm_13_low_res_textures/scene.gltf").then(handle_scene_loaded);
|
|
2341
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_11_11/tanabata_evening_-_kyoto_inspired_city_scene/scene.gltf").then(handle_scene_loaded);
|
|
2342
|
-
// sample_load_gltf(scene, controller, "public/batch_2025_11_11/sci-fi_hardcover_book_collection/scene.gltf")
|
|
2343
|
-
// .then(handle_scene_loaded)
|
|
2344
|
-
// .then(()=>{
|
|
2345
|
-
// controller.from_transform(Transform.fromJSON({
|
|
2346
|
-
// position : {x: -0.24771434758651253, y: 0.6393128179766008, z: -0.14694019411292505},
|
|
2347
|
-
// rotation : {x: 0.6038964271574744, y: 0.3245558131927012, z: -0.29437013920059546, w: 0.6658219360581955},
|
|
2348
|
-
// }))
|
|
2349
|
-
// });
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
// stress_test_01(scene, controller).then(handle_scene_loaded);
|
|
2353
|
-
// add_random_meshes(batch, geometry_dragon, 1); // stress-test
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
// make_animated_instances({
|
|
2357
|
-
// batch: scene.instances,
|
|
2358
|
-
// bounds: new AABB3(-10, 0, -6, 10, 10, 6) ,
|
|
2359
|
-
// scale: new NumericInterval(0.1,0.2)
|
|
2360
|
-
// });
|
|
2361
|
-
|
|
2362
|
-
// controller.distanceLimits.max = 10000;
|
|
2363
|
-
console.log(scene, camera);
|
|
2364
|
-
|
|
2365
|
-
function visible() {
|
|
2366
|
-
const visible = scene.instances.instances.filter(mesh => {
|
|
2367
|
-
|
|
2368
|
-
return aabb3_intersects_frustum_degree(
|
|
2369
|
-
...mesh.bounding_box,
|
|
2370
|
-
camera.frustum
|
|
2371
|
-
) > 0;
|
|
2372
|
-
|
|
2373
|
-
});
|
|
2374
|
-
|
|
2375
|
-
console.warn(visible);
|
|
2376
|
-
}
|
|
2377
|
-
|
|
2378
|
-
window.visible = visible;
|
|
2379
|
-
|
|
2380
|
-
// ReSTIR DI — stochastic screen-bounded direct shadowing for local (point+spot)
|
|
2381
|
-
// lights. Off = brute-force shadow-mapped froxel-cluster loop; on swaps in a
|
|
2382
|
-
// separate compiled deferred shader variant that consumes the resampled,
|
|
2383
|
-
// ray-traced result. Noisier per-frame for now (temporal/spatial reuse pending).
|
|
2384
|
-
const lighting_folder = gui.addFolder("direct lighting");
|
|
2385
|
-
lighting_folder
|
|
2386
|
-
.add(renderer, "feature_restir_di_enabled")
|
|
2387
|
-
.name("ReSTIR DI (point/spot)")
|
|
2388
|
-
.onChange(() => renderer.indicate_view_change());
|
|
2389
|
-
// MegaLights-style hybrid shadows: short screen-space contact trace then RT
|
|
2390
|
-
// fallback. Off = pure ray-traced visibility (for A/B comparison).
|
|
2391
|
-
lighting_folder
|
|
2392
|
-
.add(renderer.restir_di, "use_screen_space_shadow")
|
|
2393
|
-
.name("ReSTIR hybrid SS shadows")
|
|
2394
|
-
.onChange(() => renderer.indicate_view_change());
|
|
2395
|
-
// Tailored edge-aware à-trous spatial denoise of the resampled radiance.
|
|
2396
|
-
// Off = raw (noisy) resolve, for A/B. Iterations grow the filter footprint.
|
|
2397
|
-
lighting_folder
|
|
2398
|
-
.add(renderer.restir_di, "denoise_enabled")
|
|
2399
|
-
.name("ReSTIR denoise")
|
|
2400
|
-
.onChange(() => renderer.indicate_view_change());
|
|
2401
|
-
lighting_folder
|
|
2402
|
-
.add(renderer.restir_di, "denoise_iterations", 0, 5, 1)
|
|
2403
|
-
.name("ReSTIR denoise iters")
|
|
2404
|
-
.onChange(() => renderer.indicate_view_change());
|
|
2405
|
-
|
|
2406
|
-
const post_process_folder = gui.addFolder("post-processing");
|
|
2407
|
-
post_process_folder.add(renderer, "feature_ssr_enabled").name("SSR");
|
|
2408
|
-
post_process_folder.add(renderer, "feature_sharpening_enabled").name("Sharpen");
|
|
2409
|
-
post_process_folder.add(renderer, "feature_automatic_exposure_enabled").name("Auto Exposure");
|
|
2410
|
-
post_process_folder.add(renderer, "feature_ssao_enabled").name("SSAO");
|
|
2411
|
-
post_process_folder.add(renderer, "feature_bloom_enabled").name("Bloom");
|
|
2412
|
-
// the feature_taa_enabled setter resets temporal history itself
|
|
2413
|
-
post_process_folder.add(renderer, "feature_taa_enabled").name("TAA");
|
|
2414
|
-
// 3D volumetric temporal reprojection (GPUViewVolumetrics.taa_enabled, read via this global)
|
|
2415
|
-
const volumetrics_taa_params = { enabled: true };
|
|
2416
|
-
globalThis.__VOL_TAA_ENABLED = true;
|
|
2417
|
-
post_process_folder.add(volumetrics_taa_params, "enabled").name("Volumetric TAA").onChange((v) => {
|
|
2418
|
-
globalThis.__VOL_TAA_ENABLED = v;
|
|
2419
|
-
renderer.indicate_view_change();
|
|
2420
|
-
});
|
|
2421
|
-
// RDR2-style far field: froxel grid covers [near, froxel_far]; beyond it the aerial pass
|
|
2422
|
-
// ray-marches the scene volumes directly. High value (>= camera.far) -> grid covers all (no-op).
|
|
2423
|
-
const volumetrics_far_params = { froxel_far: 5000 };
|
|
2424
|
-
globalThis.__VOL_FROXEL_FAR = 5000;
|
|
2425
|
-
post_process_folder.add(volumetrics_far_params, "froxel_far", 20, 5000, 10).name("Froxel far (RDR2)").onChange((v) => {
|
|
2426
|
-
globalThis.__VOL_FROXEL_FAR = v;
|
|
2427
|
-
renderer.indicate_view_change();
|
|
2428
|
-
});
|
|
2429
|
-
// Fog multiscatter tuning: fewer octaves / higher decay -> less shadow fill -> stronger silver
|
|
2430
|
-
// lining (lit-rim-vs-core contrast). Defaults 6 / 0.5 match the engine constants.
|
|
2431
|
-
const volumetrics_ms_params = { octaves: 6, extinction_decay: 0.5 };
|
|
2432
|
-
globalThis.__VOL_MS_OCTAVES = 6;
|
|
2433
|
-
globalThis.__VOL_MS_EXT_DECAY = 0.5;
|
|
2434
|
-
post_process_folder.add(volumetrics_ms_params, "octaves", 1, 6, 1).name("Fog multiscatter octaves").onChange((v) => {
|
|
2435
|
-
globalThis.__VOL_MS_OCTAVES = v;
|
|
2436
|
-
renderer.indicate_view_change();
|
|
2437
|
-
});
|
|
2438
|
-
post_process_folder.add(volumetrics_ms_params, "extinction_decay", 0.1, 0.9, 0.05).name("Fog multiscatter decay").onChange((v) => {
|
|
2439
|
-
globalThis.__VOL_MS_EXT_DECAY = v;
|
|
2440
|
-
renderer.indicate_view_change();
|
|
2441
|
-
});
|
|
2442
|
-
post_process_folder.add(renderer, "feature_motion_blur_enabled").name("Motion Blur");
|
|
2443
|
-
post_process_folder.add(renderer.motion_blur, "strength", 0.0, 6.0, 0.05).name("Motion Blur strength");
|
|
2444
|
-
post_process_folder.add(renderer, "feature_velocity_debug_view").name("Velocity (debug view)");
|
|
2445
|
-
|
|
2446
|
-
// In-app verification harnesses for the 2026-07 deep-review fixes (results go to the console).
|
|
2447
|
-
const review_folder = gui.addFolder("review checks");
|
|
2448
|
-
review_folder.add({
|
|
2449
|
-
radix_sort: () => verify_radix_sort_one_sweep(renderer.graphics),
|
|
2450
|
-
}, "radix_sort").name("C002: radix sort (console)");
|
|
2451
|
-
review_folder.add({
|
|
2452
|
-
transparent_slabs: () => {
|
|
2453
|
-
// three overlapping transparent slabs, staggered in depth, next to the fog volume —
|
|
2454
|
-
// for judging MBOIT depth ordering (C000) from both sides
|
|
2455
|
-
const colors = [
|
|
2456
|
-
new Color(1, 0.1, 0.1, 0.4),
|
|
2457
|
-
new Color(0.1, 1, 0.1, 0.4),
|
|
2458
|
-
new Color(0.2, 0.4, 1, 0.4),
|
|
2459
|
-
];
|
|
2460
|
-
for (let i = 0; i < colors.length; i++) {
|
|
2461
|
-
const material = new StandardShadeMaterial();
|
|
2462
|
-
material.transparency_mode = TransparencyMode.Transparent;
|
|
2463
|
-
material.diffuse_color.copy(colors[i]);
|
|
2464
|
-
material.roughness_factor = 0.9;
|
|
2465
|
-
|
|
2466
|
-
const mesh = Mesh.from(
|
|
2467
|
-
make_box_geometry(6, 4, 0.1),
|
|
2468
|
-
material,
|
|
2469
|
-
Transform.fromJSON({
|
|
2470
|
-
position: { x: -55 + (i - 1) * 1.2, y: 4, z: -5 + (i - 1) * 2.5 }
|
|
2471
|
-
}).matrix
|
|
2472
|
-
);
|
|
2473
|
-
scene.add(mesh);
|
|
2474
|
-
}
|
|
2475
|
-
console.log("[C000] spawned 3 transparent slabs near (-55, 4, -5) — red (near z), green, blue (far z)");
|
|
2476
|
-
},
|
|
2477
|
-
}, "transparent_slabs").name("C000: spawn transparent slabs");
|
|
2478
|
-
review_folder.close();
|
|
2479
|
-
|
|
2480
|
-
// Depth of field. Out of the box: tick Enabled, leave the rest on
|
|
2481
|
-
// defaults (autofocus + f/2.0) → tasteful shallow focus. There are two
|
|
2482
|
-
// implementations behind the `Algorithm` switch: the ray-march DepthOfField
|
|
2483
|
-
// (`renderer.dof`) and the gather-based Unreal-style DepthOfFieldU
|
|
2484
|
-
// (`renderer.dof_unreal`); `renderer.dof_algorithm` picks which runs. They
|
|
2485
|
-
// share almost the entire parameter surface, so the GUI drives a small
|
|
2486
|
-
// proxy that fans every shared edit out to BOTH subsystems — flipping
|
|
2487
|
-
// Algorithm is then a true A/B with identical settings. The feature toggle
|
|
2488
|
-
// stays on the renderer; the focus mode is a tagged union behind the
|
|
2489
|
-
// `focus*` helpers.
|
|
2490
|
-
const dof_subsystems = [renderer.dof, renderer.dof_unreal];
|
|
2491
|
-
|
|
2492
|
-
// Shared scalar params: read from the ray-march one (both stay in lockstep),
|
|
2493
|
-
// write to all subsystems.
|
|
2494
|
-
const dof_shared = {};
|
|
2495
|
-
for (const prop of [
|
|
2496
|
-
"f_number", "quality", "focus_region", "focus_smoothing",
|
|
2497
|
-
"sensor_height_mm", "physical_gain", "blade_count", "blade_rotation", "highlight_boost",
|
|
2498
|
-
]) {
|
|
2499
|
-
Object.defineProperty(dof_shared, prop, {
|
|
2500
|
-
get() {
|
|
2501
|
-
return renderer.dof[prop];
|
|
2502
|
-
},
|
|
2503
|
-
set(v) {
|
|
2504
|
-
for (const s of dof_subsystems) {
|
|
2505
|
-
s[prop] = v;
|
|
2506
|
-
}
|
|
2507
|
-
},
|
|
2508
|
-
});
|
|
2509
|
-
}
|
|
2510
|
-
|
|
2511
|
-
const dof_folder = post_process_folder.addFolder("Depth of Field");
|
|
2512
|
-
dof_folder.add(renderer, "feature_dof_enabled").name("Enabled");
|
|
2513
|
-
dof_folder.add(renderer, "dof_algorithm", {
|
|
2514
|
-
"Ray-march (Tiny Glade)": "raymarch",
|
|
2515
|
-
"Gather (Unreal-style)": "unreal"
|
|
2516
|
-
}).name("Algorithm");
|
|
2517
|
-
dof_folder.add(dof_shared, "f_number", 1.2, 16.0, 0.1).name("Aperture (f-number)");
|
|
2518
|
-
dof_folder.add(dof_shared, "quality", ["low", "medium", "high", "ultra"]).name("Quality");
|
|
2519
|
-
dof_folder.add(renderer.dof, "march_mode", ["reference", "compute", "slice"]).name("March mode (ray-march only)");
|
|
2520
|
-
|
|
2521
|
-
const dof_gui = { preset: "(none)", focus_mode: "auto", manual_distance: 8.0 };
|
|
2522
|
-
dof_folder.add(dof_gui, "preset", ["(none)", ...DOF_PRESET_NAMES]).name("Preset").onChange((v) => {
|
|
2523
|
-
if (v !== "(none)") {
|
|
2524
|
-
for (const s of dof_subsystems) {
|
|
2525
|
-
s.applyPreset(v);
|
|
2526
|
-
}
|
|
2527
|
-
}
|
|
2528
|
-
});
|
|
2529
|
-
|
|
2530
|
-
const dof_focus_folder = dof_folder.addFolder("Focus");
|
|
2531
|
-
dof_focus_folder.add(dof_gui, "focus_mode", ["auto", "manual", "nearest", "centre point"]).name("Focus").onChange((v) => {
|
|
2532
|
-
for (const s of dof_subsystems) {
|
|
2533
|
-
if (v === "auto") {
|
|
2534
|
-
s.focusAuto();
|
|
2535
|
-
} else if (v === "manual") {
|
|
2536
|
-
s.focusAtDistance(dof_gui.manual_distance);
|
|
2537
|
-
} else if (v === "nearest") {
|
|
2538
|
-
s.focusOnNearest();
|
|
2539
|
-
} else if (v === "centre point") {
|
|
2540
|
-
s.focusOnScreenPoint(0.5, 0.5);
|
|
2541
|
-
}
|
|
2542
|
-
}
|
|
2543
|
-
});
|
|
2544
|
-
dof_focus_folder.add(dof_gui, "manual_distance", 0.1, 200, 0.1).name("Manual distance").onChange((v) => {
|
|
2545
|
-
if (dof_gui.focus_mode === "manual") {
|
|
2546
|
-
for (const s of dof_subsystems) {
|
|
2547
|
-
s.focusAtDistance(v);
|
|
2548
|
-
}
|
|
2549
|
-
}
|
|
2550
|
-
});
|
|
2551
|
-
dof_focus_folder.add(dof_shared, "focus_region", 0.0, 20.0, 0.1).name("Sharp band (region)");
|
|
2552
|
-
dof_focus_folder.add(dof_shared, "focus_smoothing", 0.0, 1.0, 0.01).name("Focus smoothing");
|
|
2553
|
-
|
|
2554
|
-
const dof_physical_folder = dof_folder.addFolder("Lens");
|
|
2555
|
-
dof_physical_folder.add(dof_shared, "sensor_height_mm", 8.0, 70.0, 0.5).name("Sensor height (mm)");
|
|
2556
|
-
dof_physical_folder.add(dof_shared, "physical_gain", 0.5, 8.0, 0.1).name("Exaggeration gain");
|
|
2557
|
-
dof_physical_folder.close();
|
|
2558
|
-
|
|
2559
|
-
const dof_advanced_folder = dof_folder.addFolder("Advanced");
|
|
2560
|
-
dof_advanced_folder.add(dof_shared, "blade_count", 0, 9, 1).name("Aperture blades");
|
|
2561
|
-
dof_advanced_folder.add(dof_shared, "blade_rotation", 0.0, Math.PI, 0.01).name("Blade rotation");
|
|
2562
|
-
dof_advanced_folder.add(dof_shared, "highlight_boost", 0.0, 4.0, 0.05).name("Highlight boost");
|
|
2563
|
-
dof_advanced_folder.add(renderer.dof_unreal, "near_blur_gain", 0.0, 3.0, 0.05).name("Near bleed (gather only)");
|
|
2564
|
-
dof_advanced_folder.close();
|
|
2565
|
-
|
|
2566
|
-
gui.add(renderer, "feature_shadows_enabled").name("Shadows");
|
|
2567
|
-
gui.add(renderer, "feature_tetrahedron_point_shadows").name("Tetra Point Shadows");
|
|
2568
|
-
gui.add(renderer, "indirect_lighting_mode", { IBL: 0, Brick4: 1, LPV: 2 }).name("Indirect Lighting");
|
|
2569
|
-
|
|
2570
|
-
gui.add({
|
|
2571
|
-
debug_frame() {
|
|
2572
|
-
renderer.add_debug_frame();
|
|
2573
|
-
}
|
|
2574
|
-
}, 'debug_frame').name("Debug Frame");
|
|
2575
|
-
|
|
2576
|
-
gui.add({
|
|
2577
|
-
add_frame() {
|
|
2578
|
-
frame_limit += 1
|
|
2579
|
-
}
|
|
2580
|
-
}, "add_frame");
|
|
2581
|
-
|
|
2582
|
-
gui.add({
|
|
2583
|
-
render_pause() {
|
|
2584
|
-
frame_limit = frame_limit === 0 ? Infinity : 0;
|
|
2585
|
-
}
|
|
2586
|
-
}, "render_pause");
|
|
2587
|
-
|
|
2588
|
-
gui.add({
|
|
2589
|
-
async bake_lightmap() {
|
|
2590
|
-
|
|
2591
|
-
await brick4_bake_for_scene({
|
|
2592
|
-
scene,
|
|
2593
|
-
renderer,
|
|
2594
|
-
});
|
|
2595
|
-
}
|
|
2596
|
-
}, 'bake_lightmap').name("Bake Lightmap");
|
|
2597
|
-
|
|
2598
|
-
gui.add({
|
|
2599
|
-
async generate_lpv() {
|
|
2600
|
-
scene.light_probe_volume.positions = lpv_generate_probe_locations2({ scene });
|
|
2601
|
-
scene.light_probe_volume.build_mesh();
|
|
2602
|
-
|
|
2603
|
-
// build_lpv_mesh(scene, new Vector3(16,16,16));
|
|
2604
|
-
}
|
|
2605
|
-
}, 'generate_lpv').name("Generate LPV");
|
|
2606
|
-
|
|
2607
|
-
gui.add({
|
|
2608
|
-
async serialize_scene() {
|
|
2609
|
-
scene_optimize(scene);
|
|
2610
|
-
|
|
2611
|
-
console.time('serialize');
|
|
2612
|
-
const buffer = await serialize_scene({
|
|
2613
|
-
scene,
|
|
2614
|
-
include_blas: true
|
|
2615
|
-
});
|
|
2616
|
-
console.timeEnd('serialize');
|
|
2617
|
-
|
|
2618
|
-
buffer.trim();
|
|
2619
|
-
|
|
2620
|
-
downloadAsFile(buffer.data, 'scene.shade', 'application/octet-stream');
|
|
2621
|
-
|
|
2622
|
-
console.log(`Scene size: ${buffer.position}`, buffer)
|
|
2623
|
-
}
|
|
2624
|
-
}, 'serialize_scene')
|
|
2625
|
-
|
|
2626
|
-
const FRAME_RATE_LIMIT = Infinity;
|
|
2627
|
-
|
|
2628
|
-
const drs = new DynamicResolutionScaling();
|
|
2629
|
-
drs.get_scale = () => renderer.internal_resolution_scale;
|
|
2630
|
-
drs.set_scale = (v) => {
|
|
2631
|
-
renderer.internal_resolution_scale = v;
|
|
2632
|
-
};
|
|
2633
|
-
// drs.target_frame_time_s = 1 / FRAME_RATE_LIMIT;
|
|
2634
|
-
|
|
2635
|
-
const resolution_folder = gui.addFolder("resolution");
|
|
2636
|
-
resolution_folder.add(drs, 'enabled').name("Dynamic Resolution");
|
|
2637
|
-
resolution_folder.add(renderer, 'internal_resolution_scale', 0.1, 1, 0.01).name("Scale").listen();
|
|
2638
|
-
resolution_folder.add({
|
|
2639
|
-
get percent() {
|
|
2640
|
-
return `${(renderer.internal_resolution_scale * 100).toFixed(0)}%`;
|
|
2641
|
-
}
|
|
2642
|
-
}, 'percent').name("Current %").listen().disable();
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
renderer.onFrameDebug.add((frame_index, debug_data) => {
|
|
2646
|
-
console.table(debug_data);
|
|
2647
|
-
});
|
|
2648
|
-
|
|
2649
|
-
create_frame_loop((time_delta_s, raw_refresh_time_s) => {
|
|
2650
|
-
// apply size
|
|
2651
|
-
|
|
2652
|
-
const w = window.innerWidth;
|
|
2653
|
-
const h = window.innerHeight;
|
|
2654
|
-
|
|
2655
|
-
const RESOLUTION_SCALE = 1;
|
|
2656
|
-
|
|
2657
|
-
renderer.resize(w, h);
|
|
2658
|
-
renderer.pixel_ratio = window.devicePixelRatio * RESOLUTION_SCALE;
|
|
2659
|
-
camera.aspect = w / h;
|
|
2660
|
-
|
|
2661
|
-
//
|
|
2662
|
-
controller.update(time_delta_s);
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
if (frame_limit <= 0) {
|
|
2666
|
-
return;
|
|
2667
|
-
}
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
frame_limit--;
|
|
2671
|
-
|
|
2672
|
-
// DRS must go first, because it affects rendering quality and records decisions
|
|
2673
|
-
drs.notify_frame(raw_refresh_time_s);
|
|
2674
|
-
|
|
2675
|
-
stats.begin();
|
|
2676
|
-
renderer.render(camera, scene, time_delta_s);
|
|
2677
|
-
stats.end();
|
|
2678
|
-
|
|
2679
|
-
frame_perf.record(raw_refresh_time_s);
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
}, FRAME_RATE_LIMIT);
|
|
2683
|
-
// }, 7);
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
window.addEventListener("keydown", (ev) => {
|
|
2687
|
-
|
|
2688
|
-
if (ev.key === "p") {
|
|
2689
|
-
ev.preventDefault();
|
|
2690
|
-
enable_picker(document.body, camera, scene);
|
|
2691
|
-
}
|
|
2692
|
-
|
|
2693
|
-
});
|
|
2694
|
-
};
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
document.body.style.margin = "0";
|
|
2698
|
-
document.body.style.overflow = "hidden";
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
const canvas = document.createElement('canvas');
|
|
2702
|
-
canvas.width = window.innerWidth;
|
|
2703
|
-
canvas.height = window.innerHeight;
|
|
2704
|
-
document.body.appendChild(canvas);
|
|
2705
|
-
|
|
2706
|
-
const stats = new Stats();
|
|
2707
|
-
document.body.appendChild(stats.domElement);
|
|
2708
|
-
|
|
2709
|
-
const frame_perf = new FramePerformanceMonitor();
|
|
2710
|
-
frame_perf.dom.style.position = 'fixed';
|
|
2711
|
-
frame_perf.dom.style.left = '8px';
|
|
2712
|
-
frame_perf.dom.style.bottom = '8px';
|
|
2713
|
-
frame_perf.dom.style.zIndex = '1000';
|
|
2714
|
-
document.body.appendChild(frame_perf.dom);
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
// DEBUG
|
|
2718
|
-
globalThis.frame_perf = frame_perf;
|
|
2719
|
-
|
|
2720
|
-
const gui = new GUI();
|
|
2721
|
-
|
|
2722
|
-
// gui.hide(); // Hide the menu for production
|
|
2723
|
-
|
|
2724
|
-
init({
|
|
2725
|
-
canvas,
|
|
2726
|
-
gui
|
|
2727
|
-
});
|