@woosh/meep-engine 2.109.5 → 2.109.7
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/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +211 -179
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +211 -179
- package/editor/tools/v2/TransformControls.js +39 -33
- package/package.json +1 -1
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +8 -0
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +11 -9
- package/src/core/collection/queue/Deque.d.ts.map +1 -1
- package/src/core/collection/queue/Deque.js +8 -5
- package/src/core/geom/3d/Ray3.js +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +1 -1
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.d.ts +4 -4
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.d.ts.map +1 -1
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.js +15 -11
- package/src/core/geom/3d/normal/octahedron/encode_unit_to_octahedron.d.ts.map +1 -1
- package/src/core/geom/3d/normal/octahedron/encode_unit_to_octahedron.js +13 -7
- package/src/core/geom/3d/normal/octahedron/encoding.spec.js +26 -1
- package/src/core/geom/3d/normal/octahedron/prototype.d.ts +2 -0
- package/src/core/geom/3d/normal/octahedron/prototype.d.ts.map +1 -0
- package/src/core/geom/3d/normal/octahedron/prototype.js +226 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.js +4 -4
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts +7 -1
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.js +6 -0
- package/src/core/geom/vec3/v3_distance.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_distance.js +5 -5
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.d.ts +10 -0
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.d.ts.map +1 -0
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.js +34 -0
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts +5 -1
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts.map +1 -1
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.js +11 -6
- package/src/engine/asset/loaders/AssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/AssetLoader.js +1 -1
- package/src/engine/asset/loaders/material/computeTextureEquality.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/computeTextureEquality.js +6 -1
- package/src/engine/asset/loaders/material/computeTextureHash.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/computeTextureHash.js +8 -3
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.d.ts.map +1 -1
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +9 -15
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts +7 -0
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts.map +1 -0
- package/src/engine/graphics/geometry/instancing/geometry_copy.js +15 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +28 -20
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.d.ts +1 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.js +4 -0
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js +6 -6
- package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +16 -7
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.d.ts +3 -2
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.js +25 -14
- package/src/engine/graphics/render/visibility/hiz/buildCanvasViewFromTexture.js +1 -0
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +48 -33
- package/src/engine/graphics/sh3/gi/material/common.glsl +434 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.d.ts +8 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.js +35 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.d.ts +8 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.js +28 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.js +53 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.js +29 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.js +26 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.js +62 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/preable.frag.glsl +43 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/preable.vert.glsl +9 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts +2 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +35 -3
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js +67 -8
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +10 -0
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +27 -41
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.d.ts +17 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.js +100 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.d.ts +12 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js +58 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.d.ts +11 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.js +45 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.frag.glsl +126 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.vert.glsl +10 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts +13 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js +146 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.frag.glsl +159 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.vert.glsl +13 -0
- package/src/engine/graphics/sh3/lpv/depth/sh3_bake_depth.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/{sh3_bake_depth.js → depth/sh3_bake_depth.js} +7 -7
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +3 -6
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +34 -58
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.js +8 -0
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts +2 -2
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.js +8 -5
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +7 -0
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +50 -0
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +40 -3
- package/src/engine/graphics/sh3/path_tracer/sorting/build_bvh_nodes_distances_along_ray.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_along_ray.js → sorting/build_bvh_nodes_distances_along_ray.js} +2 -2
- package/src/engine/graphics/sh3/path_tracer/sorting/build_bvh_nodes_distances_sqr_to_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_sqr_to_point.js → sorting/build_bvh_nodes_distances_sqr_to_point.js} +2 -2
- package/src/engine/graphics/sh3/path_tracer/sorting/sort_bvh_nodes_by_distance_to_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{sort_bvh_nodes_by_distance_to_point.js → sorting/sort_bvh_nodes_by_distance_to_point.js} +3 -3
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +40 -7
- package/src/engine/graphics/sh3/shader/SH3VisualisationMaterial.d.ts.map +1 -0
- package/src/engine/graphics/sh3/shader/SH3VisualisationMaterial.js +29 -0
- package/src/engine/graphics/sh3/shader/visualize.frag.glsl +41 -0
- package/src/engine/graphics/sh3/shader/visualize.vert.glsl +9 -0
- package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.js +1 -1
- package/src/engine/graphics/texture/debug_preview_texture.d.ts +8 -0
- package/src/engine/graphics/texture/debug_preview_texture.d.ts.map +1 -0
- package/src/engine/graphics/texture/debug_preview_texture.js +38 -0
- package/src/engine/graphics/texture/virtual/prototype.js +4 -3
- package/src/view/View.d.ts.map +1 -1
- package/src/view/View.js +2 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.js +0 -32
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js +0 -44
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js +0 -86
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.d.ts.map +0 -1
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +0 -83
- package/src/engine/graphics/sh3/gi/material/build_fragment_shader.d.ts.map +0 -1
- package/src/engine/graphics/sh3/gi/material/build_fragment_shader.js +0 -71
- package/src/engine/graphics/sh3/gi/material/build_vertex_shader.d.ts.map +0 -1
- package/src/engine/graphics/sh3/gi/material/build_vertex_shader.js +0 -256
- package/src/engine/graphics/sh3/lpv/sh3_bake_depth.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_along_ray.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_sqr_to_point.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.d.ts +0 -2
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.js +0 -27
- package/src/engine/graphics/sh3/path_tracer/sort_bvh_nodes_by_distance_to_point.d.ts.map +0 -1
- /package/src/engine/graphics/sh3/gi/material/{build_fragment_shader.d.ts → space_fragment/build_fragment_shader.d.ts} +0 -0
- /package/src/engine/graphics/sh3/gi/material/{build_vertex_shader.d.ts → space_fragment/build_vertex_shader.d.ts} +0 -0
- /package/src/engine/graphics/sh3/lpv/{sh3_bake_depth.d.ts → depth/sh3_bake_depth.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_along_ray.d.ts → sorting/build_bvh_nodes_distances_along_ray.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_sqr_to_point.d.ts → sorting/build_bvh_nodes_distances_sqr_to_point.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{sort_bvh_nodes_by_distance_to_point.d.ts → sorting/sort_bvh_nodes_by_distance_to_point.d.ts} +0 -0
- /package/src/engine/graphics/sh3/{SH3VisualisationMaterial.d.ts → shader/SH3VisualisationMaterial.d.ts} +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FrameRunner } from "../FrameRunner.js";
|
|
2
|
+
import { WebGLRendererPool } from "../render/RendererPool.js";
|
|
3
|
+
import { buildCanvasViewFromTexture } from "../render/visibility/hiz/buildCanvasViewFromTexture.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Useful tool for previewing textures
|
|
7
|
+
* @param {THREE.Texture} texture
|
|
8
|
+
* @param {number} resolution
|
|
9
|
+
* @param {boolean} flipY
|
|
10
|
+
*/
|
|
11
|
+
export function debug_preview_texture({
|
|
12
|
+
texture,
|
|
13
|
+
resolution = 512,
|
|
14
|
+
flipY = true
|
|
15
|
+
}) {
|
|
16
|
+
|
|
17
|
+
const preview = buildCanvasViewFromTexture({
|
|
18
|
+
width: resolution,
|
|
19
|
+
height: resolution,
|
|
20
|
+
texture: texture,
|
|
21
|
+
renderer: WebGLRendererPool.global.get(),
|
|
22
|
+
flipY: flipY
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const runner = new FrameRunner(() => {
|
|
26
|
+
|
|
27
|
+
preview.render();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
runner.startup();
|
|
31
|
+
|
|
32
|
+
document.body.appendChild(
|
|
33
|
+
preview.view.el
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
preview.view.link();
|
|
37
|
+
|
|
38
|
+
}
|
|
@@ -84,7 +84,7 @@ function makeMesh(mat) {
|
|
|
84
84
|
|
|
85
85
|
geo.applyMatrix4(m4);
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
mesh.rotation.y = Math.PI*0.5;
|
|
88
88
|
|
|
89
89
|
scene.add(mesh);
|
|
90
90
|
|
|
@@ -259,8 +259,10 @@ async function init() {
|
|
|
259
259
|
|
|
260
260
|
scene = new Scene();
|
|
261
261
|
|
|
262
|
-
const gltf = await loadGLTF({ path: "data/models/Scans/green_car_wreck/converted/model.gltf" })
|
|
262
|
+
// const gltf = await loadGLTF({ path: "data/models/Scans/green_car_wreck/converted/model.gltf" })
|
|
263
|
+
// scene.add(gltf);
|
|
263
264
|
|
|
265
|
+
flatSample({am});
|
|
264
266
|
|
|
265
267
|
virtual_texture_managers.forEach(vt => {
|
|
266
268
|
vt.initialize({
|
|
@@ -273,7 +275,6 @@ async function init() {
|
|
|
273
275
|
|
|
274
276
|
const manager = virtual_texture_managers[0];
|
|
275
277
|
|
|
276
|
-
scene.add(gltf);
|
|
277
278
|
|
|
278
279
|
//
|
|
279
280
|
// usageDebugView.mip_levels = virtualTextureManager.max_mip_level;
|
package/src/view/View.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/view/View.js"],"names":[],"mappings":"wBAsBU,MAAM;;;;;;;AAchB;;;GAGG;AACH;IAEI;;;;OAIG;IACH,iBAAc;IAEd;;;OAGG;IACH,OAFU,SAAS,GAAC,MAAM,CAEJ;IAEtB;;;OAGG;IACH,mBAFU,OAAO,CAEY;IAE7B;;;OAGG;IACH,mBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,gBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,0BAFU,OAAO,CAEuB;IAExC;;;MAGE;IAEF;;;OAGG;IACH,UAFU,IAAI,EAAE,CAEF;IAEd;;;OAGG;IACH,QAFU,IAAI,GAAC,IAAI,CAEL;IAUV;;;OAGG;IACH,IAFU,OAAO,qBAAiB,IAAI,CAExB;IAUlB;;OAEG;IACH,wBAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,0BASC;IAED;;;OAGG;IACH,uBAEC;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,SAAS,GACd,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,SAAS,GACd,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,SAAS,SAChB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,SAAS,GACd,OAAO,CAInB;IAED;;;;;OAKG;IACH,6BAIC;IAED;;;;;OAKG;IACH,wBAKC;IAED;;;OAGG;IACH,0BAQC;IA8BD;;OAEG;IACH,aA+BC;IAED;;OAEG;IACH,eA6BC;IAED;;;OAGG;IACH,sBAFW,IAAI,EAAE,QAMhB;IAED;;;;OAIG;IACH,gBAHW,IAAI,GACF,IAAI,
|
|
1
|
+
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/view/View.js"],"names":[],"mappings":"wBAsBU,MAAM;;;;;;;AAchB;;;GAGG;AACH;IAEI;;;;OAIG;IACH,iBAAc;IAEd;;;OAGG;IACH,OAFU,SAAS,GAAC,MAAM,CAEJ;IAEtB;;;OAGG;IACH,mBAFU,OAAO,CAEY;IAE7B;;;OAGG;IACH,mBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,gBAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,0BAFU,OAAO,CAEuB;IAExC;;;MAGE;IAEF;;;OAGG;IACH,UAFU,IAAI,EAAE,CAEF;IAEd;;;OAGG;IACH,QAFU,IAAI,GAAC,IAAI,CAEL;IAUV;;;OAGG;IACH,IAFU,OAAO,qBAAiB,IAAI,CAExB;IAUlB;;OAEG;IACH,wBAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,0BASC;IAED;;;OAGG;IACH,uBAEC;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,SAAS,GACd,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,SAAS,GACd,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,SAAS,SAChB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,SAAS,GACd,OAAO,CAInB;IAED;;;;;OAKG;IACH,6BAIC;IAED;;;;;OAKG;IACH,wBAKC;IAED;;;OAGG;IACH,0BAQC;IA8BD;;OAEG;IACH,aA+BC;IAED;;OAEG;IACH,eA6BC;IAED;;;OAGG;IACH,sBAFW,IAAI,EAAE,QAMhB;IAED;;;;OAIG;IACH,gBAHW,IAAI,GACF,IAAI,CAqBhB;IAED;;;;;;;;OAQG;IACH,uBAPW,OAAO,WACP,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,UACN,OAAO,QAYjB;IAED;;;;;;;OAOG;IACH,kBANW,IAAI,WACJ,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,QAahB;IAED;;;;OAIG;IACH,mBAHW,IAAI,GACF,OAAO,CAmBnB;IAED;;;;OAIG;IACH,gBAHW,IAAI,GACF,OAAO,CAInB;IAED,0BAUC;IAED;;;;;OAKG;IACH,kBAJW,KAAK,WACL,MAAM,WACN,MAAM,QAkBhB;IAED;;;;OAIG;IACH,4BAHW,KAAK,GACH,KAAK,CAUjB;IAED,4BAaC;IAED;;;;;OAKG;IACH,6BAJW,OAAO,UACP,OAAO,GACL,OAAO,CAanB;IAED;;;;;OAKG;IACH,6BAJW,OAAO,UACP,OAAO,GACL,OAAO,CAanB;IAED;;;OAGG;IACH,2BAFW,OAAO,QAgBjB;IAED,gBAeC;IAED;;;;;;;OAOG;IACH,mBALW,MAAM,qCAGJ,IAAI,CAWhB;IAED;;;;;;OAMG;IACH,qBALW,MAAM,qCAGJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,eAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,kBAFW,MAAM,EAAE,QAalB;IAED;;;;;;OAMG;IACH,kBAFW,MAAM,QAIhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACJ,MAAM,EAAE,CA0BpB;IAED;;;;;;;;OAQG;IACH,eAJW,MAAM,QACN,OAAO,GACL,IAAI,CAMhB;IAED;;;OAGG;IACH,qBAMC;IAED;;;OAGG;IACH,sBAMC;IAED;;;;OAIG;IACH,8BAHW,OAAO,QA6BjB;IAGL;;;OAGG;IACH,iBAFU,OAAO,CAEI;;CANpB;oBApwBmB,yBAAyB;oBADzB,yBAAyB;mBAN1B,iCAAiC;kBAGlC,+BAA+B"}
|
package/src/view/View.js
CHANGED
|
@@ -358,6 +358,8 @@ class View {
|
|
|
358
358
|
assert.notNull(child, 'child');
|
|
359
359
|
assert.isInstanceOf(child, View, 'child');
|
|
360
360
|
assert.equal(child.isLinked, false, 'child is already linked somewhere');
|
|
361
|
+
assert.notEqual(child, this, 'cannot add self as a child');
|
|
362
|
+
assert.notEqual(this.parent, child, 'cannot add existing parent as a child')
|
|
361
363
|
|
|
362
364
|
child.parent = this;
|
|
363
365
|
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {number[]|Float32Array} result sh3
|
|
4
|
-
* @param {number[]} sh input
|
|
5
|
-
* @param {number[]} rotation 3x3 rotation matrix
|
|
6
|
-
*/
|
|
7
|
-
export function sh3_rotate_filament(result: number[] | Float32Array, sh: number[], rotation: number[]): void;
|
|
8
|
-
//# sourceMappingURL=sh3_rotate_filament.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sh3_rotate_filament.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,4CAJW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,EAAE,YACR,MAAM,EAAE,QAuBlB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { sh_rotate_band1 } from "./sh_rotate_band1.js";
|
|
2
|
-
import { sh_rotate_band2 } from "./sh_rotate_band2.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* @param {number[]|Float32Array} result sh3
|
|
7
|
-
* @param {number[]} sh input
|
|
8
|
-
* @param {number[]} rotation 3x3 rotation matrix
|
|
9
|
-
*/
|
|
10
|
-
export function sh3_rotate_filament(result, sh, rotation) {
|
|
11
|
-
|
|
12
|
-
// Adapted from filament https://github.com/google/filament/blob/e2da13f81734ccd6d6f9935061b771801682619e/libs/ibl/src/CubemapSH.cpp
|
|
13
|
-
|
|
14
|
-
const b0 = sh[0];
|
|
15
|
-
const band1 = [sh[1], sh[2], sh[3]];
|
|
16
|
-
const b1 = sh_rotate_band1(band1, rotation);
|
|
17
|
-
const band2 = [sh[4], sh[5], sh[6], sh[7], sh[8]];
|
|
18
|
-
const b2 = sh_rotate_band2(band2, rotation);
|
|
19
|
-
|
|
20
|
-
result[0] = b0;
|
|
21
|
-
|
|
22
|
-
result[1] = b1[0];
|
|
23
|
-
result[2] = b1[1];
|
|
24
|
-
result[3] = b1[2];
|
|
25
|
-
|
|
26
|
-
result[4] = b2[0];
|
|
27
|
-
result[5] = b2[1];
|
|
28
|
-
result[6] = b2[2];
|
|
29
|
-
result[7] = b2[3];
|
|
30
|
-
result[8] = b2[4];
|
|
31
|
-
}
|
|
32
|
-
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* utilities to rotate very low order spherical harmonics (up to 3rd band)
|
|
3
|
-
* @param {number[]} band1 vec3
|
|
4
|
-
* @param {number[]} M 3x3 matrix
|
|
5
|
-
* @returns {number[]}
|
|
6
|
-
*/
|
|
7
|
-
export function sh_rotate_band1(band1: number[], M: number[]): number[];
|
|
8
|
-
//# sourceMappingURL=sh_rotate_band1.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sh_rotate_band1.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,uCAJW,MAAM,EAAE,KACR,MAAM,EAAE,GACN,MAAM,EAAE,CAoCpB"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { mat3 } from "gl-matrix";
|
|
2
|
-
import { m3_multiply_vec3 } from "../../../mat3/m3_multiply_vec3.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* utilities to rotate very low order spherical harmonics (up to 3rd band)
|
|
6
|
-
* @param {number[]} band1 vec3
|
|
7
|
-
* @param {number[]} M 3x3 matrix
|
|
8
|
-
* @returns {number[]}
|
|
9
|
-
*/
|
|
10
|
-
export function sh_rotate_band1(band1, M) {
|
|
11
|
-
|
|
12
|
-
// inverse() is not constexpr -- so we pre-calculate it in mathematica
|
|
13
|
-
//
|
|
14
|
-
// constexpr float3 N0{ 1, 0, 0 };
|
|
15
|
-
// constexpr float3 N1{ 0, 1, 0 };
|
|
16
|
-
// constexpr float3 N2{ 0, 0, 1 };
|
|
17
|
-
//
|
|
18
|
-
// constexpr mat3f A1 = { // this is the projection of N0, N1, N2 to SH space
|
|
19
|
-
// float3{ -N0.y, N0.z, -N0.x },
|
|
20
|
-
// float3{ -N1.y, N1.z, -N1.x },
|
|
21
|
-
// float3{ -N2.y, N2.z, -N2.x }
|
|
22
|
-
// };
|
|
23
|
-
//
|
|
24
|
-
// const mat3f invA1 = inverse(A1);
|
|
25
|
-
|
|
26
|
-
const invA1TimesK = [
|
|
27
|
-
0, -1, 0,
|
|
28
|
-
0, 0, 1,
|
|
29
|
-
-1, 0, 0
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const R1OverK = [
|
|
33
|
-
-M[1], M[2], -M[0],
|
|
34
|
-
-M[4], M[5], -M[3],
|
|
35
|
-
-M[7], M[8], -M[6]
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
m3_multiply_vec3(invA1TimesK, invA1TimesK, band1);
|
|
40
|
-
|
|
41
|
-
mat3.multiply(R1OverK, R1OverK, invA1TimesK);
|
|
42
|
-
|
|
43
|
-
return R1OverK;
|
|
44
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sh_rotate_band2.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js"],"names":[],"mappings":"AAuCA;;;;;GAKG;AACH,uCAJW,MAAM,EAAE,KACR,MAAM,EAAE,GACP,MAAM,EAAE,CA0CnB"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Math.sqrt(3)
|
|
3
|
-
* @type {number}
|
|
4
|
-
*/
|
|
5
|
-
const SQRT_3 = 1.7320508075688772;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param {number[]|Float32Array} M 5x5 matrix
|
|
10
|
-
* @param {number[]} x vec5
|
|
11
|
-
* @return {number[]} vec5
|
|
12
|
-
*/
|
|
13
|
-
function multiply_5d(M, x) {
|
|
14
|
-
return [
|
|
15
|
-
M[0] * x[0] + M[5] * x[1] + M[10] * x[2] + M[15] * x[3] + M[20] * x[4],
|
|
16
|
-
M[1] * x[0] + M[6] * x[1] + M[11] * x[2] + M[16] * x[3] + M[21] * x[4],
|
|
17
|
-
M[2] * x[0] + M[7] * x[1] + M[12] * x[2] + M[17] * x[3] + M[22] * x[4],
|
|
18
|
-
M[3] * x[0] + M[8] * x[1] + M[13] * x[2] + M[18] * x[3] + M[23] * x[4],
|
|
19
|
-
M[4] * x[0] + M[9] * x[1] + M[14] * x[2] + M[19] * x[3] + M[24] * x[4]
|
|
20
|
-
];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* This projects a vec3 to SH2/k space (i.e. we premultiply by 1/k)
|
|
25
|
-
* these are second band SH factors, multiplied by 1/K ( K = Math.sqrt(15) / (2*Math.sqrt(Math.PI)) )
|
|
26
|
-
* @param {number[]|Float32Array} output
|
|
27
|
-
* @param {number} output_offset
|
|
28
|
-
* @param {number} x
|
|
29
|
-
* @param {number} y
|
|
30
|
-
* @param {number} z
|
|
31
|
-
*/
|
|
32
|
-
function project_v3_to_sh2k(output, output_offset, x, y, z) {
|
|
33
|
-
output[output_offset] = (y * x)
|
|
34
|
-
output[output_offset + 1] = -(y * z)
|
|
35
|
-
output[output_offset + 2] = 0.28867513459481287 * (3 * z * z - 1)
|
|
36
|
-
output[output_offset + 3] = -(z * x)
|
|
37
|
-
output[output_offset + 4] = 0.5 * (x * x - y * y)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @param {number[]} band2 vec5
|
|
43
|
-
* @param {number[]} M mat3
|
|
44
|
-
* @return {number[]} vec5
|
|
45
|
-
*/
|
|
46
|
-
export function sh_rotate_band2(band2, M) {
|
|
47
|
-
const n = Math.SQRT1_2;
|
|
48
|
-
|
|
49
|
-
// Below we precompute (with help of Mathematica):
|
|
50
|
-
// constexpr float3 N0{ 1, 0, 0 };
|
|
51
|
-
// constexpr float3 N1{ 0, 0, 1 };
|
|
52
|
-
// constexpr float3 N2{ n, n, 0 };
|
|
53
|
-
// constexpr float3 N3{ n, 0, n };
|
|
54
|
-
// constexpr float3 N4{ 0, n, n };
|
|
55
|
-
// constexpr float M_SQRT_PI = 1.7724538509f;
|
|
56
|
-
// constexpr float M_SQRT_15 = 3.8729833462f;
|
|
57
|
-
// constexpr float k = M_SQRT_15 / (2.0f * M_SQRT_PI);
|
|
58
|
-
// --> k * inverse(mat5{project(N0), project(N1), project(N2), project(N3), project(N4)})
|
|
59
|
-
const invATimesK = [
|
|
60
|
-
0, 1, 2, 0, 0,
|
|
61
|
-
-1, 0, 0, 0, -2,
|
|
62
|
-
0, SQRT_3, 0, 0, 0,
|
|
63
|
-
1, 1, 0, -2, 0,
|
|
64
|
-
2, 1, 0, 0, 0
|
|
65
|
-
];
|
|
66
|
-
|
|
67
|
-
// this is: invA * k * band2
|
|
68
|
-
// 5x5 matrix by vec5 (this a lot of zeroes and constants, which the compiler should eliminate)
|
|
69
|
-
const invATimesKTimesBand2 = multiply_5d(invATimesK, band2);
|
|
70
|
-
|
|
71
|
-
// this is: mat5{project(N0), project(N1), project(N2), project(N3), project(N4)} / k
|
|
72
|
-
// (the 1/k comes from project(), see above)
|
|
73
|
-
const ROverK = new Float32Array(25);
|
|
74
|
-
|
|
75
|
-
project_v3_to_sh2k(ROverK, 0, M[0], M[1], M[2]) // M * N0
|
|
76
|
-
project_v3_to_sh2k(ROverK, 5, M[6], M[7], M[8]) // M * N1
|
|
77
|
-
project_v3_to_sh2k(ROverK, 10, n * (M[0] + M[3]), n * (M[1] + M[4]), n * (M[2] + M[5])) // M * N2
|
|
78
|
-
project_v3_to_sh2k(ROverK, 15, n * (M[0] + M[6]), n * (M[1] + M[7]), n * (M[2] + M[8])) // M * N3
|
|
79
|
-
project_v3_to_sh2k(ROverK, 20, n * (M[3] + M[6]), n * (M[4] + M[7]), n * (M[5] + M[8])) // M * N4;
|
|
80
|
-
|
|
81
|
-
// notice how "k" disappears
|
|
82
|
-
// this is: (R / k) * (invA * k) * band2 == R * invA * band2
|
|
83
|
-
const result = multiply_5d(ROverK, invATimesKTimesBand2);
|
|
84
|
-
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SH3VisualisationMaterial.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/sh3/SH3VisualisationMaterial.js"],"names":[],"mappings":"AA0DA;IAEI,cAoBC;CAEJ;+BAlFuC,OAAO"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { ShaderMaterial, Vector3 } from "three";
|
|
2
|
-
|
|
3
|
-
const shader_vx = `
|
|
4
|
-
varying vec3 vNormal;
|
|
5
|
-
|
|
6
|
-
void main() {
|
|
7
|
-
|
|
8
|
-
vNormal = normalize( normalMatrix * normal );
|
|
9
|
-
|
|
10
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
`;
|
|
14
|
-
|
|
15
|
-
const shader_fg = `
|
|
16
|
-
#define RECIPROCAL_PI 0.318309886
|
|
17
|
-
|
|
18
|
-
vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {
|
|
19
|
-
// matrix is assumed to be orthogonal
|
|
20
|
-
return normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf
|
|
24
|
-
vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
|
|
25
|
-
// normal is assumed to have unit length
|
|
26
|
-
float x = normal.x, y = normal.y, z = normal.z;
|
|
27
|
-
|
|
28
|
-
// band 0
|
|
29
|
-
vec3 result = shCoefficients[ 0 ] * 0.8862269254527579;
|
|
30
|
-
|
|
31
|
-
// band 1
|
|
32
|
-
result -= shCoefficients[ 1 ] * 1.0233267079464885 * y;
|
|
33
|
-
result += shCoefficients[ 2 ] * 1.0233267079464885 * z;
|
|
34
|
-
result -= shCoefficients[ 3 ] * 1.0233267079464885 * x;
|
|
35
|
-
|
|
36
|
-
// band 2
|
|
37
|
-
result += shCoefficients[ 4 ] * 0.8580855308097834 * x * y;
|
|
38
|
-
result -= shCoefficients[ 5 ] * 0.8580855308097834 * y * z;
|
|
39
|
-
result += shCoefficients[ 6 ] * ( 0.7431238683011272 * z * z - 0.24770795610037571 );
|
|
40
|
-
result -= shCoefficients[ 7 ] * 0.8580855308097834 * x * z;
|
|
41
|
-
result += shCoefficients[ 8 ] * 0.4290427654048917 * ( x * x - y * y );
|
|
42
|
-
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
uniform vec3 sh[ 9 ]; // sh coefficients
|
|
47
|
-
uniform float intensity; // light probe intensity
|
|
48
|
-
varying vec3 vNormal;
|
|
49
|
-
|
|
50
|
-
void main() {
|
|
51
|
-
vec3 normal = normalize( vNormal );
|
|
52
|
-
vec3 worldNormal = normalize(inverseTransformDirection( normal, viewMatrix ));
|
|
53
|
-
vec3 irradiance = shGetIrradianceAt( worldNormal, sh );
|
|
54
|
-
vec3 outgoingLight = 1.0 * irradiance * intensity;
|
|
55
|
-
gl_FragColor = linearToOutputTexel( vec4( outgoingLight, 1.0 ) );
|
|
56
|
-
}
|
|
57
|
-
`;
|
|
58
|
-
|
|
59
|
-
export class SH3VisualisationMaterial extends ShaderMaterial {
|
|
60
|
-
|
|
61
|
-
constructor() {
|
|
62
|
-
const sh = [];
|
|
63
|
-
|
|
64
|
-
for (let i = 0; i < 9; i++) {
|
|
65
|
-
sh.push(new Vector3());
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
super({
|
|
69
|
-
fragmentShader: shader_fg,
|
|
70
|
-
vertexShader: shader_vx,
|
|
71
|
-
lights: false,
|
|
72
|
-
uniforms: {
|
|
73
|
-
intensity: {
|
|
74
|
-
value: 1,
|
|
75
|
-
},
|
|
76
|
-
sh: {
|
|
77
|
-
value: sh
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build_fragment_shader.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/gi/material/build_fragment_shader.js"],"names":[],"mappings":"AAsDA;;;GAGG;AACH,8CAFW,MAAM,UAchB"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { insert_after } from "../../../../../core/primitives/strings/insert_after.js";
|
|
2
|
-
|
|
3
|
-
const PREAMBLE = `
|
|
4
|
-
|
|
5
|
-
uniform float lpv_f_intensity;
|
|
6
|
-
|
|
7
|
-
varying vec3[9] lpv_values;
|
|
8
|
-
|
|
9
|
-
// vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
|
|
10
|
-
// // normal is assumed to have unit length
|
|
11
|
-
// float x = normal.x, y = normal.y, z = normal.z;
|
|
12
|
-
//
|
|
13
|
-
// // band 0
|
|
14
|
-
// vec3 result = shCoefficients[ 0 ] * 0.886227;
|
|
15
|
-
//
|
|
16
|
-
// // band 1
|
|
17
|
-
// result -= shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
|
|
18
|
-
// result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
|
|
19
|
-
// result -= shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
|
|
20
|
-
//
|
|
21
|
-
// // band 2
|
|
22
|
-
// result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
|
|
23
|
-
// result -= shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
|
|
24
|
-
// result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
|
|
25
|
-
// result -= shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
|
|
26
|
-
// result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
|
|
27
|
-
//
|
|
28
|
-
// return result;
|
|
29
|
-
// }
|
|
30
|
-
//
|
|
31
|
-
// vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {
|
|
32
|
-
//
|
|
33
|
-
// // matrix is assumed to be orthogonal
|
|
34
|
-
//
|
|
35
|
-
// return normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );
|
|
36
|
-
//
|
|
37
|
-
// }
|
|
38
|
-
//
|
|
39
|
-
// vec3 lpv_getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
|
|
40
|
-
//
|
|
41
|
-
// vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
|
|
42
|
-
//
|
|
43
|
-
// vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
|
|
44
|
-
//
|
|
45
|
-
// return irradiance;
|
|
46
|
-
//
|
|
47
|
-
// }
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
const ACCUMULATION = `
|
|
51
|
-
irradiance += getLightProbeIrradiance(lpv_values, geometryNormal )* lpv_f_intensity;
|
|
52
|
-
`;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
*
|
|
57
|
-
* @param {string} source
|
|
58
|
-
*/
|
|
59
|
-
export function build_fragment_shader(source) {
|
|
60
|
-
|
|
61
|
-
let result = PREAMBLE + source;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
result = insert_after(
|
|
65
|
-
result,
|
|
66
|
-
'#include <lights_fragment_begin>',
|
|
67
|
-
ACCUMULATION
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build_vertex_shader.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/gi/material/build_vertex_shader.js"],"names":[],"mappings":"AA+OA;;;GAGG;AACH,4CAFW,MAAM,UAchB"}
|