gdcore-tools 2.0.0-gd-v5.5.234-autobuild → 2.0.0-gd-v5.5.235-autobuild
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,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(
|
|
1
|
+
var gdjs;(function(e){const d=!1;e.PixiFiltersTools.registerFilterCreator("Scene3D::DirectionalLight",new class{makeFilter(u,c){return typeof THREE=="undefined"?new e.PixiFiltersTools.EmptyFilter:new class{constructor(){this._isEnabled=!1;this._top="Y-";this._elevation=45;this._rotation=0;this._shadowMapDirty=!0;this._shadowMapSize=1024;this._minimumShadowBias=0;this._shadowCameraDirty=!0;this._distanceFromCamera=1500;this._frustumSize=4e3;this._light=new THREE.DirectionalLight,d?this._shadowCameraHelper=new THREE.CameraHelper(this._light.shadow.camera):this._shadowCameraHelper=null,this._light.shadow.camera.updateProjectionMatrix()}_updateShadowCamera(){!this._shadowCameraDirty||(this._shadowCameraDirty=!1,this._light.shadow.camera.near=1,this._light.shadow.camera.far=this._distanceFromCamera+1e4,this._light.shadow.camera.right=this._frustumSize/2,this._light.shadow.camera.left=-this._frustumSize/2,this._light.shadow.camera.top=this._frustumSize/2,this._light.shadow.camera.bottom=-this._frustumSize/2)}_updateShadowMapSize(){!this._shadowMapDirty||(this._shadowMapDirty=!1,this._light.shadow.mapSize.set(this._shadowMapSize,this._shadowMapSize),this._light.shadow.map?.dispose(),this._light.shadow.map=null,this._light.shadow.needsUpdate=!0)}isEnabled(t){return this._isEnabled}setEnabled(t,i){return this._isEnabled===i?!0:i?this.applyEffect(t):this.removeEffect(t)}applyEffect(t){const i=t.get3DRendererObject();return i?(i.add(this._light),i.add(this._light.target),this._shadowCameraHelper&&i.add(this._shadowCameraHelper),this._isEnabled=!0,!0):!1}removeEffect(t){const i=t.get3DRendererObject();return i?(i.remove(this._light),i.remove(this._light.target),this._shadowCameraHelper&&i.remove(this._shadowCameraHelper),this._isEnabled=!1,!0):!1}updatePreRender(t){this._updateShadowCamera(),this._updateShadowMapSize();const i=this._shadowMapSize<1024?2:this._shadowMapSize<2048?1.25:1;if(this._light.shadow.bias=-this._minimumShadowBias*i,!t.getRuntimeLayer)return;const s=t.getRuntimeLayer(),_=s.getCameraX(),m=s.getCameraY(),f=s.getCameraZ(s.getInitialCamera3DFieldOfView()),a=Math.floor(_/100)*100,r=Math.floor(m/100)*100,o=Math.floor(f/100)*100;if(this._top==="Y-"){const h=a+this._distanceFromCamera*Math.cos(e.toRad(this._rotation+90))*Math.cos(e.toRad(this._elevation)),n=r-this._distanceFromCamera*Math.sin(e.toRad(this._elevation)),l=o+this._distanceFromCamera*Math.sin(e.toRad(this._rotation+90))*Math.cos(e.toRad(this._elevation));this._light.position.set(h,n,l),this._light.target.position.set(a,r,o)}else{const h=a+this._distanceFromCamera*Math.cos(e.toRad(this._rotation+90))*Math.cos(e.toRad(this._elevation)),n=r+this._distanceFromCamera*Math.sin(e.toRad(this._rotation+90))*Math.cos(e.toRad(this._elevation)),l=o+this._distanceFromCamera*Math.sin(e.toRad(this._elevation));this._light.position.set(h,n,l),this._light.target.position.set(a,r,o)}}updateDoubleParameter(t,i){t==="intensity"?this._light.intensity=i:t==="elevation"?this._elevation=i:t==="rotation"?this._rotation=i:t==="distanceFromCamera"?this._distanceFromCamera=i:t==="frustumSize"?this._frustumSize=i:t==="minimumShadowBias"&&(this._minimumShadowBias=i)}getDoubleParameter(t){return t==="intensity"?this._light.intensity:t==="elevation"?this._elevation:t==="rotation"?this._rotation:t==="distanceFromCamera"?this._distanceFromCamera:t==="frustumSize"?this._frustumSize:t==="minimumShadowBias"?this._minimumShadowBias:0}updateStringParameter(t,i){t==="color"&&(this._light.color=new THREE.Color(e.rgbOrHexStringToNumber(i))),t==="shadowQuality"&&(i==="low"&&this._shadowMapSize!==512&&(this._shadowMapSize=512,this._shadowMapDirty=!0),i==="medium"&&this._shadowMapSize!==1024&&(this._shadowMapSize=1024,this._shadowMapDirty=!0),i==="high"&&this._shadowMapSize!==2048&&(this._shadowMapSize=2048,this._shadowMapDirty=!0))}updateColorParameter(t,i){t==="color"&&this._light.color.setHex(i)}getColorParameter(t){return t==="color"?this._light.color.getHex():0}updateBooleanParameter(t,i){t==="isCastingShadow"&&(this._light.castShadow=i)}getNetworkSyncData(){return{i:this._light.intensity,c:this._light.color.getHex(),e:this._elevation,r:this._rotation,t:this._top}}updateFromNetworkSyncData(t){this._light.intensity=t.i,this._light.color.setHex(t.c),this._elevation=t.e,this._rotation=t.r,this._top=t.t}}}})})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=DirectionalLight.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/3D/DirectionalLight.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n interface DirectionalLightFilterNetworkSyncData {\n i: number;\n c: number;\n e: number;\n r: number;\n t: string;\n }\n const shadowHelper = false;\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::DirectionalLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n private _light: THREE.DirectionalLight;\n private _isEnabled: boolean = false;\n private _top: string = 'Y-';\n private _elevation: float = 45;\n private _rotation: float = 0;\n\n private _shadowMapDirty = true;\n private _shadowMapSize: float = 1024;\n\n private _shadowCameraDirty = true;\n private _distanceFromCamera: float = 1500;\n private _frustumSize: float = 4000;\n private _shadowCameraHelper: THREE.CameraHelper | null;\n\n constructor() {\n this._light = new THREE.DirectionalLight();\n\n if (shadowHelper) {\n this._shadowCameraHelper = new THREE.CameraHelper(\n this._light.shadow.camera\n );\n } else {\n this._shadowCameraHelper = null;\n }\n\n this._light.shadow.camera.updateProjectionMatrix();\n }\n\n private _updateShadowCamera(): void {\n if (!this._shadowCameraDirty) {\n return;\n }\n this._shadowCameraDirty = false;\n\n this._light.shadow.camera.near = 1;\n this._light.shadow.camera.far = this._distanceFromCamera + 10000;\n this._light.shadow.camera.right = this._frustumSize / 2;\n this._light.shadow.camera.left = -this._frustumSize / 2;\n this._light.shadow.camera.top = this._frustumSize / 2;\n this._light.shadow.camera.bottom = -this._frustumSize / 2;\n }\n\n private _updateShadowMapSize(): void {\n if (!this._shadowMapDirty) {\n return;\n }\n this._shadowMapDirty = false;\n\n // Avoid shadow acne due to depth buffer precision. We choose a value\n // small enough to avoid \"peter panning\" but not too small to avoid\n // shadow acne on low/medium quality shadow maps.\n // If needed, this could become a parameter of the effect.\n this._light.shadow.bias =\n this._shadowMapSize < 1024\n ? -0.002\n : this._shadowMapSize < 2048\n ? -0.001\n : -0.0008;\n\n this._light.shadow.mapSize.set(\n this._shadowMapSize,\n this._shadowMapSize\n );\n\n // Force the recreation of the shadow map texture:\n this._light.shadow.map?.dispose();\n this._light.shadow.map = null;\n this._light.shadow.needsUpdate = true;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this._light);\n scene.add(this._light.target);\n if (this._shadowCameraHelper) {\n scene.add(this._shadowCameraHelper);\n }\n\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this._light);\n scene.remove(this._light.target);\n if (this._shadowCameraHelper) {\n scene.remove(this._shadowCameraHelper);\n }\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {\n this._updateShadowCamera();\n this._updateShadowMapSize();\n\n if (!target.getRuntimeLayer) {\n return;\n }\n const layer = target.getRuntimeLayer();\n const x = layer.getCameraX();\n const y = layer.getCameraY();\n const z = layer.getCameraZ(layer.getInitialCamera3DFieldOfView());\n\n const roundedX = Math.floor(x / 100) * 100;\n const roundedY = Math.floor(y / 100) * 100;\n const roundedZ = Math.floor(z / 100) * 100;\n if (this._top === 'Y-') {\n const posLightX =\n roundedX +\n this._distanceFromCamera *\n Math.cos(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightY =\n roundedY -\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._elevation));\n const posLightZ =\n roundedZ +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n this._light.position.set(posLightX, posLightY, posLightZ);\n this._light.target.position.set(roundedX, roundedY, roundedZ);\n } else {\n const posLightX =\n roundedX +\n this._distanceFromCamera *\n Math.cos(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightY =\n roundedY +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightZ =\n roundedZ +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._elevation));\n\n this._light.position.set(posLightX, posLightY, posLightZ);\n this._light.target.position.set(roundedX, roundedY, roundedZ);\n }\n }\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this._light.intensity = value;\n } else if (parameterName === 'elevation') {\n this._elevation = value;\n } else if (parameterName === 'rotation') {\n this._rotation = value;\n } else if (parameterName === 'distanceFromCamera') {\n this._distanceFromCamera = value;\n } else if (parameterName === 'frustumSize') {\n this._frustumSize = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this._light.intensity;\n } else if (parameterName === 'elevation') {\n return this._elevation;\n } else if (parameterName === 'rotation') {\n return this._rotation;\n } else if (parameterName === 'distanceFromCamera') {\n return this._distanceFromCamera;\n } else if (parameterName === 'frustumSize') {\n return this._frustumSize;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this._light.color = new THREE.Color(\n gdjs.rgbOrHexStringToNumber(value)\n );\n }\n if (parameterName === 'shadowQuality') {\n if (value === 'low' && this._shadowMapSize !== 512) {\n this._shadowMapSize = 512;\n this._shadowMapDirty = true;\n }\n if (value === 'medium' && this._shadowMapSize !== 1024) {\n this._shadowMapSize = 1024;\n this._shadowMapDirty = true;\n }\n if (value === 'high' && this._shadowMapSize !== 2048) {\n this._shadowMapSize = 2048;\n this._shadowMapDirty = true;\n }\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this._light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this._light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {\n if (parameterName === 'isCastingShadow') {\n this._light.castShadow = value;\n }\n }\n getNetworkSyncData(): DirectionalLightFilterNetworkSyncData {\n return {\n i: this._light.intensity,\n c: this._light.color.getHex(),\n e: this._elevation,\n r: this._rotation,\n t: this._top,\n };\n }\n updateFromNetworkSyncData(syncData: any): void {\n this._light.intensity = syncData.i;\n this._light.color.setHex(syncData.c);\n this._elevation = syncData.e;\n this._rotation = syncData.r;\n this._top = syncData.t;\n }\n })();\n }\n })()\n );\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAQE,KAAM,GAAe,GACrB,EAAK,iBAAiB,sBACpB,4BACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n interface DirectionalLightFilterNetworkSyncData {\n i: number;\n c: number;\n e: number;\n r: number;\n t: string;\n }\n const shadowHelper = false;\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::DirectionalLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n private _light: THREE.DirectionalLight;\n private _isEnabled: boolean = false;\n private _top: string = 'Y-';\n private _elevation: float = 45;\n private _rotation: float = 0;\n\n private _shadowMapDirty = true;\n private _shadowMapSize: float = 1024;\n private _minimumShadowBias: float = 0;\n\n private _shadowCameraDirty = true;\n private _distanceFromCamera: float = 1500;\n private _frustumSize: float = 4000;\n private _shadowCameraHelper: THREE.CameraHelper | null;\n\n constructor() {\n this._light = new THREE.DirectionalLight();\n\n if (shadowHelper) {\n this._shadowCameraHelper = new THREE.CameraHelper(\n this._light.shadow.camera\n );\n } else {\n this._shadowCameraHelper = null;\n }\n\n this._light.shadow.camera.updateProjectionMatrix();\n }\n\n private _updateShadowCamera(): void {\n if (!this._shadowCameraDirty) {\n return;\n }\n this._shadowCameraDirty = false;\n\n this._light.shadow.camera.near = 1;\n this._light.shadow.camera.far = this._distanceFromCamera + 10000;\n this._light.shadow.camera.right = this._frustumSize / 2;\n this._light.shadow.camera.left = -this._frustumSize / 2;\n this._light.shadow.camera.top = this._frustumSize / 2;\n this._light.shadow.camera.bottom = -this._frustumSize / 2;\n }\n\n private _updateShadowMapSize(): void {\n if (!this._shadowMapDirty) {\n return;\n }\n this._shadowMapDirty = false;\n\n this._light.shadow.mapSize.set(\n this._shadowMapSize,\n this._shadowMapSize\n );\n\n // Force the recreation of the shadow map texture:\n this._light.shadow.map?.dispose();\n this._light.shadow.map = null;\n this._light.shadow.needsUpdate = true;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this._light);\n scene.add(this._light.target);\n if (this._shadowCameraHelper) {\n scene.add(this._shadowCameraHelper);\n }\n\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this._light);\n scene.remove(this._light.target);\n if (this._shadowCameraHelper) {\n scene.remove(this._shadowCameraHelper);\n }\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {\n // Apply any update to the camera or shadow map size.\n this._updateShadowCamera();\n this._updateShadowMapSize();\n\n // Avoid shadow acne due to depth buffer precision.\n const biasMultiplier =\n this._shadowMapSize < 1024\n ? 2\n : this._shadowMapSize < 2048\n ? 1.25\n : 1;\n this._light.shadow.bias = -this._minimumShadowBias * biasMultiplier;\n\n // Apply update to the light position and its target.\n // By doing this, the shadows are \"following\" the GDevelop camera.\n if (!target.getRuntimeLayer) {\n return;\n }\n const layer = target.getRuntimeLayer();\n const x = layer.getCameraX();\n const y = layer.getCameraY();\n const z = layer.getCameraZ(layer.getInitialCamera3DFieldOfView());\n\n const roundedX = Math.floor(x / 100) * 100;\n const roundedY = Math.floor(y / 100) * 100;\n const roundedZ = Math.floor(z / 100) * 100;\n if (this._top === 'Y-') {\n const posLightX =\n roundedX +\n this._distanceFromCamera *\n Math.cos(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightY =\n roundedY -\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._elevation));\n const posLightZ =\n roundedZ +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n this._light.position.set(posLightX, posLightY, posLightZ);\n this._light.target.position.set(roundedX, roundedY, roundedZ);\n } else {\n const posLightX =\n roundedX +\n this._distanceFromCamera *\n Math.cos(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightY =\n roundedY +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._rotation + 90)) *\n Math.cos(gdjs.toRad(this._elevation));\n const posLightZ =\n roundedZ +\n this._distanceFromCamera *\n Math.sin(gdjs.toRad(this._elevation));\n\n this._light.position.set(posLightX, posLightY, posLightZ);\n this._light.target.position.set(roundedX, roundedY, roundedZ);\n }\n }\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this._light.intensity = value;\n } else if (parameterName === 'elevation') {\n this._elevation = value;\n } else if (parameterName === 'rotation') {\n this._rotation = value;\n } else if (parameterName === 'distanceFromCamera') {\n this._distanceFromCamera = value;\n } else if (parameterName === 'frustumSize') {\n this._frustumSize = value;\n } else if (parameterName === 'minimumShadowBias') {\n this._minimumShadowBias = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this._light.intensity;\n } else if (parameterName === 'elevation') {\n return this._elevation;\n } else if (parameterName === 'rotation') {\n return this._rotation;\n } else if (parameterName === 'distanceFromCamera') {\n return this._distanceFromCamera;\n } else if (parameterName === 'frustumSize') {\n return this._frustumSize;\n } else if (parameterName === 'minimumShadowBias') {\n return this._minimumShadowBias;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this._light.color = new THREE.Color(\n gdjs.rgbOrHexStringToNumber(value)\n );\n }\n if (parameterName === 'shadowQuality') {\n if (value === 'low' && this._shadowMapSize !== 512) {\n this._shadowMapSize = 512;\n this._shadowMapDirty = true;\n }\n if (value === 'medium' && this._shadowMapSize !== 1024) {\n this._shadowMapSize = 1024;\n this._shadowMapDirty = true;\n }\n if (value === 'high' && this._shadowMapSize !== 2048) {\n this._shadowMapSize = 2048;\n this._shadowMapDirty = true;\n }\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this._light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this._light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {\n if (parameterName === 'isCastingShadow') {\n this._light.castShadow = value;\n }\n }\n getNetworkSyncData(): DirectionalLightFilterNetworkSyncData {\n return {\n i: this._light.intensity,\n c: this._light.color.getHex(),\n e: this._elevation,\n r: this._rotation,\n t: this._top,\n };\n }\n updateFromNetworkSyncData(syncData: any): void {\n this._light.intensity = syncData.i;\n this._light.color.setHex(syncData.c);\n this._elevation = syncData.e;\n this._rotation = syncData.r;\n this._top = syncData.t;\n }\n })();\n }\n })()\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1949,6 +1949,18 @@ module.exports = {
|
|
|
1949
1949
|
.setLabel(_('Shadow quality'))
|
|
1950
1950
|
.setType('choice')
|
|
1951
1951
|
.setGroup(_('Shadows'));
|
|
1952
|
+
properties
|
|
1953
|
+
.getOrCreate('minimumShadowBias')
|
|
1954
|
+
.setValue('0')
|
|
1955
|
+
.setLabel(_('Shadow bias'))
|
|
1956
|
+
.setDescription(
|
|
1957
|
+
_(
|
|
1958
|
+
'Use this to avoid "shadow acne" due to depth buffer precision. Choose a value small enough like 0.001 to avoid creating distance between shadows and objects but not too small to avoid shadow glitches on low/medium quality. This value is used for high quality, and multiplied by 1.25 for medium quality and 2 for low quality.'
|
|
1959
|
+
)
|
|
1960
|
+
)
|
|
1961
|
+
.setType('number')
|
|
1962
|
+
.setGroup(_('Shadows'))
|
|
1963
|
+
.setAdvanced(true);
|
|
1952
1964
|
properties
|
|
1953
1965
|
.getOrCreate('frustumSize')
|
|
1954
1966
|
.setValue('4000')
|
package/dist/lib/libGD.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED