@plasius/gpu-renderer 0.2.6 → 0.2.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasius/gpu-renderer",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Framework-agnostic WebGPU renderer runtime for Plasius projects.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/src/index.d.ts CHANGED
@@ -42,6 +42,27 @@ export interface WavefrontTextureSampleInput {
42
42
  readonly data: Uint8ClampedArray | Uint8Array | readonly number[];
43
43
  }
44
44
 
45
+ export interface WavefrontMediumInput {
46
+ readonly id?: number;
47
+ readonly mediumId?: number;
48
+ readonly phaseModel?: number | "isotropic";
49
+ readonly density?: number;
50
+ readonly attenuationColor?: RendererColor | readonly number[];
51
+ readonly attenuationDistance?: number;
52
+ readonly absorption?: readonly [number, number, number] | readonly number[];
53
+ readonly scattering?: readonly [number, number, number] | readonly number[];
54
+ }
55
+
56
+ export interface WavefrontVolumeInput {
57
+ readonly thickness?: number;
58
+ readonly phaseModel?: number | "isotropic";
59
+ readonly density?: number;
60
+ readonly attenuationColor?: RendererColor | readonly number[];
61
+ readonly attenuationDistance?: number;
62
+ readonly absorption?: readonly [number, number, number] | readonly number[];
63
+ readonly scattering?: readonly [number, number, number] | readonly number[];
64
+ }
65
+
45
66
  export interface WavefrontCameraOptions {
46
67
  readonly position?: readonly [number, number, number] | readonly number[];
47
68
  readonly target?: readonly [number, number, number] | readonly number[];
@@ -62,6 +83,9 @@ export interface WavefrontSceneObjectInput {
62
83
  readonly type?: WavefrontSceneObjectKind;
63
84
  readonly materialKind?: WavefrontMaterialKind;
64
85
  readonly flags?: number;
86
+ readonly mediumRefId?: number;
87
+ readonly mediumId?: number;
88
+ readonly medium?: WavefrontMediumInput | null;
65
89
  readonly center?: readonly [number, number, number] | readonly number[];
66
90
  readonly position?: readonly [number, number, number] | readonly number[];
67
91
  readonly radius?: number;
@@ -90,7 +114,9 @@ export interface WavefrontSceneObjectInput {
90
114
  readonly clearcoatRoughness?: number;
91
115
  readonly specular?: number;
92
116
  readonly specularColor?: RendererColor | readonly number[];
117
+ readonly thickness?: number;
93
118
  readonly transmission?: number;
119
+ readonly volume?: WavefrontVolumeInput | null;
94
120
  readonly material?: {
95
121
  readonly kind?: WavefrontMaterialKind;
96
122
  readonly color?: RendererColor | readonly number[];
@@ -108,7 +134,11 @@ export interface WavefrontSceneObjectInput {
108
134
  readonly clearcoatRoughness?: number;
109
135
  readonly specular?: number;
110
136
  readonly specularColor?: RendererColor | readonly number[];
137
+ readonly thickness?: number;
111
138
  readonly transmission?: number;
139
+ readonly medium?: WavefrontMediumInput | null;
140
+ readonly mediumId?: number;
141
+ readonly volume?: WavefrontVolumeInput | null;
112
142
  };
113
143
  }
114
144
 
@@ -117,6 +147,8 @@ export interface WavefrontSceneObject {
117
147
  readonly kind: number;
118
148
  readonly materialKind: number;
119
149
  readonly flags: number;
150
+ readonly mediumRefId: number;
151
+ readonly medium: WavefrontMediumInput | null;
120
152
  readonly center: readonly [number, number, number] | readonly number[];
121
153
  readonly halfExtent: readonly [number, number, number] | readonly number[];
122
154
  readonly color: readonly [number, number, number, number] | readonly number[];
@@ -132,6 +164,7 @@ export interface WavefrontSceneObject {
132
164
  readonly clearcoatRoughness: number;
133
165
  readonly specular: number;
134
166
  readonly specularColor: readonly [number, number, number, number] | readonly number[];
167
+ readonly thickness: number;
135
168
  readonly transmission: number;
136
169
  }
137
170
 
@@ -165,7 +198,9 @@ export interface WavefrontMeshInput {
165
198
  readonly clearcoatRoughness?: number;
166
199
  readonly specular?: number;
167
200
  readonly specularColor?: RendererColor | readonly number[];
201
+ readonly thickness?: number;
168
202
  readonly transmission?: number;
203
+ readonly volume?: WavefrontVolumeInput | null;
169
204
  readonly material?: {
170
205
  readonly kind?: WavefrontMaterialKind;
171
206
  readonly color?: RendererColor | readonly number[];
@@ -183,8 +218,12 @@ export interface WavefrontMeshInput {
183
218
  readonly clearcoatRoughness?: number;
184
219
  readonly specular?: number;
185
220
  readonly specularColor?: RendererColor | readonly number[];
221
+ readonly thickness?: number;
186
222
  readonly transmission?: number;
187
223
  readonly id?: number;
224
+ readonly medium?: WavefrontMediumInput | null;
225
+ readonly mediumId?: number;
226
+ readonly volume?: WavefrontVolumeInput | null;
188
227
  readonly baseColorTexture?: WavefrontTextureSampleInput | null;
189
228
  readonly metallicRoughnessTexture?: WavefrontTextureSampleInput | null;
190
229
  readonly normalTexture?: WavefrontTextureSampleInput | null;
@@ -196,9 +235,7 @@ export interface WavefrontMeshInput {
196
235
  readonly normalTexture?: WavefrontTextureSampleInput | null;
197
236
  readonly occlusionTexture?: WavefrontTextureSampleInput | null;
198
237
  readonly emissiveTexture?: WavefrontTextureSampleInput | null;
199
- readonly medium?: {
200
- readonly id?: number;
201
- };
238
+ readonly medium?: WavefrontMediumInput | null;
202
239
  }
203
240
 
204
241
  export interface WavefrontTriangleRecord {
@@ -346,6 +383,7 @@ export interface WavefrontGpuMeshSource {
346
383
  readonly flags: number;
347
384
  readonly materialRefId: number;
348
385
  readonly mediumRefId: number;
386
+ readonly medium: WavefrontMediumInput | null;
349
387
  readonly color: readonly number[];
350
388
  readonly emission: readonly number[];
351
389
  readonly roughness: number;
@@ -359,6 +397,7 @@ export interface WavefrontGpuMeshSource {
359
397
  readonly clearcoatRoughness: number;
360
398
  readonly specular: number;
361
399
  readonly specularColor: readonly [number, number, number, number] | readonly number[];
400
+ readonly thickness: number;
362
401
  readonly transmission: number;
363
402
  readonly baseColorTexture: WavefrontTextureSampleInput | null;
364
403
  readonly metallicRoughnessTexture: WavefrontTextureSampleInput | null;
@@ -478,6 +517,16 @@ export interface WavefrontPathTracingComputeConfig {
478
517
  readonly sceneObjects: readonly WavefrontSceneObject[];
479
518
  readonly sceneObjectCount: number;
480
519
  readonly sceneObjectCapacity: number;
520
+ readonly mediums: readonly Readonly<{
521
+ readonly id: number;
522
+ readonly phaseModel: number;
523
+ readonly density: number;
524
+ readonly attenuationColor: readonly [number, number, number, number] | readonly number[];
525
+ readonly attenuationDistance: number;
526
+ readonly absorption: readonly [number, number, number] | readonly number[];
527
+ readonly scattering: readonly [number, number, number] | readonly number[];
528
+ }>[];
529
+ readonly mediumCount: number;
481
530
  readonly accelerationBuildMode: WavefrontAccelerationBuildMode;
482
531
  readonly gpuAccelerationBuildRequired: boolean;
483
532
  readonly gpuMeshSource: WavefrontGpuMeshSource;
@@ -622,6 +671,7 @@ export interface CreateWavefrontPathTracingComputeRendererOptions {
622
671
  readonly tilePixelCapacity?: number;
623
672
  readonly sceneObjectCapacity?: number;
624
673
  readonly sceneObjects?: readonly WavefrontSceneObjectInput[];
674
+ readonly mediums?: readonly WavefrontMediumInput[];
625
675
  readonly mesh?: WavefrontMeshInput;
626
676
  readonly meshes?: readonly WavefrontMeshInput[];
627
677
  readonly triangleCapacity?: number;
@@ -689,6 +739,7 @@ export interface WavefrontPathTracingComputeRenderer {
689
739
  emissiveTriangleCount: number;
690
740
  environmentPortalCount: number;
691
741
  environmentPortalMode: 0 | 1 | 2;
742
+ mediumCount: number;
692
743
  environmentMap: WavefrontEnvironmentMapSnapshot;
693
744
  deferredPathResolve: boolean;
694
745
  bvhNodeCount: number;
@@ -723,6 +774,7 @@ export interface WavefrontPathTracingComputeFrameStats {
723
774
  readonly emissiveTriangleCount: number;
724
775
  readonly environmentPortalCount: number;
725
776
  readonly environmentPortalMode: 0 | 1 | 2;
777
+ readonly mediumCount: number;
726
778
  readonly environmentMap: WavefrontEnvironmentMapSnapshot;
727
779
  readonly deferredPathResolve: boolean;
728
780
  readonly bvhNodeCount: number;
@@ -900,7 +952,7 @@ export const wavefrontPathTracingComputeLimits: Readonly<{
900
952
  traceStorageBufferBindings: number;
901
953
  rayRecordBytes: 80;
902
954
  hitRecordBytes: 256;
903
- sceneObjectRecordBytes: 144;
955
+ sceneObjectRecordBytes: 160;
904
956
  meshVertexRecordBytes: 48;
905
957
  meshRangeRecordBytes: 240;
906
958
  triangleRecordBytes: 352;