@vived/component-abb-6700 1.0.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/.todo.md +13 -0
- package/README.md +122 -0
- package/dist/.gitkeep +0 -0
- package/dist/Adapters/aBB6700PMAdapter.d.ts +10 -0
- package/dist/Adapters/aBB6700PMAdapter.d.ts.map +1 -0
- package/dist/Controllers/createABB6700.d.ts +12 -0
- package/dist/Controllers/createABB6700.d.ts.map +1 -0
- package/dist/Controllers/getPose.d.ts +11 -0
- package/dist/Controllers/getPose.d.ts.map +1 -0
- package/dist/Controllers/setJointAngle.d.ts +12 -0
- package/dist/Controllers/setJointAngle.d.ts.map +1 -0
- package/dist/Controllers/setPose.d.ts +11 -0
- package/dist/Controllers/setPose.d.ts.map +1 -0
- package/dist/Entities/ABB6700Entity.d.ts +35 -0
- package/dist/Entities/ABB6700Entity.d.ts.map +1 -0
- package/dist/Entities/ABB6700Repo.d.ts +32 -0
- package/dist/Entities/ABB6700Repo.d.ts.map +1 -0
- package/dist/Factory/ABB6700FeatureFactory.d.ts +26 -0
- package/dist/Factory/ABB6700FeatureFactory.d.ts.map +1 -0
- package/dist/Mocks/MockABB6700PM.d.ts +11 -0
- package/dist/Mocks/MockABB6700PM.d.ts.map +1 -0
- package/dist/Mocks/MockSetJointAngleUC.d.ts +7 -0
- package/dist/Mocks/MockSetJointAngleUC.d.ts.map +1 -0
- package/dist/Mocks/MockSetPoseUC.d.ts +7 -0
- package/dist/Mocks/MockSetPoseUC.d.ts.map +1 -0
- package/dist/PMs/ABB6700PM.d.ts +32 -0
- package/dist/PMs/ABB6700PM.d.ts.map +1 -0
- package/dist/UCs/CalcStabilizerUC.d.ts +7 -0
- package/dist/UCs/CalcStabilizerUC.d.ts.map +1 -0
- package/dist/UCs/SetJointAngleUC.d.ts +15 -0
- package/dist/UCs/SetJointAngleUC.d.ts.map +1 -0
- package/dist/UCs/SetPoseUC.d.ts +22 -0
- package/dist/UCs/SetPoseUC.d.ts.map +1 -0
- package/dist/Views/ABB6700BabylonView.d.ts +27 -0
- package/dist/Views/ABB6700BabylonView.d.ts.map +1 -0
- package/dist/abb_6700.glb +0 -0
- package/dist/abstractAudioBus-CyBWsmuN.js +14 -0
- package/dist/animationGroup-BhNThqQe.js +1454 -0
- package/dist/basisTextureLoader-BT391BsV.js +310 -0
- package/dist/brdfTextureTools-DUyKBAXf.js +79 -0
- package/dist/bumpFragment-Dd-ojPA1.js +134 -0
- package/dist/bumpFragment-KE1_PuMl.js +287 -0
- package/dist/bumpVertex-BcdvVFVx.js +8 -0
- package/dist/bumpVertexDeclaration-B5Uvs-RS.js +8 -0
- package/dist/bumpVertexDeclaration-ixSg-yGI.js +8 -0
- package/dist/clipPlaneFragment-DJwQynjA.js +136 -0
- package/dist/clipPlaneVertex-D4Wk50XG.js +376 -0
- package/dist/clipPlaneVertex-eQ147Tn2.js +350 -0
- package/dist/component.config.d.ts +17 -0
- package/dist/component.config.d.ts.map +1 -0
- package/dist/ddsTextureLoader-DeoF3iGO.js +331 -0
- package/dist/default.fragment-DKnTR9nY.js +548 -0
- package/dist/default.fragment-rIGWrUS5.js +486 -0
- package/dist/default.vertex-Bt5y1VyA.js +212 -0
- package/dist/default.vertex-Dext1liJ.js +224 -0
- package/dist/defaultUboDeclaration-BwslQZX8.js +11 -0
- package/dist/defaultUboDeclaration-DSXACgip.js +9 -0
- package/dist/easing-BAt0SO-B.js +163 -0
- package/dist/envTextureLoader-CBiW_Q-U.js +40 -0
- package/dist/exrTextureLoader-5SC6PKIA.js +740 -0
- package/dist/flowGraphApplyForceBlock-6e8-wcaw.js +32 -0
- package/dist/flowGraphApplyImpulseBlock-B27EZQow.js +32 -0
- package/dist/flowGraphArrayIndexBlock-DIUn5e4i.js +31 -0
- package/dist/flowGraphBezierCurveEasingBlock-BJmiHk40.js +25 -0
- package/dist/flowGraphBinaryOperationBlock-Bj7TANCc.js +25 -0
- package/dist/flowGraphBranchBlock-7CRvIKWc.js +19 -0
- package/dist/flowGraphCachedOperationBlock-CP1ZiuIB.js +26 -0
- package/dist/flowGraphCancelDelayBlock-DqtgzBGm.js +20 -0
- package/dist/flowGraphCodeExecutionBlock-CaYXCGqo.js +23 -0
- package/dist/flowGraphConditionalDataBlock-DJ7evX8_.js +28 -0
- package/dist/flowGraphConsoleLogBlock-cMkpqLzO.js +68 -0
- package/dist/flowGraphConstantBlock-JWybwT0A.js +28 -0
- package/dist/flowGraphContextBlock-CFDXHcbn.js +19 -0
- package/dist/flowGraphCounterBlock-B0uPkgw9.js +24 -0
- package/dist/flowGraphDataSwitchBlock-B0GSifvJ.js +27 -0
- package/dist/flowGraphDebounceBlock-CSw8zKym.js +24 -0
- package/dist/flowGraphDebugBlock-DiSR6Ahn.js +65 -0
- package/dist/flowGraphDoNBlock-C-48oQ2H.js +24 -0
- package/dist/flowGraphEasingBlock-DKUaE7Rp.js +50 -0
- package/dist/flowGraphFlipFlopBlock-DX5BGhMV.js +20 -0
- package/dist/flowGraphForLoopBlock-Di-Qwg23.js +27 -0
- package/dist/flowGraphFunctionReferenceBlock-D8X5TFsO.js +20 -0
- package/dist/flowGraphGLTFDataProvider-C4j7nPQv.js +16 -0
- package/dist/flowGraphGetAngularVelocityBlock-Cq-yTQ4D.js +31 -0
- package/dist/flowGraphGetAssetBlock-B36eioor.js +21 -0
- package/dist/flowGraphGetLinearVelocityBlock-MdrV0eUD.js +31 -0
- package/dist/flowGraphGetPhysicsMassPropertiesBlock-wXDZP1wM.js +30 -0
- package/dist/flowGraphGetPropertyBlock-eP0badwf.js +46 -0
- package/dist/flowGraphGetSoundVolumeBlock-D3gXGHXa.js +29 -0
- package/dist/flowGraphGetVariableBlock-C7-qZAec.js +31 -0
- package/dist/flowGraphIndexOfBlock-CC5l9n9P.js +31 -0
- package/dist/flowGraphInterpolationBlock-B6922jzt.js +50 -0
- package/dist/flowGraphIsKeyPressedBlock-X_iuiUOX.js +31 -0
- package/dist/flowGraphIsSoundPlayingBlock-DONQX8N8.js +29 -0
- package/dist/flowGraphJsonPointerParserBlock-DBH_gN8I.js +95 -0
- package/dist/flowGraphKeyDownEventBlock-D5T1Uyfv.js +26 -0
- package/dist/flowGraphKeyUpEventBlock-BPY_Kgkm.js +21 -0
- package/dist/flowGraphKeyboardEventBlock-C49fx3TC.js +20 -0
- package/dist/flowGraphMathBlocks-CkvrN3VJ.js +864 -0
- package/dist/flowGraphMathCombineExtractBlocks-QSjGlnoz.js +248 -0
- package/dist/flowGraphMatrixMathBlocks-B3D7Cz9p.js +117 -0
- package/dist/flowGraphMeshPickEventBlock-BBTz-taa.js +35 -0
- package/dist/flowGraphMultiGateBlock-BhY1y5BG.js +50 -0
- package/dist/flowGraphPauseAnimationBlock-CHZZXMbg.js +19 -0
- package/dist/flowGraphPauseSoundBlock-B7hMmJ0c.js +31 -0
- package/dist/flowGraphPhysicsCollisionEventBlock-CxoPpT-q.js +56 -0
- package/dist/flowGraphPlayAnimationBlock-DVAvIFux.js +99 -0
- package/dist/flowGraphPlaySoundBlock-DjHGrqbC.js +32 -0
- package/dist/flowGraphPointerDownEventBlock-qI-H0JST.js +31 -0
- package/dist/flowGraphPointerMoveEventBlock-DAi4VUyy.js +31 -0
- package/dist/flowGraphPointerOutEventBlock-CFtj68aC.js +21 -0
- package/dist/flowGraphPointerOverEventBlock-VxdHhFuu.js +23 -0
- package/dist/flowGraphPointerUpEventBlock-DRR1f07q.js +31 -0
- package/dist/flowGraphReceiveCustomEventBlock-B3bwdB66.js +52 -0
- package/dist/flowGraphSceneReadyEventBlock-Dy6lDT3j.js +23 -0
- package/dist/flowGraphSceneTickEventBlock-Bl9BF_Xw.js +32 -0
- package/dist/flowGraphSendCustomEventBlock-BAR4PGFq.js +35 -0
- package/dist/flowGraphSequenceBlock-veqU32ZZ.js +32 -0
- package/dist/flowGraphSetAngularVelocityBlock-Dj9b-zu6.js +31 -0
- package/dist/flowGraphSetDelayBlock-CMjudtvk.js +131 -0
- package/dist/flowGraphSetLinearVelocityBlock-DVDhhJBd.js +31 -0
- package/dist/flowGraphSetPhysicsMotionTypeBlock-CL3cxNCO.js +36 -0
- package/dist/flowGraphSetPropertyBlock-D3sWL3Ss.js +47 -0
- package/dist/flowGraphSetSoundVolumeBlock-CxVk45yR.js +32 -0
- package/dist/flowGraphSetVariableBlock-D1oJiwLj.js +47 -0
- package/dist/flowGraphSoundEndedEventBlock-CubEwii0.js +47 -0
- package/dist/flowGraphStopAnimationBlock-B9inwIQx.js +48 -0
- package/dist/flowGraphStopSoundBlock-BijIX2jC.js +31 -0
- package/dist/flowGraphSwitchBlock-BMhPb4OX.js +54 -0
- package/dist/flowGraphThrottleBlock-C7vrnkb1.js +37 -0
- package/dist/flowGraphTransformCoordinatesSystemBlock-DoISqaUG.js +29 -0
- package/dist/flowGraphTypeToTypeBlocks-CSML6QWx.js +57 -0
- package/dist/flowGraphUnaryOperationBlock-B0Shf-lJ.js +24 -0
- package/dist/flowGraphVectorMathBlocks-DoTRR_E0.js +178 -0
- package/dist/flowGraphWaitAllBlock-BvmDMc24.js +54 -0
- package/dist/flowGraphWhileLoopBlock-BaIq4-K2.js +27 -0
- package/dist/geometry.fragment-Bsis3UG2.js +275 -0
- package/dist/geometry.vertex-DskQ5b8j.js +222 -0
- package/dist/harmonicsFunctions-CtNrRfir.js +193 -0
- package/dist/harmonicsFunctions-PEz6APC7.js +18 -0
- package/dist/hdrTextureLoader-D9rYxJ9q.js +112 -0
- package/dist/helperFunctions-Bt7Zfkrp.js +89 -0
- package/dist/helperFunctions-CPmRxd37.js +121 -0
- package/dist/iesTextureLoader-BGUFjVhI.js +93 -0
- package/dist/index-CS3Icp_r.js +67657 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/ktxTextureLoader-cUaGg9_L.js +459 -0
- package/dist/lightFragment-BRDibDKG.js +404 -0
- package/dist/lightFragment-DCqtGMp_.js +402 -0
- package/dist/logDepthDeclaration-Bwm-3KyB.js +16 -0
- package/dist/logDepthDeclaration-gUfeSnXX.js +20 -0
- package/dist/logDepthVertex-CKeuJ6ae.js +213 -0
- package/dist/logDepthVertex-CXkmZels.js +459 -0
- package/dist/mesh.vertexData.functions-Bc9lJlrU.js +74 -0
- package/dist/oitFragment-B8zuQigp.js +792 -0
- package/dist/oitFragment-DH3h3T6x.js +657 -0
- package/dist/openpbr.fragment-BglYS6LA.js +1405 -0
- package/dist/openpbr.fragment-DrOTZs4m.js +1553 -0
- package/dist/openpbr.vertex-B-PaLFOR.js +384 -0
- package/dist/openpbr.vertex-DMdFRTnX.js +268 -0
- package/dist/openpbrMaterial-HCU0aOca.js +2880 -0
- package/dist/openpbrMaterialLoadingAdapter-CWRAa-7S.js +1122 -0
- package/dist/openpbrTransmissionLayerData-CfDVObj5.js +352 -0
- package/dist/openpbrUboDeclaration-CA2pvSbt.js +9 -0
- package/dist/openpbrUboDeclaration-xU8VOaib.js +10 -0
- package/dist/pass.fragment-1mMP54bb.js +10 -0
- package/dist/pass.fragment-DzaUp_jk.js +10 -0
- package/dist/passCube.fragment-CQaXS7g3.js +29 -0
- package/dist/passCube.fragment-QJGPwAXI.js +29 -0
- package/dist/pbr.fragment-BnaAAGxb.js +2775 -0
- package/dist/pbr.fragment-CYZk_EGU.js +2619 -0
- package/dist/pbr.vertex-CyvdCw91.js +372 -0
- package/dist/pbr.vertex-DJMAkDxs.js +270 -0
- package/dist/pbrBRDFFunctions-EugoWm6O.js +175 -0
- package/dist/pbrDebug-Bk3sPoEG.js +719 -0
- package/dist/pbrDebug-Cdalzb1I.js +614 -0
- package/dist/pbrIBLFunctions-B0bVAXCF.js +47 -0
- package/dist/pbrIBLFunctions-C06z-ouZ.js +51 -0
- package/dist/pbrMaterial-C4FCKBZQ.js +1660 -0
- package/dist/pbrMaterialLoadingAdapter-BGHlS_ZN.js +1032 -0
- package/dist/pbrUboDeclaration-1lN5_-Bw.js +9 -0
- package/dist/pbrUboDeclaration-BJOUUOZ2.js +10 -0
- package/dist/procedural.vertex-CFPKczKj.js +14 -0
- package/dist/procedural.vertex-DUW7bYZt.js +13 -0
- package/dist/rgbdDecode.fragment-CEGgE4tL.js +8 -0
- package/dist/rgbdDecode.fragment-FT0wkgah.js +8 -0
- package/dist/rgbdEncode.fragment-CLnJJf6E.js +8 -0
- package/dist/rgbdEncode.fragment-CaAcMsY9.js +8 -0
- package/dist/sceneUboDeclaration-B6oxsfcj.js +8 -0
- package/dist/sceneUboDeclaration-JByfVKik.js +13 -0
- package/dist/setupABB6700InstanceFactory.d.ts +7 -0
- package/dist/setupABB6700InstanceFactory.d.ts.map +1 -0
- package/dist/studio.env +0 -0
- package/dist/textureProcessor.fragment-BYPw6SMQ.js +152 -0
- package/dist/textureProcessor.fragment-Ciw9-F3w.js +157 -0
- package/dist/textureTools-Cct_bGgp.js +40 -0
- package/dist/tgaTextureLoader-BJOIdnFr.js +198 -0
- package/dist/thinEngine-Bt9FW4dD.js +2425 -0
- package/dist/webAudioBus-BUzRHSxr.js +88 -0
- package/dist/webAudioMainBus-Dds1TgJG.js +49 -0
- package/package.json +49 -0
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const i = "decalFragment", o = `#ifdef DECAL
|
|
3
|
+
var decalTempColor=decalColor.rgb;var decalTempAlpha=decalColor.a;
|
|
4
|
+
#ifdef GAMMADECAL
|
|
5
|
+
decalTempColor=toLinearSpaceVec3(decalColor.rgb);
|
|
6
|
+
#endif
|
|
7
|
+
#ifdef DECAL_SMOOTHALPHA
|
|
8
|
+
decalTempAlpha=decalColor.a*decalColor.a;
|
|
9
|
+
#endif
|
|
10
|
+
surfaceAlbedo=mix(surfaceAlbedo.rgb,decalTempColor,decalTempAlpha);
|
|
11
|
+
#endif
|
|
12
|
+
`;
|
|
13
|
+
e.IncludesShadersStoreWGSL[i] || (e.IncludesShadersStoreWGSL[i] = o);
|
|
14
|
+
const t = "lightFragment", n = `#ifdef LIGHT{X}
|
|
15
|
+
#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
|
|
16
|
+
#else
|
|
17
|
+
var diffuse{X}: vec4f=light{X}.vLightDiffuse;
|
|
18
|
+
#define CUSTOM_LIGHT{X}_COLOR
|
|
19
|
+
#if defined(PBR) && defined(CLUSTLIGHT{X})
|
|
20
|
+
{let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(
|
|
21
|
+
lightDataTexture{X},
|
|
22
|
+
&tileMaskBuffer{X},
|
|
23
|
+
light{X}.vLightData,
|
|
24
|
+
vec2u(light{X}.vSliceRanges[sliceIndex].xy),
|
|
25
|
+
viewDirectionW,
|
|
26
|
+
normalW,
|
|
27
|
+
fragmentInputs.vPositionW,
|
|
28
|
+
surfaceAlbedo,
|
|
29
|
+
reflectivityOut,
|
|
30
|
+
#ifdef IRIDESCENCE
|
|
31
|
+
iridescenceIntensity,
|
|
32
|
+
#endif
|
|
33
|
+
#ifdef SS_TRANSLUCENCY
|
|
34
|
+
subSurfaceOut,
|
|
35
|
+
#endif
|
|
36
|
+
#ifdef SPECULARTERM
|
|
37
|
+
AARoughnessFactors.x,
|
|
38
|
+
#endif
|
|
39
|
+
#ifdef ANISOTROPIC
|
|
40
|
+
anisotropicOut,
|
|
41
|
+
#endif
|
|
42
|
+
#ifdef SHEEN
|
|
43
|
+
sheenOut,
|
|
44
|
+
#endif
|
|
45
|
+
#ifdef CLEARCOAT
|
|
46
|
+
clearcoatOut,
|
|
47
|
+
#endif
|
|
48
|
+
);}
|
|
49
|
+
#elif defined(PBR)
|
|
50
|
+
#ifdef SPOTLIGHT{X}
|
|
51
|
+
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
|
|
52
|
+
#elif defined(POINTLIGHT{X})
|
|
53
|
+
preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);
|
|
54
|
+
#elif defined(HEMILIGHT{X})
|
|
55
|
+
preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
|
|
56
|
+
#elif defined(DIRLIGHT{X})
|
|
57
|
+
preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);
|
|
58
|
+
#elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
59
|
+
#if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
|
|
60
|
+
preInfo=computeAreaPreLightingInfoWithTexture(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,rectAreaLightEmissionTexture{X},rectAreaLightEmissionTexture{X}Sampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
|
|
61
|
+
#else
|
|
62
|
+
preInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);
|
|
63
|
+
#endif
|
|
64
|
+
#endif
|
|
65
|
+
preInfo.NdotV=NdotV;
|
|
66
|
+
#ifdef SPOTLIGHT{X}
|
|
67
|
+
#ifdef LIGHT_FALLOFF_GLTF{X}
|
|
68
|
+
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
|
|
69
|
+
#ifdef IESLIGHTTEXTURE{X}
|
|
70
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
|
|
71
|
+
#else
|
|
72
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
|
|
73
|
+
#endif
|
|
74
|
+
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
|
|
75
|
+
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
|
|
76
|
+
#ifdef IESLIGHTTEXTURE{X}
|
|
77
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
|
|
78
|
+
#else
|
|
79
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);
|
|
80
|
+
#endif
|
|
81
|
+
#elif defined(LIGHT_FALLOFF_STANDARD{X})
|
|
82
|
+
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
|
|
83
|
+
#ifdef IESLIGHTTEXTURE{X}
|
|
84
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
|
|
85
|
+
#else
|
|
86
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);
|
|
87
|
+
#endif
|
|
88
|
+
#else
|
|
89
|
+
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
|
|
90
|
+
#ifdef IESLIGHTTEXTURE{X}
|
|
91
|
+
preInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);
|
|
92
|
+
#else
|
|
93
|
+
preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);
|
|
94
|
+
#endif
|
|
95
|
+
#endif
|
|
96
|
+
#elif defined(POINTLIGHT{X})
|
|
97
|
+
#ifdef LIGHT_FALLOFF_GLTF{X}
|
|
98
|
+
preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);
|
|
99
|
+
#elif defined(LIGHT_FALLOFF_PHYSICAL{X})
|
|
100
|
+
preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);
|
|
101
|
+
#elif defined(LIGHT_FALLOFF_STANDARD{X})
|
|
102
|
+
preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);
|
|
103
|
+
#else
|
|
104
|
+
preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);
|
|
105
|
+
#endif
|
|
106
|
+
#else
|
|
107
|
+
preInfo.attenuation=1.0;
|
|
108
|
+
#endif
|
|
109
|
+
#if defined(HEMILIGHT{X})
|
|
110
|
+
preInfo.roughness=roughness;
|
|
111
|
+
#elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
112
|
+
preInfo.roughness=roughness;
|
|
113
|
+
#else
|
|
114
|
+
preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
|
|
115
|
+
#endif
|
|
116
|
+
preInfo.diffuseRoughness=diffuseRoughness;preInfo.surfaceAlbedo=surfaceAlbedo;
|
|
117
|
+
#ifdef IRIDESCENCE
|
|
118
|
+
preInfo.iridescenceIntensity=iridescenceIntensity;
|
|
119
|
+
#endif
|
|
120
|
+
#ifdef SS_TRANSLUCENCY
|
|
121
|
+
info.diffuseTransmission=vec3f(0.0);
|
|
122
|
+
#endif
|
|
123
|
+
#ifdef HEMILIGHT{X}
|
|
124
|
+
info.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);
|
|
125
|
+
#elif defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
126
|
+
info.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);
|
|
127
|
+
#elif defined(SS_TRANSLUCENCY)
|
|
128
|
+
#ifndef SS_TRANSLUCENCY_LEGACY
|
|
129
|
+
info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb)*(1.0-subSurfaceOut.translucencyIntensity);info.diffuseTransmission=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
|
|
130
|
+
#else
|
|
131
|
+
info.diffuse=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);
|
|
132
|
+
#endif
|
|
133
|
+
#else
|
|
134
|
+
info.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);
|
|
135
|
+
#endif
|
|
136
|
+
#ifdef SPECULARTERM
|
|
137
|
+
#if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
138
|
+
info.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
|
|
139
|
+
#else
|
|
140
|
+
#if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
|
|
141
|
+
{let metalFresnel: vec3f=vec3f(reflectivityOut.specularWeight)*getF82Specular(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90,reflectivityOut.roughness);let dielectricFresnel: vec3f=fresnelSchlickGGXVec3(preInfo.VdotH,reflectivityOut.dielectricColorF0,reflectivityOut.colorReflectanceF90);coloredFresnel=mix(dielectricFresnel,metalFresnel,reflectivityOut.metallic);}
|
|
142
|
+
#else
|
|
143
|
+
coloredFresnel=fresnelSchlickGGXVec3(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);
|
|
144
|
+
#endif
|
|
145
|
+
#ifndef LEGACY_SPECULAR_ENERGY_CONSERVATION
|
|
146
|
+
{let NdotH: f32=dot(normalW,preInfo.H);let fresnel: vec3f=fresnelSchlickGGXVec3(NdotH,vec3f(reflectanceF0),specularEnvironmentR90);info.diffuse*=(vec3f(1.0)-fresnel);}
|
|
147
|
+
#endif
|
|
148
|
+
#ifdef ANISOTROPIC
|
|
149
|
+
info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
|
|
150
|
+
#else
|
|
151
|
+
info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,coloredFresnel,AARoughnessFactors.x,diffuse{X}.rgb);
|
|
152
|
+
#endif
|
|
153
|
+
#endif
|
|
154
|
+
#endif
|
|
155
|
+
#ifndef AREALIGHT{X}
|
|
156
|
+
#ifdef SHEEN
|
|
157
|
+
#ifdef SHEEN_LINKWITHALBEDO
|
|
158
|
+
preInfo.roughness=sheenOut.sheenIntensity;
|
|
159
|
+
#else
|
|
160
|
+
#ifdef HEMILIGHT{X}
|
|
161
|
+
preInfo.roughness=sheenOut.sheenRoughness;
|
|
162
|
+
#else
|
|
163
|
+
preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
|
|
164
|
+
#endif
|
|
165
|
+
#endif
|
|
166
|
+
info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);
|
|
167
|
+
#endif
|
|
168
|
+
#ifdef CLEARCOAT
|
|
169
|
+
#ifdef HEMILIGHT{X}
|
|
170
|
+
preInfo.roughness=clearcoatOut.clearCoatRoughness;
|
|
171
|
+
#else
|
|
172
|
+
preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);
|
|
173
|
+
#endif
|
|
174
|
+
info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);
|
|
175
|
+
#ifdef CLEARCOAT_TINT
|
|
176
|
+
absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;
|
|
177
|
+
#ifdef SS_TRANSLUCENCY
|
|
178
|
+
info.diffuseTransmission*=absorption;
|
|
179
|
+
#endif
|
|
180
|
+
#ifdef SPECULARTERM
|
|
181
|
+
info.specular*=absorption;
|
|
182
|
+
#endif
|
|
183
|
+
#endif
|
|
184
|
+
info.diffuse*=info.clearCoat.w;
|
|
185
|
+
#ifdef SS_TRANSLUCENCY
|
|
186
|
+
info.diffuseTransmission*=info.clearCoat.w;
|
|
187
|
+
#endif
|
|
188
|
+
#ifdef SPECULARTERM
|
|
189
|
+
info.specular*=info.clearCoat.w;
|
|
190
|
+
#endif
|
|
191
|
+
#ifdef SHEEN
|
|
192
|
+
info.sheen*=info.clearCoat.w;
|
|
193
|
+
#endif
|
|
194
|
+
#endif
|
|
195
|
+
#endif
|
|
196
|
+
#else
|
|
197
|
+
#ifdef SPOTLIGHT{X}
|
|
198
|
+
#ifdef IESLIGHTTEXTURE{X}
|
|
199
|
+
info=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X},iesLightTexture{X}Sampler);
|
|
200
|
+
#else
|
|
201
|
+
info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
|
|
202
|
+
#endif
|
|
203
|
+
#elif defined(HEMILIGHT{X})
|
|
204
|
+
info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);
|
|
205
|
+
#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
|
|
206
|
+
info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);
|
|
207
|
+
#elif define(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)
|
|
208
|
+
#if defined(RECTAREALIGHTEMISSIONTEXTURE{X})
|
|
209
|
+
info=computeAreaLightingWithTexture(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,rectAreaLightEmissionTexture{X},rectAreaLightEmissionTexture{X}Sampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
|
|
210
|
+
#ifdef AREALIGHTNOROUGHTNESS
|
|
211
|
+
0.5
|
|
212
|
+
#else
|
|
213
|
+
uniforms.vReflectionInfos.y
|
|
214
|
+
#endif
|
|
215
|
+
);
|
|
216
|
+
#else
|
|
217
|
+
info=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,
|
|
218
|
+
#ifdef AREALIGHTNOROUGHTNESS
|
|
219
|
+
0.5
|
|
220
|
+
#else
|
|
221
|
+
uniforms.vReflectionInfos.y
|
|
222
|
+
#endif
|
|
223
|
+
);
|
|
224
|
+
#endif
|
|
225
|
+
#elif defined(CLUSTLIGHT{X})
|
|
226
|
+
{let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(lightDataTexture{X},&tileMaskBuffer{X},viewDirectionW,normalW,light{X}.vLightData,vec2u(light{X}.vSliceRanges[sliceIndex].xy),glossiness);}
|
|
227
|
+
#endif
|
|
228
|
+
#endif
|
|
229
|
+
#ifdef PROJECTEDLIGHTTEXTURE{X}
|
|
230
|
+
info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},fragmentInputs.vPositionW);
|
|
231
|
+
#endif
|
|
232
|
+
#endif
|
|
233
|
+
#ifdef SHADOW{X}
|
|
234
|
+
#ifdef SHADOWCSMDEBUG{X}
|
|
235
|
+
var shadowDebug{X}: vec3f;
|
|
236
|
+
#endif
|
|
237
|
+
#ifdef SHADOWCSM{X}
|
|
238
|
+
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
|
|
239
|
+
var index{X}: i32=-1;
|
|
240
|
+
#else
|
|
241
|
+
var index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;
|
|
242
|
+
#endif
|
|
243
|
+
var diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i<SHADOWCSMNUM_CASCADES{X}; i++)
|
|
244
|
+
{
|
|
245
|
+
#ifdef SHADOWCSM_RIGHTHANDED{X}
|
|
246
|
+
diff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;
|
|
247
|
+
#else
|
|
248
|
+
diff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;
|
|
249
|
+
#endif
|
|
250
|
+
if (diff{X}>=0.) {index{X}=i;break;}}
|
|
251
|
+
#ifdef SHADOWCSMUSESHADOWMAXZ{X}
|
|
252
|
+
if (index{X}>=0)
|
|
253
|
+
#endif
|
|
254
|
+
{
|
|
255
|
+
#if defined(SHADOWPCF{X})
|
|
256
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
257
|
+
shadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
258
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
259
|
+
shadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
260
|
+
#else
|
|
261
|
+
shadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
262
|
+
#endif
|
|
263
|
+
#elif defined(SHADOWPCSS{X})
|
|
264
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
265
|
+
shadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
266
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
267
|
+
shadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
268
|
+
#else
|
|
269
|
+
shadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
270
|
+
#endif
|
|
271
|
+
#else
|
|
272
|
+
shadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
273
|
+
#endif
|
|
274
|
+
#ifdef SHADOWCSMDEBUG{X}
|
|
275
|
+
shadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];
|
|
276
|
+
#endif
|
|
277
|
+
#ifndef SHADOWCSMNOBLEND{X}
|
|
278
|
+
var frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)
|
|
279
|
+
{index{X}+=1;var nextShadow: f32=0.;
|
|
280
|
+
#if defined(SHADOWPCF{X})
|
|
281
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
282
|
+
nextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
283
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
284
|
+
nextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
285
|
+
#else
|
|
286
|
+
nextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
287
|
+
#endif
|
|
288
|
+
#elif defined(SHADOWPCSS{X})
|
|
289
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
290
|
+
nextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
291
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
292
|
+
nextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
293
|
+
#else
|
|
294
|
+
nextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});
|
|
295
|
+
#endif
|
|
296
|
+
#else
|
|
297
|
+
nextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
298
|
+
#endif
|
|
299
|
+
shadow=mix(nextShadow,shadow,diffRatio);
|
|
300
|
+
#ifdef SHADOWCSMDEBUG{X}
|
|
301
|
+
shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);
|
|
302
|
+
#endif
|
|
303
|
+
}
|
|
304
|
+
#endif
|
|
305
|
+
}
|
|
306
|
+
#elif defined(SHADOWCLOSEESM{X})
|
|
307
|
+
#if defined(SHADOWCUBE{X})
|
|
308
|
+
shadow=computeShadowWithCloseESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
|
|
309
|
+
#else
|
|
310
|
+
shadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
|
|
311
|
+
#endif
|
|
312
|
+
#elif defined(SHADOWESM{X})
|
|
313
|
+
#if defined(SHADOWCUBE{X})
|
|
314
|
+
shadow=computeShadowWithESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);
|
|
315
|
+
#else
|
|
316
|
+
shadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);
|
|
317
|
+
#endif
|
|
318
|
+
#elif defined(SHADOWPOISSON{X})
|
|
319
|
+
#if defined(SHADOWCUBE{X})
|
|
320
|
+
shadow=computeShadowWithPoissonSamplingCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);
|
|
321
|
+
#else
|
|
322
|
+
shadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
323
|
+
#endif
|
|
324
|
+
#elif defined(SHADOWPCF{X})
|
|
325
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
326
|
+
shadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
327
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
328
|
+
shadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
329
|
+
#else
|
|
330
|
+
shadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
331
|
+
#endif
|
|
332
|
+
#elif defined(SHADOWPCSS{X})
|
|
333
|
+
#if defined(SHADOWLOWQUALITY{X})
|
|
334
|
+
shadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
335
|
+
#elif defined(SHADOWMEDIUMQUALITY{X})
|
|
336
|
+
shadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
337
|
+
#else
|
|
338
|
+
shadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
339
|
+
#endif
|
|
340
|
+
#else
|
|
341
|
+
#if defined(SHADOWCUBE{X})
|
|
342
|
+
shadow=computeShadowCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);
|
|
343
|
+
#else
|
|
344
|
+
shadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);
|
|
345
|
+
#endif
|
|
346
|
+
#endif
|
|
347
|
+
#ifdef SHADOWONLY
|
|
348
|
+
#ifndef SHADOWINUSE
|
|
349
|
+
#define SHADOWINUSE
|
|
350
|
+
#endif
|
|
351
|
+
globalShadow+=shadow;shadowLightCount+=1.0;
|
|
352
|
+
#endif
|
|
353
|
+
#else
|
|
354
|
+
shadow=1.;
|
|
355
|
+
#endif
|
|
356
|
+
aggShadow+=shadow;numLights+=1.0;
|
|
357
|
+
#ifndef SHADOWONLY
|
|
358
|
+
#ifdef CUSTOMUSERLIGHTING
|
|
359
|
+
diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);
|
|
360
|
+
#ifdef SPECULARTERM
|
|
361
|
+
specularBase+=computeCustomSpecularLighting(info,specularBase,shadow);
|
|
362
|
+
#endif
|
|
363
|
+
#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
|
|
364
|
+
diffuseBase+=lightmapColor.rgb*shadow;
|
|
365
|
+
#ifdef SPECULARTERM
|
|
366
|
+
#ifndef LIGHTMAPNOSPECULAR{X}
|
|
367
|
+
specularBase+=info.specular*shadow*lightmapColor.rgb;
|
|
368
|
+
#endif
|
|
369
|
+
#endif
|
|
370
|
+
#ifdef CLEARCOAT
|
|
371
|
+
#ifndef LIGHTMAPNOSPECULAR{X}
|
|
372
|
+
clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;
|
|
373
|
+
#endif
|
|
374
|
+
#endif
|
|
375
|
+
#ifdef SHEEN
|
|
376
|
+
#ifndef LIGHTMAPNOSPECULAR{X}
|
|
377
|
+
sheenBase+=info.sheen.rgb*shadow;
|
|
378
|
+
#endif
|
|
379
|
+
#endif
|
|
380
|
+
#else
|
|
381
|
+
#ifdef SHADOWCSMDEBUG{X}
|
|
382
|
+
diffuseBase+=info.diffuse*shadowDebug{X};
|
|
383
|
+
#else
|
|
384
|
+
diffuseBase+=info.diffuse*shadow;
|
|
385
|
+
#endif
|
|
386
|
+
#ifdef SS_TRANSLUCENCY
|
|
387
|
+
diffuseTransmissionBase+=info.diffuseTransmission*shadow;
|
|
388
|
+
#endif
|
|
389
|
+
#ifdef SPECULARTERM
|
|
390
|
+
specularBase+=info.specular*shadow;
|
|
391
|
+
#endif
|
|
392
|
+
#ifdef CLEARCOAT
|
|
393
|
+
clearCoatBase+=info.clearCoat.rgb*shadow;
|
|
394
|
+
#endif
|
|
395
|
+
#ifdef SHEEN
|
|
396
|
+
sheenBase+=info.sheen.rgb*shadow;
|
|
397
|
+
#endif
|
|
398
|
+
#endif
|
|
399
|
+
#endif
|
|
400
|
+
#endif
|
|
401
|
+
`;
|
|
402
|
+
e.IncludesShadersStoreWGSL[t] || (e.IncludesShadersStoreWGSL[t] = n);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const r = "meshUboDeclaration", s = `struct Mesh {world : mat4x4<f32>,
|
|
3
|
+
visibility : f32,};var<uniform> mesh : Mesh;
|
|
4
|
+
#define WORLD_UBO
|
|
5
|
+
`;
|
|
6
|
+
e.IncludesShadersStoreWGSL[r] || (e.IncludesShadersStoreWGSL[r] = s);
|
|
7
|
+
const n = "mainUVVaryingDeclaration", t = `#ifdef MAINUV{X}
|
|
8
|
+
varying vMainUV{X}: vec2f;
|
|
9
|
+
#endif
|
|
10
|
+
`;
|
|
11
|
+
e.IncludesShadersStoreWGSL[n] || (e.IncludesShadersStoreWGSL[n] = t);
|
|
12
|
+
const a = "logDepthDeclaration", i = `#ifdef LOGARITHMICDEPTH
|
|
13
|
+
uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
|
|
14
|
+
#endif
|
|
15
|
+
`;
|
|
16
|
+
e.IncludesShadersStoreWGSL[a] || (e.IncludesShadersStoreWGSL[a] = i);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const a = "meshUboDeclaration", r = `#ifdef WEBGL2
|
|
3
|
+
uniform mat4 world;uniform float visibility;
|
|
4
|
+
#else
|
|
5
|
+
layout(std140,column_major) uniform;uniform Mesh
|
|
6
|
+
{mat4 world;float visibility;};
|
|
7
|
+
#endif
|
|
8
|
+
#define WORLD_UBO
|
|
9
|
+
`;
|
|
10
|
+
e.IncludesShadersStore[a] || (e.IncludesShadersStore[a] = r);
|
|
11
|
+
const n = "mainUVVaryingDeclaration", i = `#ifdef MAINUV{X}
|
|
12
|
+
varying vec2 vMainUV{X};
|
|
13
|
+
#endif
|
|
14
|
+
`;
|
|
15
|
+
e.IncludesShadersStore[n] || (e.IncludesShadersStore[n] = i);
|
|
16
|
+
const o = "logDepthDeclaration", t = `#ifdef LOGARITHMICDEPTH
|
|
17
|
+
uniform float logarithmicDepthConstant;varying float vFragmentDepth;
|
|
18
|
+
#endif
|
|
19
|
+
`;
|
|
20
|
+
e.IncludesShadersStore[o] || (e.IncludesShadersStore[o] = t);
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const i = "decalVertexDeclaration", h = `#ifdef DECAL
|
|
3
|
+
uniform vec4 vDecalInfos;uniform mat4 decalMatrix;
|
|
4
|
+
#endif
|
|
5
|
+
`;
|
|
6
|
+
e.IncludesShadersStore[i] || (e.IncludesShadersStore[i] = h);
|
|
7
|
+
const n = "uvAttributeDeclaration", I = `#ifdef UV{X}
|
|
8
|
+
attribute vec2 uv{X};
|
|
9
|
+
#endif
|
|
10
|
+
`;
|
|
11
|
+
e.IncludesShadersStore[n] || (e.IncludesShadersStore[n] = I);
|
|
12
|
+
const t = "prePassVertexDeclaration", u = `#ifdef PREPASS
|
|
13
|
+
#ifdef PREPASS_LOCAL_POSITION
|
|
14
|
+
varying vec3 vPosition;
|
|
15
|
+
#endif
|
|
16
|
+
#ifdef PREPASS_DEPTH
|
|
17
|
+
varying vec3 vViewPos;
|
|
18
|
+
#endif
|
|
19
|
+
#ifdef PREPASS_NORMALIZED_VIEW_DEPTH
|
|
20
|
+
varying float vNormViewDepth;
|
|
21
|
+
#endif
|
|
22
|
+
#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
|
|
23
|
+
uniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;
|
|
24
|
+
#endif
|
|
25
|
+
#endif
|
|
26
|
+
`;
|
|
27
|
+
e.IncludesShadersStore[t] || (e.IncludesShadersStore[t] = u);
|
|
28
|
+
const r = "samplerVertexDeclaration", A = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
29
|
+
varying vec2 v_VARYINGNAME_UV;
|
|
30
|
+
#endif
|
|
31
|
+
`;
|
|
32
|
+
e.IncludesShadersStore[r] || (e.IncludesShadersStore[r] = A);
|
|
33
|
+
const d = "fogVertexDeclaration", N = `#ifdef FOG
|
|
34
|
+
varying vec3 vFogDistance;
|
|
35
|
+
#endif
|
|
36
|
+
`;
|
|
37
|
+
e.IncludesShadersStore[d] || (e.IncludesShadersStore[d] = N);
|
|
38
|
+
const o = "lightVxFragmentDeclaration", m = `#ifdef LIGHT{X}
|
|
39
|
+
uniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};
|
|
40
|
+
#ifdef SPECULARTERM
|
|
41
|
+
uniform vec4 vLightSpecular{X};
|
|
42
|
+
#else
|
|
43
|
+
vec4 vLightSpecular{X}=vec4(0.);
|
|
44
|
+
#endif
|
|
45
|
+
#ifdef SHADOW{X}
|
|
46
|
+
#ifdef SHADOWCSM{X}
|
|
47
|
+
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
|
|
48
|
+
#elif defined(SHADOWCUBE{X})
|
|
49
|
+
#else
|
|
50
|
+
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
|
|
51
|
+
#endif
|
|
52
|
+
uniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};
|
|
53
|
+
#endif
|
|
54
|
+
#ifdef SPOTLIGHT{X}
|
|
55
|
+
uniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};
|
|
56
|
+
#elif defined(POINTLIGHT{X})
|
|
57
|
+
uniform vec4 vLightFalloff{X};
|
|
58
|
+
#elif defined(HEMILIGHT{X})
|
|
59
|
+
uniform vec3 vLightGround{X};
|
|
60
|
+
#endif
|
|
61
|
+
#if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
62
|
+
uniform vec4 vLightWidth{X};uniform vec4 vLightHeight{X};
|
|
63
|
+
#endif
|
|
64
|
+
#endif
|
|
65
|
+
`;
|
|
66
|
+
e.IncludesShadersStore[o] || (e.IncludesShadersStore[o] = m);
|
|
67
|
+
const f = "lightVxUboDeclaration", _ = `#ifdef LIGHT{X}
|
|
68
|
+
uniform Light{X}
|
|
69
|
+
{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;
|
|
70
|
+
#ifdef SPOTLIGHT{X}
|
|
71
|
+
vec4 vLightDirection;vec4 vLightFalloff;
|
|
72
|
+
#elif defined(POINTLIGHT{X})
|
|
73
|
+
vec4 vLightFalloff;
|
|
74
|
+
#elif defined(HEMILIGHT{X})
|
|
75
|
+
vec3 vLightGround;
|
|
76
|
+
#elif defined(CLUSTLIGHT{X})
|
|
77
|
+
vec2 vSliceData;vec2 vSliceRanges[CLUSTLIGHT_SLICES];
|
|
78
|
+
#endif
|
|
79
|
+
#if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
|
|
80
|
+
vec4 vLightWidth;vec4 vLightHeight;
|
|
81
|
+
#endif
|
|
82
|
+
vec4 shadowsInfo;vec2 depthValues;} light{X};
|
|
83
|
+
#ifdef SHADOW{X}
|
|
84
|
+
#ifdef SHADOWCSM{X}
|
|
85
|
+
uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};
|
|
86
|
+
#elif defined(SHADOWCUBE{X})
|
|
87
|
+
#else
|
|
88
|
+
varying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};
|
|
89
|
+
#endif
|
|
90
|
+
#endif
|
|
91
|
+
#endif
|
|
92
|
+
`;
|
|
93
|
+
e.IncludesShadersStore[f] || (e.IncludesShadersStore[f] = _);
|
|
94
|
+
const s = "prePassVertex", X = `#ifdef PREPASS_DEPTH
|
|
95
|
+
vViewPos=(view*worldPos).rgb;
|
|
96
|
+
#endif
|
|
97
|
+
#ifdef PREPASS_NORMALIZED_VIEW_DEPTH
|
|
98
|
+
vNormViewDepth=((view*worldPos).z-cameraInfo.x)/(cameraInfo.y-cameraInfo.x);
|
|
99
|
+
#endif
|
|
100
|
+
#ifdef PREPASS_LOCAL_POSITION
|
|
101
|
+
vPosition=positionUpdated.xyz;
|
|
102
|
+
#endif
|
|
103
|
+
#if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
|
|
104
|
+
vCurrentPosition=viewProjection*worldPos;
|
|
105
|
+
#if NUM_BONE_INFLUENCERS>0
|
|
106
|
+
mat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];
|
|
107
|
+
#if NUM_BONE_INFLUENCERS>1
|
|
108
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
|
|
109
|
+
#endif
|
|
110
|
+
#if NUM_BONE_INFLUENCERS>2
|
|
111
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];
|
|
112
|
+
#endif
|
|
113
|
+
#if NUM_BONE_INFLUENCERS>3
|
|
114
|
+
previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];
|
|
115
|
+
#endif
|
|
116
|
+
#if NUM_BONE_INFLUENCERS>4
|
|
117
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];
|
|
118
|
+
#endif
|
|
119
|
+
#if NUM_BONE_INFLUENCERS>5
|
|
120
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];
|
|
121
|
+
#endif
|
|
122
|
+
#if NUM_BONE_INFLUENCERS>6
|
|
123
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];
|
|
124
|
+
#endif
|
|
125
|
+
#if NUM_BONE_INFLUENCERS>7
|
|
126
|
+
previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];
|
|
127
|
+
#endif
|
|
128
|
+
vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);
|
|
129
|
+
#else
|
|
130
|
+
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
|
|
131
|
+
#endif
|
|
132
|
+
#endif
|
|
133
|
+
`;
|
|
134
|
+
e.IncludesShadersStore[s] || (e.IncludesShadersStore[s] = X);
|
|
135
|
+
const a = "uvVariableDeclaration", g = `#if !defined(UV{X}) && defined(MAINUV{X})
|
|
136
|
+
vec2 uv{X}=vec2(0.,0.);
|
|
137
|
+
#endif
|
|
138
|
+
#ifdef MAINUV{X}
|
|
139
|
+
vMainUV{X}=uv{X};
|
|
140
|
+
#endif
|
|
141
|
+
`;
|
|
142
|
+
e.IncludesShadersStore[a] || (e.IncludesShadersStore[a] = g);
|
|
143
|
+
const v = "samplerVertexImplementation", P = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
|
|
144
|
+
if (v_INFONAME_==0.)
|
|
145
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}
|
|
146
|
+
#ifdef UV2
|
|
147
|
+
else if (v_INFONAME_==1.)
|
|
148
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2Updated,1.0,0.0));}
|
|
149
|
+
#endif
|
|
150
|
+
#ifdef UV3
|
|
151
|
+
else if (v_INFONAME_==2.)
|
|
152
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}
|
|
153
|
+
#endif
|
|
154
|
+
#ifdef UV4
|
|
155
|
+
else if (v_INFONAME_==3.)
|
|
156
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}
|
|
157
|
+
#endif
|
|
158
|
+
#ifdef UV5
|
|
159
|
+
else if (v_INFONAME_==4.)
|
|
160
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}
|
|
161
|
+
#endif
|
|
162
|
+
#ifdef UV6
|
|
163
|
+
else if (v_INFONAME_==5.)
|
|
164
|
+
{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}
|
|
165
|
+
#endif
|
|
166
|
+
#endif
|
|
167
|
+
`;
|
|
168
|
+
e.IncludesShadersStore[v] || (e.IncludesShadersStore[v] = P);
|
|
169
|
+
const c = "fogVertex", M = `#ifdef FOG
|
|
170
|
+
vFogDistance=(view*worldPos).xyz;
|
|
171
|
+
#endif
|
|
172
|
+
`;
|
|
173
|
+
e.IncludesShadersStore[c] || (e.IncludesShadersStore[c] = M);
|
|
174
|
+
const S = "shadowsVertex", L = `#ifdef SHADOWS
|
|
175
|
+
#if defined(SHADOWCSM{X})
|
|
176
|
+
vPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;
|
|
177
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
178
|
+
vDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
179
|
+
#else
|
|
180
|
+
vDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
181
|
+
#endif
|
|
182
|
+
}
|
|
183
|
+
#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})
|
|
184
|
+
vPositionFromLight{X}=lightMatrix{X}*worldPos;
|
|
185
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
186
|
+
vDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
187
|
+
#else
|
|
188
|
+
vDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
|
|
189
|
+
#endif
|
|
190
|
+
#endif
|
|
191
|
+
#endif
|
|
192
|
+
`;
|
|
193
|
+
e.IncludesShadersStore[S] || (e.IncludesShadersStore[S] = L);
|
|
194
|
+
const l = "vertexColorMixing", D = `#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
195
|
+
vColor=vec4(1.0);
|
|
196
|
+
#ifdef VERTEXCOLOR
|
|
197
|
+
#ifdef VERTEXALPHA
|
|
198
|
+
vColor*=colorUpdated;
|
|
199
|
+
#else
|
|
200
|
+
vColor.rgb*=colorUpdated.rgb;
|
|
201
|
+
#endif
|
|
202
|
+
#endif
|
|
203
|
+
#ifdef INSTANCESCOLOR
|
|
204
|
+
vColor*=instanceColor;
|
|
205
|
+
#endif
|
|
206
|
+
#endif
|
|
207
|
+
`;
|
|
208
|
+
e.IncludesShadersStore[l] || (e.IncludesShadersStore[l] = D);
|
|
209
|
+
const E = "logDepthVertex", C = `#ifdef LOGARITHMICDEPTH
|
|
210
|
+
vFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
|
|
211
|
+
#endif
|
|
212
|
+
`;
|
|
213
|
+
e.IncludesShadersStore[E] || (e.IncludesShadersStore[E] = C);
|