@ifc-lite/renderer 1.9.0 → 1.11.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.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,22 @@
4
4
  */
5
5
  import { WebGPUDevice } from './device.js';
6
6
  export interface PostProcessorOptions {
7
- enableSSAO?: boolean;
8
- enableEdgeEnhancement?: boolean;
9
- ssaoRadius?: number;
10
- ssaoIntensity?: number;
7
+ enableContactShading?: boolean;
8
+ contactRadius?: number;
9
+ contactIntensity?: number;
10
+ }
11
+ export type PostProcessQuality = 'low' | 'high';
12
+ export interface ContactShadingPassOptions {
13
+ targetView: GPUTextureView;
14
+ depthView: GPUTextureView;
15
+ objectIdView: GPUTextureView;
16
+ contactQuality: PostProcessQuality;
17
+ radius: number;
18
+ intensity: number;
19
+ separationQuality: PostProcessQuality;
20
+ separationRadius: number;
21
+ separationIntensity: number;
22
+ enableSeparationLines: boolean;
11
23
  }
12
24
  /**
13
25
  * Post-processing pipeline
@@ -17,13 +29,22 @@ export interface PostProcessorOptions {
17
29
  export declare class PostProcessor {
18
30
  private _device;
19
31
  private options;
20
- constructor(device: WebGPUDevice, options?: PostProcessorOptions);
32
+ private colorFormat;
33
+ private isMultisampled;
34
+ private uniformBuffer;
35
+ private uniformStaging;
36
+ private uniformF32;
37
+ private uniformU32;
38
+ private bindGroupLayout;
39
+ private pipeline;
40
+ private cachedBindGroup;
41
+ private cachedDepthView;
42
+ private cachedObjectIdView;
43
+ constructor(device: WebGPUDevice, options?: PostProcessorOptions, sampleCount?: number);
21
44
  /**
22
- * Apply post-processing effects
23
- * Currently tone mapping is handled in the main shader
24
- * This class provides infrastructure for future SSAO and edge detection
45
+ * Apply lightweight contact shading in a fullscreen overlay pass.
25
46
  */
