@woosh/meep-engine 2.109.7 → 2.109.9
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/meep.cjs +1 -1
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +1 -1
- package/package.json +1 -1
- package/src/core/collection/array/arrayQuickSort.d.ts +1 -1
- package/src/core/collection/array/arrayQuickSort.d.ts.map +1 -1
- package/src/core/collection/array/arrayQuickSort.js +1 -1
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +3 -3
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +10 -5
- package/src/core/model/node-graph/DataType.d.ts.map +1 -1
- package/src/core/model/node-graph/DataType.js +16 -10
- package/src/core/model/node-graph/ParametricDataType.d.ts +34 -0
- package/src/core/model/node-graph/ParametricDataType.d.ts.map +1 -0
- package/src/core/model/node-graph/ParametricDataType.js +63 -0
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +11 -4
- package/src/engine/graphics/sh3/gi/material/common.glsl +117 -67
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.js +2 -4
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js +5 -47
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +4 -24
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +8 -6
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js +4 -4
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js +3 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.frag.glsl +4 -2
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.d.ts +8 -0
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.js +50 -0
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightProbeVolumeBaker.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LightProbeVolumeBaker.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js"],"names":[],"mappings":"AAOA;IAEI,8BAAqC;IAGrC;;;;;OAKG;IACH,0DAJa,SAAS,CAgErB;CACJ;wCA1EuC,8BAA8B;sBALhD,4CAA4C"}
|
|
@@ -1,57 +1,12 @@
|
|
|
1
|
-
import { v3_distance_sqr } from "../../../../core/geom/vec3/v3_distance_sqr.js";
|
|
2
|
-
import {
|
|
3
|
-
tetrahedral_mesh_find_tets_attached_to_vertex
|
|
4
|
-
} from "../../../../core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.js";
|
|
5
|
-
import { max2 } from "../../../../core/math/max2.js";
|
|
6
1
|
import TaskGroup from "../../../../core/process/task/TaskGroup.js";
|
|
7
2
|
import { actionTask } from "../../../../core/process/task/util/actionTask.js";
|
|
8
3
|
import { countTask } from "../../../../core/process/task/util/countTask.js";
|
|
9
4
|
import { promiseTask } from "../../../../core/process/task/util/promiseTask.js";
|
|
5
|
+
import { find_max_depth_radius_for_point } from "./find_max_depth_radius_for_point.js";
|
|
10
6
|
import { PathTracerProbeRenderer } from "./PathTracerProbeRenderer.js";
|
|
11
7
|
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param {number} vertex_index
|
|
15
|
-
* @param {TetrahedralMesh} mesh
|
|
16
|
-
* @param {number[]} points
|
|
17
|
-
*/
|
|
18
|
-
function find_max_depth_radius_for_point(vertex_index, mesh, points) {
|
|
19
|
-
const tets = [];
|
|
20
|
-
|
|
21
|
-
const count = tetrahedral_mesh_find_tets_attached_to_vertex(
|
|
22
|
-
tets, 0,
|
|
23
|
-
mesh,
|
|
24
|
-
vertex_index
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
const ref_x = points[vertex_index * 3];
|
|
28
|
-
const ref_y = points[vertex_index * 3 + 1];
|
|
29
|
-
const ref_z = points[vertex_index * 3 + 2];
|
|
30
|
-
|
|
31
|
-
let radius_sqr = 0;
|
|
32
|
-
|
|
33
|
-
for (let i = 0; i < count; i++) {
|
|
34
|
-
const tet = tets[i];
|
|
35
|
-
|
|
36
|
-
for (let j = 0; j < 4; j++) {
|
|
37
|
-
const v = mesh.getVertexIndex(tet, j);
|
|
38
|
-
|
|
39
|
-
const x = points[v * 3];
|
|
40
|
-
const y = points[v * 3 + 1];
|
|
41
|
-
const z = points[v * 3 + 2];
|
|
42
|
-
|
|
43
|
-
const r2 = v3_distance_sqr(ref_x, ref_y, ref_z, x, y, z);
|
|
44
|
-
|
|
45
|
-
radius_sqr = max2(r2, radius_sqr);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return Math.sqrt(radius_sqr);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
8
|
export class LightProbeVolumeBaker {
|
|
53
9
|
|
|
54
|
-
// this._ren = new WebGLCubeProbeRenderer();
|
|
55
10
|
_ren = new PathTracerProbeRenderer();
|
|
56
11
|
|
|
57
12
|
|
|
@@ -86,11 +41,14 @@ export class LightProbeVolumeBaker {
|
|
|
86
41
|
// Bake depth
|
|
87
42
|
const max_distance = find_max_depth_radius_for_point(i, lpv.mesh, lpv.points);
|
|
88
43
|
|
|
44
|
+
// bias a little to ensure we capture everything
|
|
45
|
+
const max_depth = max_distance * 1.01 + 0.00001;
|
|
46
|
+
|
|
89
47
|
const depth_resolution = lpv.depth_map_resolution;
|
|
90
48
|
|
|
91
49
|
renderer.bake_depth_octahedral(
|
|
92
50
|
depth_resolution,
|
|
93
|
-
|
|
51
|
+
max_depth,
|
|
94
52
|
lpv.points, i * 3,
|
|
95
53
|
lpv.depth, i * depth_resolution * depth_resolution
|
|
96
54
|
);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export class PathTracerProbeRenderer extends ProbeRenderer {
|
|
2
2
|
tracer: PathTracer;
|
|
3
|
+
max_bounce_count: number;
|
|
3
4
|
sample_count: number;
|
|
4
5
|
random: () => number;
|
|
5
6
|
scene: PathTracedScene;
|
|
6
|
-
bake_depth(position: any, position_offset: any, output: any, output_offset: any): void;
|
|
7
7
|
/**
|
|
8
8
|
*
|
|
9
9
|
* @param {number} resolution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathTracerProbeRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PathTracerProbeRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js"],"names":[],"mappings":"AAuBA;IACI,mBAA0B;IAC1B,yBAAqB;IACrB,qBAAmB;IACnB,qBAAyB;IAEzB,uBAA6B;IAE7B;;;;;;;;OAQG;IACH,kCAPW,MAAM,aACN,MAAM,YACN,MAAM,EAAE,mBACR,MAAM,UACN,MAAM,EAAE,iBACR,MAAM,QAahB;IAED,iFAuCC;IAKD,mBACC;IAED,4BAKC;CACJ;8BA5F6B,oBAAoB;2BAHvB,8BAA8B;gCADzB,mCAAmC"}
|
|
@@ -12,7 +12,6 @@ import { PathTracedScene } from "../path_tracer/PathTracedScene.js";
|
|
|
12
12
|
import { PathTracer } from "../path_tracer/PathTracer.js";
|
|
13
13
|
import { populate_path_traced_scene_from_ecd } from "../path_tracer/populate_path_traced_scene_from_ecd.js";
|
|
14
14
|
import { bake_octahedral_depth_map } from "./depth/octahedral/bake_octahedral_depth_map.js";
|
|
15
|
-
import { sh3_bake_depth } from "./depth/sh3_bake_depth.js";
|
|
16
15
|
import { ProbeRenderer } from "./ProbeRenderer.js";
|
|
17
16
|
|
|
18
17
|
const __shared_buffer = new ArrayBuffer((27 + 9) * 8);
|
|
@@ -24,33 +23,12 @@ const sampled_irradiance = new Float32Array(3);
|
|
|
24
23
|
|
|
25
24
|
export class PathTracerProbeRenderer extends ProbeRenderer {
|
|
26
25
|
tracer = new PathTracer();
|
|
26
|
+
max_bounce_count = 7;
|
|
27
27
|
sample_count = 192;
|
|
28
28
|
random = seededRandom(0);
|
|
29
29
|
|
|
30
30
|
scene = new PathTracedScene()
|
|
31
31
|
|
|
32
|
-
bake_depth(position, position_offset, output, output_offset) {
|
|
33
|
-
|
|
34
|
-
sh3_bake_depth(
|
|
35
|
-
coefficients, 0, this.scene,
|
|
36
|
-
position[position_offset],
|
|
37
|
-
position[position_offset + 1],
|
|
38
|
-
position[position_offset + 2],
|
|
39
|
-
1.5
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
sh3_dering_optimize_positive(coefficients, 0, coefficients, 0, 1);
|
|
43
|
-
|
|
44
|
-
for (let i = 0; i < 9; i++) {
|
|
45
|
-
const coefficient = coefficients[i];
|
|
46
|
-
|
|
47
|
-
for (let j = 0; j < 3; j++) {
|
|
48
|
-
output[output_offset + i * 3 + j] = coefficient;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
32
|
/**
|
|
55
33
|
*
|
|
56
34
|
* @param {number} resolution
|
|
@@ -84,13 +62,15 @@ export class PathTracerProbeRenderer extends ProbeRenderer {
|
|
|
84
62
|
|
|
85
63
|
coefficients.fill(0);
|
|
86
64
|
|
|
65
|
+
const max_bounce = this.max_bounce_count;
|
|
66
|
+
|
|
87
67
|
for (let i = 0; i < this.sample_count; i++) {
|
|
88
68
|
|
|
89
69
|
randomPointOnSphere(this.random, ray, 3);
|
|
90
70
|
ray.tMax = Infinity;
|
|
91
71
|
ray.tMin = 0;
|
|
92
72
|
|
|
93
|
-
tracer.path_trace(sampled_irradiance, ray, 1,
|
|
73
|
+
tracer.path_trace(sampled_irradiance, ray, 1, max_bounce, this.random, this.scene);
|
|
94
74
|
|
|
95
75
|
sh3_basis_at(ray[3], ray[4], ray[5], sh_basis);
|
|
96
76
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_probes_for_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/build_probes_for_scene.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build_probes_for_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/build_probes_for_scene.js"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,iFAPW,gBAAgB,GAKd,QAAQ,gBAAgB,CAAC,CAoFrC;iCA9FgC,uBAAuB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AABB3 } from "../../../../core/geom/3d/aabb/AABB3.js";
|
|
2
2
|
import { make_justified_point_grid } from "../../../../core/geom/3d/util/make_justified_point_grid.js";
|
|
3
3
|
import Vector2 from "../../../../core/geom/Vector2.js";
|
|
4
|
+
import { seededRandom } from "../../../../core/math/random/seededRandom.js";
|
|
4
5
|
import { delay } from "../../../../core/process/delay.js";
|
|
5
6
|
import Entity from "../../../ecs/Entity.js";
|
|
6
7
|
import GUIElement from "../../../ecs/gui/GUIElement.js";
|
|
@@ -49,12 +50,13 @@ export async function build_probes_for_scene(
|
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
// sg_hierarchy_compute_bounding_box_via_parent_entity(light_volume_bounds, composition.entity.entity, ecd);
|
|
53
|
+
const random = seededRandom(1);
|
|
52
54
|
|
|
53
|
-
// for (let i = 0; i <
|
|
54
|
-
//
|
|
55
|
-
// randomFloatBetween(random,
|
|
56
|
-
// randomFloatBetween(random,
|
|
57
|
-
// randomFloatBetween(random,
|
|
55
|
+
// for (let i = 0; i < 1000; i++) {
|
|
56
|
+
// volume.add_point(
|
|
57
|
+
// randomFloatBetween(random, model_bounds.x0, model_bounds.x1),
|
|
58
|
+
// randomFloatBetween(random, model_bounds.y0, model_bounds.y1),
|
|
59
|
+
// randomFloatBetween(random, model_bounds.z0, model_bounds.z1),
|
|
58
60
|
// );
|
|
59
61
|
// }
|
|
60
62
|
|
|
@@ -64,7 +66,7 @@ export async function build_probes_for_scene(
|
|
|
64
66
|
|
|
65
67
|
// lpv.add_point(10, 1, -10);
|
|
66
68
|
|
|
67
|
-
await delay(
|
|
69
|
+
await delay(1);
|
|
68
70
|
|
|
69
71
|
//
|
|
70
72
|
// console.profile('lpv build');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bake_octahedral_depth_map.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bake_octahedral_depth_map.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js"],"names":[],"mappings":"AAUA;;;;;;;;;GASG;AACH,kDARW,MAAM,EAAE,iBACR,MAAM,oCAEN,MAAM,EAAE,UAAQ,mBAChB,MAAM,cACN,MAAM,aACN,MAAM,QAuChB"}
|
|
@@ -6,6 +6,8 @@ import { Ray3 } from "../../../../../../core/geom/3d/Ray3.js";
|
|
|
6
6
|
|
|
7
7
|
const scratch_ray = new Ray3();
|
|
8
8
|
|
|
9
|
+
const ray_hit = [];
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
12
|
*
|
|
11
13
|
* @param {number[]} result
|
|
@@ -29,13 +31,11 @@ export function bake_octahedral_depth_map(
|
|
|
29
31
|
|
|
30
32
|
const ray_direction = scratch_ray.direction;
|
|
31
33
|
|
|
32
|
-
const ray_hit = [];
|
|
33
|
-
|
|
34
34
|
for (let oct_x = 0; oct_x < resolution; oct_x++) {
|
|
35
35
|
for (let oct_y = 0; oct_y < resolution; oct_y++) {
|
|
36
36
|
|
|
37
|
-
const u = oct_x / (resolution - 1);
|
|
38
|
-
const v = oct_y / (resolution - 1);
|
|
37
|
+
const u = (oct_x) / (resolution - 1);
|
|
38
|
+
const v = (oct_y) / (resolution - 1);
|
|
39
39
|
|
|
40
40
|
decode_octahedron_to_unit(
|
|
41
41
|
ray_direction, 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VLPDepthMapVisualisation.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VLPDepthMapVisualisation.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js"],"names":[],"mappings":"AA6EA;IAYI;;;;OAIG;IACH,oCAFa,wBAAwB,CAQpC;IAfD,qBAEC;IAeD,gBA4CC;;CAEJ;mBAzIkB,iCAAiC"}
|
|
@@ -12,6 +12,8 @@ precision highp usampler3D;
|
|
|
12
12
|
uniform sampler2D lpv_t_probe_positions;
|
|
13
13
|
uniform sampler2D lpv_t_probe_depth;
|
|
14
14
|
|
|
15
|
+
uniform uint lpv_u_probe_depth_resolution;
|
|
16
|
+
|
|
15
17
|
#define SEARCH_STEP_LIMIT 64u
|
|
16
18
|
#define INVALID_TET 1073741823u
|
|
17
19
|
|
|
@@ -84,7 +86,7 @@ float SampleBlended(sampler2D tex, vec2 uv0, vec2 uv1, vec2 uv2, vec4 weights) {
|
|
|
84
86
|
|
|
85
87
|
float lpv_probe_getDepth(uint probe_index, vec3 direction) {
|
|
86
88
|
// get offset
|
|
87
|
-
uint depth_tile_resolution =
|
|
89
|
+
uint depth_tile_resolution = lpv_u_probe_depth_resolution;
|
|
88
90
|
uvec2 atlas_size = uvec2(4096u);
|
|
89
91
|
|
|
90
92
|
uint tiles_per_row = atlas_size.x / depth_tile_resolution;
|
|
@@ -152,7 +154,7 @@ void main() {
|
|
|
152
154
|
vec3 normal = normalize(vNormal);
|
|
153
155
|
vec3 worldNormal = normalize(inverseTransformDirection(normal, viewMatrix));
|
|
154
156
|
|
|
155
|
-
float depth = lpv_probe_getDepth(instance_index , worldNormal) /
|
|
157
|
+
float depth = lpv_probe_getDepth(instance_index , worldNormal) / 7.0;
|
|
156
158
|
|
|
157
159
|
gl_FragColor = vec4(vec3(depth), 1.0);
|
|
158
160
|
// gl_FragColor = vec4( 1.0);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {number} vertex_index
|
|
4
|
+
* @param {TetrahedralMesh} mesh
|
|
5
|
+
* @param {number[]} points
|
|
6
|
+
*/
|
|
7
|
+
export function find_max_depth_radius_for_point(vertex_index: number, mesh: TetrahedralMesh, points: number[]): number;
|
|
8
|
+
//# sourceMappingURL=find_max_depth_radius_for_point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_max_depth_radius_for_point.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,8DAJW,MAAM,iCAEN,MAAM,EAAE,UAiClB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { v3_distance_sqr } from "../../../../core/geom/vec3/v3_distance_sqr.js";
|
|
2
|
+
import {
|
|
3
|
+
tetrahedral_mesh_find_tets_attached_to_vertex
|
|
4
|
+
} from "../../../../core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.js";
|
|
5
|
+
import { max2 } from "../../../../core/math/max2.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @type {number[]}
|
|
10
|
+
*/
|
|
11
|
+
const tets = [];
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {number} vertex_index
|
|
16
|
+
* @param {TetrahedralMesh} mesh
|
|
17
|
+
* @param {number[]} points
|
|
18
|
+
*/
|
|
19
|
+
export function find_max_depth_radius_for_point(vertex_index, mesh, points) {
|
|
20
|
+
|
|
21
|
+
const count = tetrahedral_mesh_find_tets_attached_to_vertex(
|
|
22
|
+
tets, 0,
|
|
23
|
+
mesh,
|
|
24
|
+
vertex_index
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const ref_x = points[vertex_index * 3];
|
|
28
|
+
const ref_y = points[vertex_index * 3 + 1];
|
|
29
|
+
const ref_z = points[vertex_index * 3 + 2];
|
|
30
|
+
|
|
31
|
+
let radius_sqr = 0;
|
|
32
|
+
|
|
33
|
+
for (let i = 0; i < count; i++) {
|
|
34
|
+
const tet = tets[i];
|
|
35
|
+
|
|
36
|
+
for (let j = 0; j < 4; j++) {
|
|
37
|
+
const v = mesh.getVertexIndex(tet, j);
|
|
38
|
+
|
|
39
|
+
const x = points[v * 3];
|
|
40
|
+
const y = points[v * 3 + 1];
|
|
41
|
+
const z = points[v * 3 + 2];
|
|
42
|
+
|
|
43
|
+
const r2 = v3_distance_sqr(ref_x, ref_y, ref_z, x, y, z);
|
|
44
|
+
|
|
45
|
+
radius_sqr = max2(r2, radius_sqr);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return Math.sqrt(radius_sqr);
|
|
50
|
+
}
|
|
@@ -364,7 +364,6 @@ async function main(engine) {
|
|
|
364
364
|
// const path = 'data/models/samples/sd_macross_city_standoff_diorama/scene.gltf';
|
|
365
365
|
// const path = 'data/models/sibenik/2/model.gltf';
|
|
366
366
|
// const path = 'data/models/vokselia_spawn/model.gltf';
|
|
367
|
-
// const path = 'data/models/LowPolyTownshipSet/Town_Hall/model.gltf';
|
|
368
367
|
// const path = 'data/models/samples/just_a_girl/scene.gltf';
|
|
369
368
|
// const path = 'data/models/samples/slum_house/scene.gltf';
|
|
370
369
|
// const path = 'data/models/samples/jack_trigger/scene.gltf';
|
|
@@ -374,14 +373,15 @@ async function main(engine) {
|
|
|
374
373
|
// const path = 'data/models/samples/ancient_bath_house_-_modular_set/scene.gltf';
|
|
375
374
|
// const path = 'data/models/samples/environment_-_library/scene.gltf';
|
|
376
375
|
// const path = 'data/models/Scans/green_car_wreck/scene.gltf';
|
|
377
|
-
// const path = 'data/models/pica_pica/pica_pica.gltf';
|
|
378
|
-
// const path = 'data/models/sibenik/3-window-less/model.gltf';
|
|
379
376
|
// const path = 'data/models/samples/low_poly_classroom/no-glass/model.gltf';
|
|
380
377
|
// const path = 'data/models/samples/the_attic_environment/scene1.gltf';
|
|
381
378
|
// const path = 'data/models/LowPolyTownshipSet/Small_house/Small_house.gltf';
|
|
382
379
|
// const path = 'data/models/samples/cyberpunk_bike/scene.gltf';
|
|
380
|
+
// const path = 'data/models/LowPolyTownshipSet/Town_Hall/model.gltf';
|
|
381
|
+
// const path = 'data/models/sibenik/3-window-less/model.gltf';
|
|
382
|
+
// const path = 'data/models/samples/gi_box_01/model.glb';
|
|
383
383
|
// const path = 'data/models/sponza-pbr/gltf/sponza.glb';
|
|
384
|
-
const path = 'data/models/
|
|
384
|
+
const path = 'data/models/pica_pica/pica_pica.gltf';
|
|
385
385
|
|
|
386
386
|
const mesh_asset = await engine.assetManager.promise(path, 'model/gltf+json');
|
|
387
387
|
const gltf = mesh_asset.gltf;
|