Skip to content

Commit 7b168b0

Browse files
committed
feat: add support of transparency shadow and active by default.
#619
1 parent a92ba6d commit 7b168b0

File tree

11 files changed

+85
-53
lines changed

11 files changed

+85
-53
lines changed

editor/src/editor/layout/inspector/light/shadows.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ export class EditorLightShadowsInspector extends Component<IEditorLightShadowsIn
107107
generator.autoCalcDepthBoundsRefreshRate = 60;
108108
}
109109

110+
if (!isPointLight(this.props.light)) {
111+
generator.usePercentageCloserFiltering = true;
112+
generator.filteringQuality = ShadowGenerator.QUALITY_HIGH;
113+
}
114+
115+
generator.transparencyShadow = true;
116+
generator.enableSoftTransparentShadow = true;
117+
110118
if (renderList) {
111119
generator.getShadowMap()?.renderList?.push(...renderList);
112120
} else {
@@ -274,6 +282,9 @@ export class EditorLightShadowsInspector extends Component<IEditorLightShadowsIn
274282
onChange={() => updateLightShadowMapRefreshRate(this.props.light)}
275283
/>
276284
)}
285+
286+
<EditorInspectorSwitchField object={generator} property="transparencyShadow" label="Enable Transparency Shadow" />
287+
<EditorInspectorSwitchField object={generator} property="enableSoftTransparentShadow" label="Enable Soft Transparent Shadow" />
277288
</EditorInspectorSectionField>
278289
);
279290
}
@@ -339,6 +350,9 @@ export class EditorLightShadowsInspector extends Component<IEditorLightShadowsIn
339350
label="Penumbra Darkness"
340351
onChange={() => updateLightShadowMapRefreshRate(this.props.light)}
341352
/>
353+
354+
<EditorInspectorSwitchField object={generator} property="transparencyShadow" label="Enable Transparency Shadow" />
355+
<EditorInspectorSwitchField object={generator} property="enableSoftTransparentShadow" label="Enable Soft Transparent Shadow" />
342356
</>
343357
);
344358
}

templates/nextjs/assets/cube.material

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,9 @@
179179
"backFaceCulling": true,
180180
"cullBackFaces": true,
181181
"sideOrientation": 1,
182-
"alphaMode": 2,
182+
"_alphaMode": [
183+
2
184+
],
183185
"_needDepthPrePass": false,
184186
"disableDepthWrite": false,
185187
"disableColorWrite": false,
@@ -192,15 +194,20 @@
192194
"zOffsetUnits": 0,
193195
"pointsCloud": false,
194196
"fillMode": 0,
197+
"_setVertexOutputInvariant": false,
195198
"transparencyMode": 0,
196199
"stencil": {
197200
"tags": null,
198201
"func": 519,
202+
"backFunc": 519,
199203
"funcRef": 1,
200204
"funcMask": 255,
201205
"opStencilFail": 7680,
202206
"opDepthFail": 7680,
203207
"opStencilDepthPass": 7681,
208+
"backOpStencilFail": 7680,
209+
"backOpDepthFail": 7680,
210+
"backOpStencilDepthPass": 7681,
204211
"mask": 255,
205212
"enabled": false
206213
},
@@ -213,6 +220,10 @@
213220
"useSphericalHarmonics": true,
214221
"useSpecularGlossinessInputEnergyConservation": true,
215222
"mixIblRadianceWithIrradiance": true,
223+
"useLegacySpecularEnergyConservation": true,
224+
"baseDiffuseModel": 0,
225+
"dielectricSpecularModel": 0,
226+
"conductorSpecularModel": 0,
216227
"name": "PBRBRDF",
217228
"priority": 90,
218229
"resolveIncludes": false,
@@ -315,7 +326,7 @@
315326
"useMaskFromThicknessTexture": false,
316327
"useGltfStyleTextures": false,
317328
"applyAlbedoAfterSubSurface": false,
318-
"legacyTransluceny": false,
329+
"legacyTranslucency": false,
319330
"name": "PBRSubSurface",
320331
"priority": 130,
321332
"resolveIncludes": false,
@@ -332,13 +343,6 @@
332343
"priority": 140,
333344
"resolveIncludes": false,
334345
"registerForExtraEvents": false
335-
},
336-
"DepthSensingMaterialPlugin": {
337-
"tags": null,
338-
"name": "DepthSensing",
339-
"priority": 222,
340-
"resolveIncludes": false,
341-
"registerForExtraEvents": false
342346
}
343347
},
344348
"customType": "BABYLON.PBRMaterial"

templates/nextjs/assets/example.scene/cameras/3ee0f345-7bea-4f59-a657-28c90a7d5e74.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
],
1313
"checkCollisions": false,
1414
"applyGravity": false,
15-
"ignoreParentScaling": false,
1615
"updateUpVectorFromRotation": false,
1716
"rotation": [
1817
0.13716683763979895,
@@ -43,7 +42,7 @@
4342
"id": "3ee0f345-7bea-4f59-a657-28c90a7d5e74",
4443
"state": "",
4544
"metadata": {},
46-
"uniqueId": 18,
45+
"uniqueId": 20,
4746
"type": "UniversalCamera",
4847
"inputsmgr": {
4948
"FreeCameraKeyboardMoveInput": {

templates/nextjs/assets/example.scene/config.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
"cameraId": "3ee0f345-7bea-4f59-a657-28c90a7d5e74"
116116
}
117117
],
118+
"metadata": {},
118119
"editorCamera": {
119120
"tags": null,
120121
"ellipsoid": [
@@ -129,7 +130,6 @@
129130
],
130131
"checkCollisions": false,
131132
"applyGravity": false,
132-
"ignoreParentScaling": false,
133133
"updateUpVectorFromRotation": false,
134134
"rotation": [
135135
0.1371668477935948,
@@ -159,7 +159,7 @@
159159
"name": "Editor preview",
160160
"id": "3cc9ef80-8c60-43e0-bcc4-1b55ff36010d",
161161
"state": "",
162-
"uniqueId": 3,
162+
"uniqueId": 5,
163163
"type": "EditorCamera",
164164
"inputsmgr": {
165165
"FreeCameraKeyboardMoveInput": {
@@ -204,6 +204,9 @@
204204
"wheelPrecisionX": 3,
205205
"wheelPrecisionY": 3,
206206
"wheelPrecisionZ": 3
207+
},
208+
"EditorFreeCameraPanInput": {
209+
"tags": null
207210
}
208211
},
209212
"animations": [],

templates/nextjs/assets/example.scene/meshes/0fe36208-15f6-4366-a95f-7a324d858364.json

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,9 @@
328328
"backFaceCulling": true,
329329
"cullBackFaces": true,
330330
"sideOrientation": 1,
331-
"alphaMode": 2,
331+
"_alphaMode": [
332+
2
333+
],
332334
"_needDepthPrePass": false,
333335
"disableDepthWrite": false,
334336
"disableColorWrite": false,
@@ -341,15 +343,20 @@
341343
"zOffsetUnits": 0,
342344
"pointsCloud": false,
343345
"fillMode": 0,
346+
"_setVertexOutputInvariant": false,
344347
"transparencyMode": 0,
345348
"stencil": {
346349
"tags": null,
347350
"func": 519,
351+
"backFunc": 519,
348352
"funcRef": 1,
349353
"funcMask": 255,
350354
"opStencilFail": 7680,
351355
"opDepthFail": 7680,
352356
"opStencilDepthPass": 7681,
357+
"backOpStencilFail": 7680,
358+
"backOpDepthFail": 7680,
359+
"backOpStencilDepthPass": 7681,
353360
"mask": 255,
354361
"enabled": false
355362
},
@@ -362,6 +369,10 @@
362369
"useSphericalHarmonics": true,
363370
"useSpecularGlossinessInputEnergyConservation": true,
364371
"mixIblRadianceWithIrradiance": true,
372+
"useLegacySpecularEnergyConservation": true,
373+
"baseDiffuseModel": 0,
374+
"dielectricSpecularModel": 0,
375+
"conductorSpecularModel": 0,
365376
"name": "PBRBRDF",
366377
"priority": 90,
367378
"resolveIncludes": false,
@@ -464,7 +475,7 @@
464475
"useMaskFromThicknessTexture": false,
465476
"useGltfStyleTextures": false,
466477
"applyAlbedoAfterSubSurface": false,
467-
"legacyTransluceny": false,
478+
"legacyTranslucency": false,
468479
"name": "PBRSubSurface",
469480
"priority": 130,
470481
"resolveIncludes": false,
@@ -481,13 +492,6 @@
481492
"priority": 140,
482493
"resolveIncludes": false,
483494
"registerForExtraEvents": false
484-
},
485-
"DepthSensingMaterialPlugin": {
486-
"tags": null,
487-
"name": "DepthSensing",
488-
"priority": 222,
489-
"resolveIncludes": false,
490-
"registerForExtraEvents": false
491495
}
492496
},
493497
"customType": "BABYLON.PBRMaterial"

templates/nextjs/assets/example.scene/meshes/6a927ea7-51d9-4248-9b80-4d34b53b386e.json

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,9 @@
173173
"backFaceCulling": true,
174174
"cullBackFaces": true,
175175
"sideOrientation": 1,
176-
"alphaMode": 2,
176+
"_alphaMode": [
177+
2
178+
],
177179
"_needDepthPrePass": false,
178180
"disableDepthWrite": false,
179181
"disableColorWrite": false,
@@ -186,27 +188,24 @@
186188
"zOffsetUnits": 0,
187189
"pointsCloud": false,
188190
"fillMode": 0,
191+
"_setVertexOutputInvariant": false,
189192
"stencil": {
190193
"tags": null,
191194
"func": 519,
195+
"backFunc": 519,
192196
"funcRef": 1,
193197
"funcMask": 255,
194198
"opStencilFail": 7680,
195199
"opDepthFail": 7680,
196200
"opStencilDepthPass": 7681,
201+
"backOpStencilFail": 7680,
202+
"backOpDepthFail": 7680,
203+
"backOpStencilDepthPass": 7681,
197204
"mask": 255,
198205
"enabled": false
199206
},
200207
"uniqueId": 1705193880869.0974,
201-
"plugins": {
202-
"DepthSensingMaterialPlugin": {
203-
"tags": null,
204-
"name": "DepthSensing",
205-
"priority": 222,
206-
"resolveIncludes": false,
207-
"registerForExtraEvents": false
208-
}
209-
},
208+
"plugins": {},
210209
"customType": "BABYLON.SkyMaterial"
211210
}
212211
],