26
- apply(_inputTexture: GPUTexture, _outputTexture: GPUTexture): void;
47
+ apply(commandEncoder: GPUCommandEncoder, options: ContactShadingPassOptions): void;
27
48
  /**
28
49
  * Update post-processing options
29
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,oBAAyB;IAWpE;;;;OAIG;IACH,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,GAAG,IAAI;IASlE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAA+B;gBAE7C,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,oBAAyB,EAAE,WAAW,GAAE,MAAU;IAkN7F;;OAEG;IACH,KAAK,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI;IA6ClF;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAG9D"}
@@ -9,28 +9,264 @@
9
9
  export class PostProcessor {
10
10
  _device;
11
11
  options;
12
- constructor(device, options = {}) {
13
- this._device = device;
12
+ colorFormat;
13
+ isMultisampled;
14
+ uniformBuffer;
15
+ uniformStaging;
16
+ uniformF32;
17
+ uniformU32;
18
+ bindGroupLayout;
19
+ pipeline;
20
+ cachedBindGroup = null;
21
+ cachedDepthView = null;
22
+ cachedObjectIdView = null;
23
+ constructor(device, options = {}, sampleCount = 1) {
24
+ this._device = device.getDevice();
25
+ this.colorFormat = device.getFormat();
26
+ this.isMultisampled = sampleCount > 1;
14
27
  this.options = {
15
- enableSSAO: false,
16
- enableEdgeEnhancement: false,
17
- ssaoRadius: 0.5,
18
- ssaoIntensity: 1.0,
28
+ enableContactShading: false,
29
+ contactRadius: 1.0,
30
+ contactIntensity: 0.3,
19
31
  ...options,
20
32
  };
33
+ this.uniformStaging = new ArrayBuffer(48);
34
+ this.uniformF32 = new Float32Array(this.uniformStaging);
35
+ this.uniformU32 = new Uint32Array(this.uniformStaging);
36
+ this.uniformBuffer = this._device.createBuffer({
37
+ // WGSL uniform layout for Params requires 48 bytes due to 16-byte alignment.
38
+ size: 48,
39
+ usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
40
+ });
41
+ this.bindGroupLayout = this._device.createBindGroupLayout({
42
+ entries: [
43
+ {
44
+ binding: 0,
45
+ visibility: GPUShaderStage.FRAGMENT,
46
+ texture: { sampleType: 'depth', viewDimension: '2d', multisampled: this.isMultisampled },
47
+ },
48
+ {
49
+ binding: 1,
50
+ visibility: GPUShaderStage.FRAGMENT,
51
+ texture: { sampleType: 'unfilterable-float', viewDimension: '2d', multisampled: this.isMultisampled },
52
+ },
53
+ {
54
+ binding: 2,
55
+ visibility: GPUShaderStage.FRAGMENT,
56
+ buffer: { type: 'uniform' },
57
+ },
58
+ ],
59
+ });
60
+ const depthTexDecl = this.isMultisampled
61
+ ? '@group(0) @binding(0) var depthTex: texture_depth_multisampled_2d;'
62
+ : '@group(0) @binding(0) var depthTex: texture_depth_2d;';
63
+ const idTexDecl = this.isMultisampled
64
+ ? '@group(0) @binding(1) var idTex: texture_multisampled_2d<f32>;'
65
+ : '@group(0) @binding(1) var idTex: texture_2d<f32>;';
66
+ const depthLoadExpr = this.isMultisampled
67
+ ? 'textureLoad(depthTex, c, 0u)'
68
+ : 'textureLoad(depthTex, c, 0)';
69
+ const idLoadExpr = this.isMultisampled
70
+ ? 'textureLoad(idTex, c, 0u)'
71
+ : 'textureLoad(idTex, c, 0)';
72
+ const shader = this._device.createShaderModule({
73
+ code: `
74
+ struct Params {
75
+ contactRadiusPx: f32,
76
+ contactIntensity: f32,
77
+ seamRadiusPx: f32,
78
+ seamIntensity: f32,
79
+ flags: vec4<u32>, // x=contactQuality y=seamQuality z=seamsEnabled w=reserved
80
+ }
81
+
82
+ ${depthTexDecl}
83
+ ${idTexDecl}
84
+ @group(0) @binding(2) var<uniform> params: Params;
85
+
86
+ struct VsOut {
87
+ @builtin(position) pos: vec4<f32>,
88
+ }
89
+
90
+ @vertex
91
+ fn vs_main(@builtin(vertex_index) v: u32) -> VsOut {
92
+ var o: VsOut;
93
+ var p = array<vec2<f32>, 3>(
94
+ vec2<f32>(-1.0, -3.0),
95
+ vec2<f32>(-1.0, 1.0),
96
+ vec2<f32>( 3.0, 1.0)
97
+ );
98
+ o.pos = vec4<f32>(p[v], 0.0, 1.0);
99
+ return o;
100
+ }
101
+
102
+ fn sampleDepthClamped(ip: vec2<i32>, dims: vec2<i32>) -> f32 {
103
+ let c = vec2<i32>(clamp(ip.x, 0, dims.x - 1), clamp(ip.y, 0, dims.y - 1));
104
+ return ${depthLoadExpr};
105
+ }
106
+
107
+ fn decodeId24(encoded: vec4<f32>) -> u32 {
108
+ let r = u32(round(encoded.r * 255.0)) & 255u;
109
+ let g = u32(round(encoded.g * 255.0)) & 255u;
110
+ let b = u32(round(encoded.b * 255.0)) & 255u;
111
+ return (r << 16u) | (g << 8u) | b;
112
+ }
113
+
114
+ fn sampleIdClamped(ip: vec2<i32>, dims: vec2<i32>) -> u32 {
115
+ let c = vec2<i32>(clamp(ip.x, 0, dims.x - 1), clamp(ip.y, 0, dims.y - 1));
116
+ return decodeId24(${idLoadExpr});
117
+ }
118
+
119
+ @fragment
120
+ fn fs_main(@builtin(position) fragPos: vec4<f32>) -> @location(0) vec4<f32> {
121
+ let dimsU = textureDimensions(depthTex);
122
+ let dims = vec2<i32>(i32(dimsU.x), i32(dimsU.y));
123
+ let p = vec2<i32>(i32(fragPos.x), i32(fragPos.y));
124
+
125
+ let center = sampleDepthClamped(p, dims);
126
+ if (center <= 0.00001) {
127
+ return vec4<f32>(0.0, 0.0, 0.0, 0.0);
128
+ }
129
+
130
+ let r = max(1, i32(params.contactRadiusPx));
131
+ var accum = 0.0;
132
+ var count = 0.0;
133
+
134
+ // Reverse-Z: higher depth means closer to camera.
135
+ let d1 = sampleDepthClamped(p + vec2<i32>( r, 0), dims);
136
+ let d2 = sampleDepthClamped(p + vec2<i32>(-r, 0), dims);
137
+ let d3 = sampleDepthClamped(p + vec2<i32>( 0, r), dims);
138
+ let d4 = sampleDepthClamped(p + vec2<i32>( 0, -r), dims);
139
+ accum += max(0.0, d1 - center);
140
+ accum += max(0.0, d2 - center);
141
+ accum += max(0.0, d3 - center);
142
+ accum += max(0.0, d4 - center);
143
+ count += 4.0;
144
+
145
+ if (params.flags.x == 1u) {
146
+ let d5 = sampleDepthClamped(p + vec2<i32>( r, r), dims);
147
+ let d6 = sampleDepthClamped(p + vec2<i32>(-r, r), dims);
148
+ let d7 = sampleDepthClamped(p + vec2<i32>( r, -r), dims);
149
+ let d8 = sampleDepthClamped(p + vec2<i32>(-r, -r), dims);
150
+ accum += max(0.0, d5 - center);
151
+ accum += max(0.0, d6 - center);
152
+ accum += max(0.0, d7 - center);
153
+ accum += max(0.0, d8 - center);
154
+ count += 4.0;
155
+ }
156
+
157
+ let contact = clamp((accum / max(count, 1.0)) * (120.0 * params.contactIntensity), 0.0, 0.7);
158
+
159
+ var seam = 0.0;
160
+ if (params.flags.z == 1u) {
161
+ let idCenter = sampleIdClamped(p, dims);
162
+ if (idCenter != 0u) {
163
+ let rs = max(1, i32(params.seamRadiusPx));
164
+ let idX1 = sampleIdClamped(p + vec2<i32>( rs, 0), dims);
165
+ let idX0 = sampleIdClamped(p + vec2<i32>(-rs, 0), dims);
166
+ let idY1 = sampleIdClamped(p + vec2<i32>(0, rs), dims);
167
+ let idY0 = sampleIdClamped(p + vec2<i32>(0, -rs), dims);
168
+
169
+ let edge4Count =
170
+ f32(idX1 != idCenter && idX1 != 0u) +
171
+ f32(idX0 != idCenter && idX0 != 0u) +
172
+ f32(idY1 != idCenter && idY1 != 0u) +
173
+ f32(idY0 != idCenter && idY0 != 0u);
174
+ seam = edge4Count * 0.25;
175
+
176
+ if (params.flags.y == 1u) {
177
+ let idD1 = sampleIdClamped(p + vec2<i32>( rs, rs), dims);
178
+ let idD2 = sampleIdClamped(p + vec2<i32>(-rs, rs), dims);
179
+ let idD3 = sampleIdClamped(p + vec2<i32>( rs, -rs), dims);
180
+ let idD4 = sampleIdClamped(p + vec2<i32>(-rs, -rs), dims);
181
+ let edgeDiagCount =
182
+ f32(idD1 != idCenter && idD1 != 0u) +
183
+ f32(idD2 != idCenter && idD2 != 0u) +
184
+ f32(idD3 != idCenter && idD3 != 0u) +
185
+ f32(idD4 != idCenter && idD4 != 0u);
186
+ let edgeDiag = edgeDiagCount * 0.25;
187
+ seam = max(seam, (seam + edgeDiag) * 0.5);
188
+ }
189
+ }
190
+ }
191
+
192
+ let seamDarken = clamp(seam * params.seamIntensity, 0.0, 0.35);
193
+ let overlay = max(contact, seamDarken);
194
+ return vec4<f32>(0.0, 0.0, 0.0, overlay);
195
+ }
196
+ `,
197
+ });
198
+ this.pipeline = this._device.createRenderPipeline({
199
+ layout: this._device.createPipelineLayout({ bindGroupLayouts: [this.bindGroupLayout] }),
200
+ vertex: {
201
+ module: shader,
202
+ entryPoint: 'vs_main',
203
+ },
204
+ fragment: {
205
+ module: shader,
206
+ entryPoint: 'fs_main',
207
+ targets: [{
208
+ format: this.colorFormat,
209
+ blend: {
210
+ color: {
211
+ srcFactor: 'zero',
212
+ dstFactor: 'one-minus-src-alpha',
213
+ },
214
+ alpha: {
215
+ srcFactor: 'zero',
216
+ dstFactor: 'one',
217
+ },
218
+ },
219
+ }],
220
+ },
221
+ primitive: {
222
+ topology: 'triangle-list',
223
+ cullMode: 'none',
224
+ },
225
+ });
21
226
  }
22
227
  /**
23
- * Apply post-processing effects
24
- * Currently tone mapping is handled in the main shader
25
- * This class provides infrastructure for future SSAO and edge detection
228
+ * Apply lightweight contact shading in a fullscreen overlay pass.
26
229
  */
