@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/CHANGELOG.md +27 -2
- package/README.md +26 -10
- package/dist/index.cjs +662 -282
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +662 -282
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.d.ts +56 -4
- package/src/wavefront-compute.js +728 -259
package/package.json
CHANGED
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:
|
|
955
|
+
sceneObjectRecordBytes: 160;
|
|
904
956
|
meshVertexRecordBytes: 48;
|
|
905
957
|
meshRangeRecordBytes: 240;
|
|
906
958
|
triangleRecordBytes: 352;
|