@zephyr3d/scene 0.4.0 → 0.6.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.
- package/dist/animation/animation.js +25 -117
- package/dist/animation/animation.js.map +1 -1
- package/dist/animation/animationset.js +191 -51
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/animationtrack.js +6 -18
- package/dist/animation/animationtrack.js.map +1 -1
- package/dist/animation/eulerrotationtrack.js +16 -6
- package/dist/animation/eulerrotationtrack.js.map +1 -1
- package/dist/animation/morphtarget.js +104 -0
- package/dist/animation/morphtarget.js.map +1 -0
- package/dist/animation/morphtrack.js +70 -0
- package/dist/animation/morphtrack.js.map +1 -0
- package/dist/animation/rotationtrack.js +15 -7
- package/dist/animation/rotationtrack.js.map +1 -1
- package/dist/animation/scaletrack.js +15 -7
- package/dist/animation/scaletrack.js.map +1 -1
- package/dist/animation/skeleton.js +107 -5
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/translationtrack.js +15 -7
- package/dist/animation/translationtrack.js.map +1 -1
- package/dist/app.js +4 -26
- package/dist/app.js.map +1 -1
- package/dist/asset/assetmanager.js +60 -109
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/loaders/dds/dds.js +77 -3
- package/dist/asset/loaders/dds/dds.js.map +1 -1
- package/dist/asset/loaders/dds/dds_loader.js +1 -1
- package/dist/asset/loaders/gltf/gltf_loader.js +287 -40
- package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
- package/dist/asset/loaders/image/tga_Loader.js +1 -1
- package/dist/asset/loaders/image/webimage_loader.js +16 -0
- package/dist/asset/loaders/image/webimage_loader.js.map +1 -1
- package/dist/asset/model.js +16 -9
- package/dist/asset/model.js.map +1 -1
- package/dist/blitter/bilateralblur.js +222 -0
- package/dist/{render/temporalcache.js.map → blitter/bilateralblur.js.map} +1 -1
- package/dist/blitter/blitter.js +9 -3
- package/dist/blitter/blitter.js.map +1 -1
- package/dist/blitter/depthlimitedgaussion.js +96 -39
- package/dist/blitter/depthlimitedgaussion.js.map +1 -1
- package/dist/blitter/gaussianblur.js +21 -21
- package/dist/camera/camera.js +200 -4
- package/dist/camera/camera.js.map +1 -1
- package/dist/index.d.ts +6406 -5786
- package/dist/index.js +12 -10
- package/dist/index.js.map +1 -1
- package/dist/material/blinn.js +15 -4
- package/dist/material/blinn.js.map +1 -1
- package/dist/material/lambert.js +26 -17
- package/dist/material/lambert.js.map +1 -1
- package/dist/material/material.js +13 -2
- package/dist/material/material.js.map +1 -1
- package/dist/material/meshmaterial.js +103 -31
- package/dist/material/meshmaterial.js.map +1 -1
- package/dist/material/mixins/albedocolor.js +5 -4
- package/dist/material/mixins/albedocolor.js.map +1 -1
- package/dist/material/mixins/lightmodel/blinnphong.js +17 -7
- package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
- package/dist/material/mixins/lightmodel/lambert.js +5 -5
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +16 -7
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js +16 -7
- package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
- package/dist/material/mixins/lit.js +2 -2
- package/dist/material/mixins/pbr/common.js +454 -19
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/pbrmr.js +28 -6
- package/dist/material/pbrmr.js.map +1 -1
- package/dist/material/pbrsg.js +27 -9
- package/dist/material/pbrsg.js.map +1 -1
- package/dist/material/shader/helper.js +128 -23
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/unlit.js +8 -4
- package/dist/material/unlit.js.map +1 -1
- package/dist/posteffect/bloom.js +34 -53
- package/dist/posteffect/bloom.js.map +1 -1
- package/dist/posteffect/compositor.js +48 -58
- package/dist/posteffect/compositor.js.map +1 -1
- package/dist/posteffect/fxaa.js +3 -11
- package/dist/posteffect/fxaa.js.map +1 -1
- package/dist/posteffect/grayscale.js +3 -11
- package/dist/posteffect/grayscale.js.map +1 -1
- package/dist/posteffect/posteffect.js +4 -0
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/sao.js +55 -48
- package/dist/posteffect/sao.js.map +1 -1
- package/dist/posteffect/ssr.js +536 -0
- package/dist/{material/lit.js.map → posteffect/ssr.js.map} +1 -1
- package/dist/posteffect/tonemap.js +3 -11
- package/dist/posteffect/tonemap.js.map +1 -1
- package/dist/posteffect/water.js +306 -340
- package/dist/posteffect/water.js.map +1 -1
- package/dist/render/abuffer_oit.js +2 -2
- package/dist/render/clipmap.js +16 -19
- package/dist/render/clipmap.js.map +1 -1
- package/dist/render/cull_visitor.js +8 -6
- package/dist/render/cull_visitor.js.map +1 -1
- package/dist/render/depthpass.js +30 -14
- package/dist/render/depthpass.js.map +1 -1
- package/dist/render/drawable_mixin.js +70 -22
- package/dist/render/drawable_mixin.js.map +1 -1
- package/dist/render/envlight.js +169 -33
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/fft_wavegenerator.js +989 -0
- package/dist/{shaders/framework.js.map → render/fft_wavegenerator.js.map} +1 -1
- package/dist/render/gerstner_wavegenerator.js +265 -0
- package/dist/{material/standard.js.map → render/gerstner_wavegenerator.js.map} +1 -1
- package/dist/render/globalbindgroup_allocator.js +2 -1
- package/dist/render/globalbindgroup_allocator.js.map +1 -1
- package/dist/render/hzb.js +273 -0
- package/dist/{material/terrainlightmodel.js.map → render/hzb.js.map} +1 -1
- package/dist/render/lightpass.js +68 -28
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/objectcolorpass.js +51 -0
- package/dist/render/objectcolorpass.js.map +1 -0
- package/dist/render/render_queue.js +211 -158
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderbundle_wrapper.js +79 -0
- package/dist/render/renderbundle_wrapper.js.map +1 -1
- package/dist/render/renderer.js +151 -35
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/renderpass.js +27 -20
- package/dist/render/renderpass.js.map +1 -1
- package/dist/render/shadowmap_pass.js +20 -14
- package/dist/render/shadowmap_pass.js.map +1 -1
- package/dist/render/sky.js +12 -13
- package/dist/render/sky.js.map +1 -1
- package/dist/render/watermesh.js +94 -828
- package/dist/render/watermesh.js.map +1 -1
- package/dist/render/wavegenerator.js +8 -0
- package/dist/render/wavegenerator.js.map +1 -0
- package/dist/render/weightedblended_oit.js +11 -28
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/batchgroup.js +60 -14
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +24 -3
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/graph_node.js +0 -14
- package/dist/scene/graph_node.js.map +1 -1
- package/dist/scene/light.js +5 -5
- package/dist/scene/mesh.js +62 -15
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/octree.js +5 -2
- package/dist/scene/octree.js.map +1 -1
- package/dist/scene/raycast_visitor.js +4 -2
- package/dist/scene/raycast_visitor.js.map +1 -1
- package/dist/scene/scene.js +6 -9
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +11 -8
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/scene/terrain/grass.js +10 -2
- package/dist/scene/terrain/grass.js.map +1 -1
- package/dist/scene/terrain/heightfield.js +135 -53
- package/dist/scene/terrain/heightfield.js.map +1 -1
- package/dist/scene/terrain/patch.js +10 -2
- package/dist/scene/terrain/patch.js.map +1 -1
- package/dist/scene/terrain/quadtree.js +2 -2
- package/dist/scene/terrain/terrain.js +1 -1
- package/dist/scene/xform.js +7 -9
- package/dist/scene/xform.js.map +1 -1
- package/dist/shaders/misc.js +10 -1
- package/dist/shaders/misc.js.map +1 -1
- package/dist/shaders/noise.js +81 -16
- package/dist/shaders/noise.js.map +1 -1
- package/dist/shaders/shadow.js +1 -9
- package/dist/shaders/shadow.js.map +1 -1
- package/dist/shaders/ssr.js +442 -0
- package/dist/{material/terrainmat.js.map → shaders/ssr.js.map} +1 -1
- package/dist/shaders/water.js +377 -250
- package/dist/shaders/water.js.map +1 -1
- package/dist/shadow/esm.js +4 -22
- package/dist/shadow/esm.js.map +1 -1
- package/dist/shadow/shadowmapper.js +56 -31
- package/dist/shadow/shadowmapper.js.map +1 -1
- package/dist/shadow/vsm.js +4 -24
- package/dist/shadow/vsm.js.map +1 -1
- package/dist/shapes/cylinder.js +6 -5
- package/dist/shapes/cylinder.js.map +1 -1
- package/dist/utility/bounding_volume.js +1 -53
- package/dist/utility/bounding_volume.js.map +1 -1
- package/dist/utility/draco/decoder.js +116 -0
- package/dist/utility/draco/decoder.js.map +1 -0
- package/dist/utility/misc.js +93 -0
- package/dist/utility/misc.js.map +1 -0
- package/dist/utility/shprojection.js +2 -7
- package/dist/utility/shprojection.js.map +1 -1
- package/dist/utility/textures/ggxlut.js +213 -0
- package/dist/utility/textures/ggxlut.js.map +1 -0
- package/dist/utility/textures/gradientnoise.js +61 -0
- package/dist/utility/textures/gradientnoise.js.map +1 -0
- package/dist/utility/textures/randomnoise.js +41 -0
- package/dist/utility/textures/randomnoise.js.map +1 -0
- package/dist/values.js +25 -1
- package/dist/values.js.map +1 -1
- package/package.json +5 -8
- package/dist/animation/usertrack.js +0 -47
- package/dist/animation/usertrack.js.map +0 -1
- package/dist/material/grassmat.js +0 -127
- package/dist/material/grassmat.js.map +0 -1
- package/dist/material/lightmodel.js +0 -2074
- package/dist/material/lightmodel.js.map +0 -1
- package/dist/material/lit.js +0 -578
- package/dist/material/mixins/pbr/metallicroughness.js +0 -126
- package/dist/material/mixins/pbr/metallicroughness.js.map +0 -1
- package/dist/material/mixins/pbr/specularglossness.js +0 -104
- package/dist/material/mixins/pbr/specularglossness.js.map +0 -1
- package/dist/material/pbr.js +0 -27
- package/dist/material/pbr.js.map +0 -1
- package/dist/material/standard.js +0 -282
- package/dist/material/terrainlightmodel.js +0 -259
- package/dist/material/terrainmat.js +0 -357
- package/dist/render/depth_pass.js +0 -47
- package/dist/render/depth_pass.js.map +0 -1
- package/dist/render/forward.js +0 -186
- package/dist/render/forward.js.map +0 -1
- package/dist/render/forward_pass.js +0 -137
- package/dist/render/forward_pass.js.map +0 -1
- package/dist/render/helper.js +0 -38
- package/dist/render/helper.js.map +0 -1
- package/dist/render/renderscheme.js +0 -61
- package/dist/render/renderscheme.js.map +0 -1
- package/dist/render/temporalcache.js +0 -222
- package/dist/scene/model.js +0 -111
- package/dist/scene/model.js.map +0 -1
- package/dist/scene/octree_update_visitor.js +0 -20
- package/dist/scene/octree_update_visitor.js.map +0 -1
- package/dist/shaders/builtins.js +0 -110
- package/dist/shaders/builtins.js.map +0 -1
- package/dist/shaders/framework.js +0 -723
- package/dist/shaders/lighting.js +0 -335
- package/dist/shaders/lighting.js.map +0 -1
- package/dist/utility/sheenlut.js +0 -196
- package/dist/utility/sheenlut.js.map +0 -1
package/dist/render/lightpass.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RenderPass } from './renderpass.js';
|
|
2
|
-
import { RENDER_PASS_TYPE_LIGHT, QUEUE_OPAQUE, QUEUE_TRANSPARENT } from '../values.js';
|
|
2
|
+
import { RENDER_PASS_TYPE_LIGHT, MaterialVaryingFlags, QUEUE_OPAQUE, QUEUE_TRANSPARENT } from '../values.js';
|
|
3
3
|
import { Vector4 } from '@zephyr3d/base';
|
|
4
4
|
import { ShaderHelper } from '../material/shader/helper.js';
|
|
5
5
|
|
|
@@ -8,14 +8,21 @@ import { ShaderHelper } from '../material/shader/helper.js';
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/ class LightPass extends RenderPass {
|
|
10
10
|
/** @internal */ _shadowMapHash;
|
|
11
|
+
/** @internal */ _transmission;
|
|
11
12
|
/**
|
|
12
13
|
* Creates an instance of ForwardRenderPass
|
|
13
14
|
*/ constructor(){
|
|
14
15
|
super(RENDER_PASS_TYPE_LIGHT);
|
|
15
16
|
this._shadowMapHash = null;
|
|
16
17
|
}
|
|
18
|
+
/** @internal */ get transmission() {
|
|
19
|
+
return this._transmission;
|
|
20
|
+
}
|
|
21
|
+
set transmission(val) {
|
|
22
|
+
this._transmission = val;
|
|
23
|
+
}
|
|
17
24
|
/** @internal */ _getGlobalBindGroupHash(ctx) {
|
|
18
|
-
return `lp:${this._shadowMapHash}:${ctx.
|
|
25
|
+
return `lp:${this._shadowMapHash}:${ctx.oit?.calculateHash() ?? ''}:${ctx.env.getHash(ctx)}`;
|
|
19
26
|
}
|
|
20
27
|
/** @internal */ renderLightPass(ctx, itemList, lights, flags) {
|
|
21
28
|
const baseLightPass = !ctx.lightBlending;
|
|
@@ -55,8 +62,10 @@ import { ShaderHelper } from '../material/shader/helper.js';
|
|
|
55
62
|
ctx.env = ctx.scene.env;
|
|
56
63
|
ctx.drawEnvLight = false;
|
|
57
64
|
ctx.flip = this.isAutoFlip(ctx);
|
|
58
|
-
const
|
|
59
|
-
|
|
65
|
+
const ssr = !!(ctx.materialFlags & MaterialVaryingFlags.SSR_STORE_ROUGHNESS);
|
|
66
|
+
const tmpFramebuffer = ssr ? ctx.device.pool.fetchTemporalFramebuffer(false, ctx.device.getDrawingBufferWidth(), ctx.device.getDrawingBufferHeight(), ctx.device.getFramebuffer().getColorAttachments()[0], ctx.device.getFramebuffer().getDepthAttachment()) : null;
|
|
67
|
+
const oit = renderQueue.drawTransparent && ctx.primaryCamera.oit && ctx.primaryCamera.oit.supportDevice(ctx.device.type) ? ctx.primaryCamera.oit : null;
|
|
68
|
+
if (!oit && renderQueue.drawTransparent) {
|
|
60
69
|
renderQueue.sortTransparentItems(ctx.primaryCamera.getWorldPosition());
|
|
61
70
|
}
|
|
62
71
|
const flags = {
|
|
@@ -64,24 +73,27 @@ import { ShaderHelper } from '../material/shader/helper.js';
|
|
|
64
73
|
cameraSet: {},
|
|
65
74
|
fogSet: {}
|
|
66
75
|
};
|
|
67
|
-
const
|
|
76
|
+
const items = renderQueue.itemList;
|
|
77
|
+
const lists = this._transmission ? [
|
|
78
|
+
items?.transmission,
|
|
79
|
+
items?.transmission_trans,
|
|
80
|
+
items?.transparent
|
|
81
|
+
] : [
|
|
82
|
+
items?.opaque,
|
|
83
|
+
items?.transparent
|
|
84
|
+
];
|
|
68
85
|
for(let i = 0; i < 2; i++){
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
86
|
+
if (lists[i]) {
|
|
87
|
+
ctx.applyFog = i === 1 && ctx.env.sky.fogType !== 'none' ? ctx.env.sky.fogType : null;
|
|
88
|
+
ctx.queue = i === 0 ? QUEUE_OPAQUE : QUEUE_TRANSPARENT;
|
|
89
|
+
ctx.oit = i === 0 || !items ? null : oit;
|
|
90
|
+
const numOitPasses = ctx.oit ? ctx.oit.begin(ctx) : 1;
|
|
91
|
+
for(let p = 0; p < numOitPasses; p++){
|
|
92
|
+
if (ctx.oit) {
|
|
93
|
+
if (!ctx.oit.beginPass(ctx, p)) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
77
96
|
}
|
|
78
|
-
}
|
|
79
|
-
for (const order of orders){
|
|
80
|
-
const items = renderQueue.items[order];
|
|
81
|
-
const lists = [
|
|
82
|
-
items.opaque,
|
|
83
|
-
items.transparent
|
|
84
|
-
];
|
|
85
97
|
let lightIndex = 0;
|
|
86
98
|
if (ctx.shadowMapInfo) {
|
|
87
99
|
for (const k of ctx.shadowMapInfo.keys()){
|
|
@@ -98,25 +110,53 @@ import { ShaderHelper } from '../material/shader/helper.js';
|
|
|
98
110
|
ctx.currentShadowLight = null;
|
|
99
111
|
ctx.lightBlending = lightIndex > 0;
|
|
100
112
|
this._shadowMapHash = '';
|
|
113
|
+
if (ctx.lightBlending && tmpFramebuffer) {
|
|
114
|
+
ctx.materialFlags &= ~MaterialVaryingFlags.SSR_STORE_ROUGHNESS;
|
|
115
|
+
ctx.device.pushDeviceStates();
|
|
116
|
+
ctx.device.setFramebuffer(tmpFramebuffer);
|
|
117
|
+
}
|
|
101
118
|
this.renderLightPass(ctx, lists[i], renderQueue.unshadowedLights, flags);
|
|
119
|
+
if (ctx.lightBlending && tmpFramebuffer) {
|
|
120
|
+
ctx.materialFlags |= MaterialVaryingFlags.SSR_STORE_ROUGHNESS;
|
|
121
|
+
ctx.device.popDeviceStates();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (ctx.oit) {
|
|
125
|
+
ctx.oit.endPass(ctx, p);
|
|
102
126
|
}
|
|
103
127
|
}
|
|
104
128
|
if (ctx.oit) {
|
|
105
|
-
ctx.oit.
|
|
129
|
+
ctx.oit.end(ctx);
|
|
106
130
|
}
|
|
107
131
|
}
|
|
108
|
-
if (ctx.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
132
|
+
if (i === 0 && !ctx.sceneColorTexture) {
|
|
133
|
+
if (tmpFramebuffer) {
|
|
134
|
+
ctx.device.pushDeviceStates();
|
|
135
|
+
ctx.device.setFramebuffer(tmpFramebuffer);
|
|
136
|
+
}
|
|
112
137
|
ctx.env.sky.skyWorldMatrix = ctx.scene.rootNode.worldMatrix;
|
|
113
138
|
ctx.env.sky.renderSky(ctx);
|
|
139
|
+
if (tmpFramebuffer) {
|
|
140
|
+
ctx.device.popDeviceStates();
|
|
141
|
+
}
|
|
114
142
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
143
|
+
if (!renderQueue.needSceneColor || ctx.sceneColorTexture) {
|
|
144
|
+
if (i === 0) {
|
|
145
|
+
if (tmpFramebuffer) {
|
|
146
|
+
ctx.device.pushDeviceStates();
|
|
147
|
+
ctx.device.setFramebuffer(tmpFramebuffer);
|
|
148
|
+
}
|
|
149
|
+
ctx.env.sky.renderFog(ctx);
|
|
150
|
+
if (tmpFramebuffer) {
|
|
151
|
+
ctx.device.popDeviceStates();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
ctx.compositor?.drawPostEffects(ctx, i === 0, ctx.linearDepthTexture);
|
|
118
155
|
}
|
|
119
156
|
}
|
|
157
|
+
if (tmpFramebuffer) {
|
|
158
|
+
ctx.device.pool.releaseFrameBuffer(tmpFramebuffer);
|
|
159
|
+
}
|
|
120
160
|
}
|
|
121
161
|
}
|
|
122
162
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightpass.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lightpass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { RenderPass } from './renderpass.js';
|
|
2
|
+
import { RENDER_PASS_TYPE_OBJECT_COLOR } from '../values.js';
|
|
3
|
+
import { ShaderHelper } from '../material/shader/helper.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Object color render pass
|
|
7
|
+
* @internal
|
|
8
|
+
*/ class ObjectColorPass extends RenderPass {
|
|
9
|
+
/**
|
|
10
|
+
* Creates an instance of ForwardRenderPass
|
|
11
|
+
*/ constructor(){
|
|
12
|
+
super(RENDER_PASS_TYPE_OBJECT_COLOR);
|
|
13
|
+
}
|
|
14
|
+
/** @internal */ _getGlobalBindGroupHash(ctx) {
|
|
15
|
+
return 'ocp';
|
|
16
|
+
}
|
|
17
|
+
/** @internal */ renderItems(ctx, renderQueue) {
|
|
18
|
+
const items = renderQueue.itemList;
|
|
19
|
+
if (items) {
|
|
20
|
+
ctx.applyFog = null;
|
|
21
|
+
ctx.drawEnvLight = false;
|
|
22
|
+
ctx.env = null;
|
|
23
|
+
ctx.picking = true;
|
|
24
|
+
ctx.flip = this.isAutoFlip(ctx);
|
|
25
|
+
ctx.renderPassHash = this.getGlobalBindGroupHash(ctx);
|
|
26
|
+
const bindGroup = ctx.globalBindGroupAllocator.getGlobalBindGroup(ctx);
|
|
27
|
+
ctx.device.setBindGroup(0, bindGroup);
|
|
28
|
+
ShaderHelper.setCameraUniforms(bindGroup, ctx.camera, ctx.flip, true);
|
|
29
|
+
const reverseWinding = ctx.camera.worldMatrixDet < 0;
|
|
30
|
+
for (const list of [
|
|
31
|
+
items.opaque,
|
|
32
|
+
items.transmission,
|
|
33
|
+
items.transparent,
|
|
34
|
+
items.transmission_trans
|
|
35
|
+
]){
|
|
36
|
+
if (list) {
|
|
37
|
+
for (const lit of list.lit){
|
|
38
|
+
this.drawItemList(lit, ctx, reverseWinding);
|
|
39
|
+
}
|
|
40
|
+
for (const unlit of list.unlit){
|
|
41
|
+
this.drawItemList(unlit, ctx, reverseWinding);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ctx.picking = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { ObjectColorPass };
|
|
51
|
+
//# sourceMappingURL=objectcolorpass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectcolorpass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|