27
- apply(_inputTexture, _outputTexture) {
28
- // Tone mapping is already applied in the main PBR shader
29
- // SSAO and edge enhancement would be implemented here as separate passes
30
- // Reserved for future use
31
- void this._device;
32
- void _inputTexture;
33
- void _outputTexture;
230
+ apply(commandEncoder, options) {
231
+ if (!this.options.enableContactShading && !options.enableSeparationLines) {
232
+ return;
233
+ }
234
+ const contactQualityFlag = options.contactQuality === 'high' ? 1 : 0;
235
+ const seamQualityFlag = options.separationQuality === 'high' ? 1 : 0;
236
+ const contactRadiusPx = options.contactQuality === 'high' ? options.radius : options.radius * 0.5;
237
+ const seamRadiusPx = options.separationQuality === 'high' ? options.separationRadius : 1.0;
238
+ this.uniformF32[0] = contactRadiusPx;
239
+ this.uniformF32[1] = options.intensity;
240
+ this.uniformF32[2] = seamRadiusPx;
241
+ this.uniformF32[3] = options.separationIntensity;
242
+ this.uniformU32[4] = contactQualityFlag;
243
+ this.uniformU32[5] = seamQualityFlag;
244
+ this.uniformU32[6] = options.enableSeparationLines ? 1 : 0;
245
+ this.uniformU32[7] = 0;
246
+ this._device.queue.writeBuffer(this.uniformBuffer, 0, this.uniformStaging);
247
+ if (this.cachedDepthView !== options.depthView || this.cachedObjectIdView !== options.objectIdView || this.cachedBindGroup === null) {
248
+ this.cachedBindGroup = this._device.createBindGroup({
249
+ layout: this.bindGroupLayout,
250
+ entries: [
251
+ { binding: 0, resource: options.depthView },
252
+ { binding: 1, resource: options.objectIdView },
253
+ { binding: 2, resource: { buffer: this.uniformBuffer } },
254
+ ],
255
+ });
256
+ this.cachedDepthView = options.depthView;
257
+ this.cachedObjectIdView = options.objectIdView;
258
+ }
259
+ const pass = commandEncoder.beginRenderPass({
260
+ colorAttachments: [{
261
+ view: options.targetView,
262
+ loadOp: 'load',
263
+ storeOp: 'store',
264
+ }],
265
+ });
266
+ pass.setPipeline(this.pipeline);
267
+ pass.setBindGroup(0, this.cachedBindGroup);
268
+ pass.draw(3, 1, 0, 0);
269
+ pass.end();
34
270
  }
35
271
  /**
36
272
  * Update post-processing options
@@ -1 +1 @@
1
- {"version":3,"file":"post-processor.js","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgB/D;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACd,OAAO,CAAe;IACtB,OAAO,CAAuB;IAEtC,YAAY,MAAoB,EAAE,UAAgC,EAAE;QAChE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG;YACX,UAAU,EAAE,KAAK;YACjB,qBAAqB,EAAE,KAAK;YAC5B,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,GAAG;YAClB,GAAG,OAAO;SACb,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAyB,EAAE,cAA0B;QACvD,yDAAyD;QACzD,yEAAyE;QACzE,0BAA0B;QAC1B,KAAK,IAAI,CAAC,OAAO,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACnD,CAAC;CACJ"}
1
+ {"version":3,"file":"post-processor.js","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA8B/D;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACd,OAAO,CAAY;IACnB,OAAO,CAAuB;IAC9B,WAAW,CAAmB;IAC9B,cAAc,CAAU;IACxB,aAAa,CAAY;IACzB,cAAc,CAAc;IAC5B,UAAU,CAAe;IACzB,UAAU,CAAc;IACxB,eAAe,CAAqB;IACpC,QAAQ,CAAoB;IAC5B,eAAe,GAAwB,IAAI,CAAC;IAC5C,eAAe,GAA0B,IAAI,CAAC;IAC9C,kBAAkB,GAA0B,IAAI,CAAC;IAEzD,YAAY,MAAoB,EAAE,UAAgC,EAAE,EAAE,cAAsB,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG;YACX,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,GAAG;YAClB,gBAAgB,EAAE,GAAG;YACrB,GAAG,OAAO;SACb,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC3C,6EAA6E;YAC7E,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;SAC1D,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;YACtD,OAAO,EAAE;gBACL;oBACI,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;oBACnC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;iBAC3F;gBACD;oBACI,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;oBACnC,OAAO,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;iBACxG;gBACD;oBACI,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;oBACnC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC9B;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc;YACpC,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uDAAuD,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc;YACjC,CAAC,CAAC,gEAAgE;YAClE,CAAC,CAAC,mDAAmD,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;YACrC,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,6BAA6B,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc;YAClC,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,0BAA0B,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC3C,IAAI,EAAE;;;;;;;;;EAShB,YAAY;EACZ,SAAS;;;;;;;;;;;;;;;;;;;;;WAqBA,aAAa;;;;;;;;;;;;sBAYF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgF/B;SACQ,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACvF,MAAM,EAAE;gBACJ,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,SAAS;aACxB;YACD,QAAQ,EAAE;gBACN,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,CAAC;wBACN,MAAM,EAAE,IAAI,CAAC,WAAW;wBACxB,KAAK,EAAE;4BACH,KAAK,EAAE;gCACH,SAAS,EAAE,MAAM;gCACjB,SAAS,EAAE,qBAAqB;6BACnC;4BACD,KAAK,EAAE;gCACH,SAAS,EAAE,MAAM;gCACjB,SAAS,EAAE,KAAK;6BACnB;yBACJ;qBACJ,CAAC;aACL;YACD,SAAS,EAAE;gBACP,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,MAAM;aACnB;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAiC,EAAE,OAAkC;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACvE,OAAO;QACX,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;QAClG,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3F,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,KAAK,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBAChD,MAAM,EAAE,IAAI,CAAC,eAAe;gBAC5B,OAAO,EAAE;oBACL,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE;oBAC3C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE;oBAC9C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;iBAC3D;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,eAAe,CAAC;YACxC,gBAAgB,EAAE,CAAC;oBACf,IAAI,EAAE,OAAO,CAAC,UAAU;oBACxB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,OAAO;iBACnB,CAAC;SACL,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACnD,CAAC;CACJ"}
@@ -30,36 +30,36 @@ export class RaycastEngine {
30
30
  const allMeshData = [];
31
31
  const meshes = this.scene.getMeshes();
32
32
  const batchedMeshes = this.scene.getBatchedMeshes();
33
- // Collect mesh data from regular meshes
34
- for (const mesh of meshes) {
35
- const meshData = this.scene.getMeshData(mesh.expressId);
36
- if (meshData) {
33
+ const seenKeys = new Set();
34
+ const pushVisiblePieces = (expressId, modelIndex) => {
35
+ const pieces = this.scene.getMeshDataPieces(expressId, modelIndex);
36
+ if (!pieces)
37
+ return;
38
+ for (const piece of pieces) {
37
39
  // Apply visibility filtering
38
- if (options?.hiddenIds?.has(meshData.expressId))
40
+ if (options?.hiddenIds?.has(piece.expressId))
39
41
  continue;
40
42
  if (options?.isolatedIds !== null &&
41
43
  options?.isolatedIds !== undefined &&
42
- !options.isolatedIds.has(meshData.expressId)) {
44
+ !options.isolatedIds.has(piece.expressId)) {
43
45
  continue;
44
46
  }
45
- allMeshData.push(meshData);
47
+ // Avoid duplicates when a piece is reachable from both regular and batched passes
48
+ const key = `${piece.expressId}:${piece.modelIndex ?? 'any'}:${piece.positions.length}:${piece.indices.length}`;
49
+ if (seenKeys.has(key))
50
+ continue;
51
+ seenKeys.add(key);
52
+ allMeshData.push(piece);
46
53
  }
54
+ };
55
+ // Collect mesh data from regular meshes
56
+ for (const mesh of meshes) {
57
+ pushVisiblePieces(mesh.expressId, mesh.modelIndex);
47
58
  }
48
59
  // Collect mesh data from batched meshes
49
60
  for (const batch of batchedMeshes) {
50
61
  for (const expressId of batch.expressIds) {
51
- const meshData = this.scene.getMeshData(expressId);
52
- if (meshData) {
53
- // Apply visibility filtering
54
- if (options?.hiddenIds?.has(meshData.expressId))
55
- continue;
56
- if (options?.isolatedIds !== null &&
57
- options?.isolatedIds !== undefined &&
58
- !options.isolatedIds.has(meshData.expressId)) {
59
- continue;
60
- }
61
- allMeshData.push(meshData);
62
- }
62
+ pushVisiblePieces(expressId);
63
63
  }
64
64
  }
65
65
  return allMeshData;
@@ -1 +1 @@
1
- {"version":3,"file":"raycast-engine.js","sourceRoot":"","sources":["../src/raycast-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raycast-engine.js","sourceRoot":"","sources":["../src/raycast-engine.ts"],"names":[],"mappings":"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"}
package/dist/scene.d.ts CHANGED
@@ -66,9 +66,10 @@ export declare class Scene {
66
66
  */
67
67
  hasMeshData(expressId: number, modelIndex?: number): boolean;
68
68
  /**
69
- * Get all MeshData pieces for an expressId (without merging)
69
+ * Get all MeshData pieces for an expressId (without merging).
70
+ * Optionally filter by modelIndex for multi-model safety.
70
71
  */
71
- getMeshDataPieces(expressId: number): MeshData[] | undefined;
72
+ getMeshDataPieces(expressId: number, modelIndex?: number): MeshData[] | undefined;
72
73
  /**
73
74
  * Generate color key for grouping meshes.
74
75
  * Quantizes RGBA to 10-bit per channel and packs into a compact string.
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
package/dist/scene.js CHANGED
@@ -2,6 +2,8 @@
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { MathUtils } from './math.js';
5
+ const MAX_ENCODED_ENTITY_ID = 0xFFFFFF;
6
+ let warnedEntityIdRange = false;
5
7
  export class Scene {
6
8
  meshes = [];
7
9
  instancedMeshes = [];
@@ -159,10 +161,17 @@ export class Scene {
159
161
  return pieces.some(p => p.modelIndex === modelIndex);
160
162
  }
161
163
  /**
162
- * Get all MeshData pieces for an expressId (without merging)
164
+ * Get all MeshData pieces for an expressId (without merging).
165
+ * Optionally filter by modelIndex for multi-model safety.
163
166
  */
164
- getMeshDataPieces(expressId) {
165
- return this.meshDataMap.get(expressId);
167
+ getMeshDataPieces(expressId, modelIndex) {
168
+ const pieces = this.meshDataMap.get(expressId);
169
+ if (!pieces || pieces.length === 0)
170
+ return undefined;
171
+ if (modelIndex === undefined)
172
+ return pieces;
173
+ const filtered = pieces.filter((p) => p.modelIndex === modelIndex);
174
+ return filtered.length > 0 ? filtered : undefined;
166
175
  }
167
176
  /**
168
177
  * Generate color key for grouping meshes.
@@ -410,7 +419,9 @@ export class Scene {
410
419
  totalIndices += mesh.indices.length;
411
420
  }
412
421
  // Create merged buffers
413
- const vertexData = new Float32Array(totalVertices * 6); // 6 floats per vertex (pos + normal)
422
+ const vertexBufferRaw = new ArrayBuffer(totalVertices * 7 * 4);
423
+ const vertexData = new Float32Array(vertexBufferRaw); // position + normal
424
+ const vertexDataU32 = new Uint32Array(vertexBufferRaw); // entityId lane
414
425
  const indices = new Uint32Array(totalIndices);
415
426
  let indexOffset = 0;
416
427
  let vertexBase = 0;
@@ -420,7 +431,15 @@ export class Scene {
420
431
  const vertexCount = positions.length / 3;
421
432
  // Interleave vertex data (position + normal)
422
433
  // This loop is O(n) per mesh and unavoidable for interleaving
423
- let outIdx = vertexBase * 6;
434
+ let outIdx = vertexBase * 7;
435
+ let entityId = mesh.expressId >>> 0;
436
+ if (entityId > MAX_ENCODED_ENTITY_ID) {
437
+ if (!warnedEntityIdRange) {
438
+ warnedEntityIdRange = true;
439
+ console.warn('[Renderer] expressId exceeds 24-bit seam-ID encoding range; seam lines may collide.');
440
+ }
441
+ entityId = entityId & MAX_ENCODED_ENTITY_ID;
442
+ }
424
443
  for (let i = 0; i < vertexCount; i++) {
425
444
  const srcIdx = i * 3;
426
445
  vertexData[outIdx++] = positions[srcIdx];
@@ -429,6 +448,7 @@ export class Scene {
429
448
  vertexData[outIdx++] = normals[srcIdx];
430
449
  vertexData[outIdx++] = normals[srcIdx + 1];
431
450
  vertexData[outIdx++] = normals[srcIdx + 2];
451
+ vertexDataU32[outIdx++] = entityId;
432
452
  }
433
453
  // Copy indices with vertex base offset
434
454
  // Use subarray for slightly better cache locality