templates/nextjs/assets/example.scene/meshes/c04fac55-2089-4c99-bb08-39044d112145.json

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,9 @@
333333
"backFaceCulling": true,
334334
"cullBackFaces": true,
335335
"sideOrientation": 1,
336-
"alphaMode": 2,
336+
"_alphaMode": [
337+
2
338+
],
337339
"_needDepthPrePass": false,
338340
"disableDepthWrite": false,
339341
"disableColorWrite": false,
@@ -346,15 +348,20 @@
346348
"zOffsetUnits": 0,
347349
"pointsCloud": false,
348350
"fillMode": 0,
351+
"_setVertexOutputInvariant": false,
349352
"transparencyMode": 0,
350353
"stencil": {
351354
"tags": null,
352355
"func": 519,
356+
"backFunc": 519,
353357
"funcRef": 1,
354358
"funcMask": 255,
355359
"opStencilFail": 7680,
356360
"opDepthFail": 7680,
357361
"opStencilDepthPass": 7681,
362+
"backOpStencilFail": 7680,
363+
"backOpDepthFail": 7680,
364+
"backOpStencilDepthPass": 7681,
358365
"mask": 255,
359366
"enabled": false
360367
},
@@ -367,6 +374,10 @@
367374
"useSphericalHarmonics": true,
368375
"useSpecularGlossinessInputEnergyConservation": true,
369376
"mixIblRadianceWithIrradiance": true,
377+
"useLegacySpecularEnergyConservation": true,
378+
"baseDiffuseModel": 0,
379+
"dielectricSpecularModel": 0,
380+
"conductorSpecularModel": 0,
370381
"name": "PBRBRDF",
371382
"priority": 90,
372383
"resolveIncludes": false,
@@ -469,7 +480,7 @@
469480
"useMaskFromThicknessTexture": false,
470481
"useGltfStyleTextures": false,
471482
"applyAlbedoAfterSubSurface": false,
472-
"legacyTransluceny": false,
483+
"legacyTranslucency": false,
473484
"name": "PBRSubSurface",
474485
"priority": 130,
475486
"resolveIncludes": false,
@@ -486,13 +497,6 @@
486497
"priority": 140,
487498
"resolveIncludes": false,
488499
"registerForExtraEvents": false
489-
},
490-
"DepthSensingMaterialPlugin": {
491-
"tags": null,
492-
"name": "DepthSensing",
493-
"priority": 222,
494-
"resolveIncludes": false,
495-
"registerForExtraEvents": false
496500
}
497501
},
498502
"customType": "BABYLON.PBRMaterial"

templates/nextjs/assets/example.scene/shadowGenerators/9242a5b8-a8b8-41d2-94ea-968e4fc3dd61.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"mapSize": 4096,
66
"forceBackFacesOnly": false,
77
"darkness": 0,
8-
"transparencyShadow": false,
8+
"transparencyShadow": true,
99
"frustumEdgeFalloff": 0,
1010
"bias": 0.002680000000000003,
1111
"normalBias": 0,

0 commit comments

Comments
 (0)