@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,134 @@
|
|
|
1
|
+
import { b0 as a } from "./index-CS3Icp_r.js";
|
|
2
|
+
import "./clipPlaneFragment-DJwQynjA.js";
|
|
3
|
+
const e = "bumpFragmentMainFunctions", f = `#ifndef TEXRD_DEFINED
|
|
4
|
+
fn TEXRD(t: texture_2d<f32>,ts: sampler,uv: vec2f)->vec4f {return textureSample(t,ts,uv);}
|
|
5
|
+
#define TEXRD_DEFINED
|
|
6
|
+
#endif
|
|
7
|
+
#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
|
|
8
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
9
|
+
varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
|
|
10
|
+
#endif
|
|
11
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
12
|
+
uniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f
|
|
13
|
+
{var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0];
|
|
14
|
+
var a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0];
|
|
15
|
+
var a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(
|
|
16
|
+
(a11*b11-a12*b10+a13*b09)/det,
|
|
17
|
+
(a02*b10-a01*b11-a03*b09)/det,
|
|
18
|
+
(a31*b05-a32*b04+a33*b03)/det,
|
|
19
|
+
(a22*b04-a21*b05-a23*b03)/det,
|
|
20
|
+
(a12*b08-a10*b11-a13*b07)/det,
|
|
21
|
+
(a00*b11-a02*b08+a03*b07)/det,
|
|
22
|
+
(a32*b02-a30*b05-a33*b01)/det,
|
|
23
|
+
(a20*b05-a22*b02+a23*b01)/det,
|
|
24
|
+
(a10*b10-a11*b08+a13*b06)/det,
|
|
25
|
+
(a01*b08-a00*b10-a03*b06)/det,
|
|
26
|
+
(a30*b04-a31*b02+a33*b00)/det,
|
|
27
|
+
(a21*b02-a20*b04-a23*b00)/det,
|
|
28
|
+
(a11*b07-a10*b09-a12*b06)/det,
|
|
29
|
+
(a00*b09-a01*b07+a02*b06)/det,
|
|
30
|
+
(a31*b01-a30*b03-a32*b00)/det,
|
|
31
|
+
(a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
|
|
32
|
+
mi[0][1],mi[1][1],mi[2][1],mi[3][1],
|
|
33
|
+
mi[0][2],mi[1][2],mi[2][2],mi[3][2],
|
|
34
|
+
mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
|
|
35
|
+
#endif
|
|
36
|
+
fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
|
|
37
|
+
{var output=normal;
|
|
38
|
+
#ifdef NORMALXYSCALE
|
|
39
|
+
output=normalize(output* vec3f(scale,scale,1.0));
|
|
40
|
+
#endif
|
|
41
|
+
return normalize(cotangentFrame*output);}
|
|
42
|
+
fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
|
|
43
|
+
{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
|
|
44
|
+
fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
|
|
45
|
+
{var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}
|
|
46
|
+
#endif
|
|
47
|
+
`;
|
|
48
|
+
a.IncludesShadersStoreWGSL[e] || (a.IncludesShadersStoreWGSL[e] = f);
|
|
49
|
+
const r = "bumpFragmentFunctions", m = `#if defined(BUMP)
|
|
50
|
+
#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
|
|
51
|
+
#endif
|
|
52
|
+
#if defined(DETAIL)
|
|
53
|
+
#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
|
|
54
|
+
#endif
|
|
55
|
+
#if defined(BUMP) && defined(PARALLAX)
|
|
56
|
+
const minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)
|
|
57
|
+
{currSampledHeight=textureSample(bumpSampler,bumpSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)
|
|
58
|
+
{}
|
|
59
|
+
else if (currSampledHeight>currRayHeight)
|
|
60
|
+
{var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
|
|
61
|
+
else
|
|
62
|
+
{currRayHeight-=stepSize;vLastOffset=vCurrOffset;
|
|
63
|
+
#ifdef PARALLAX_RHS
|
|
64
|
+
vCurrOffset-=stepSize*vMaxOffset;
|
|
65
|
+
#else
|
|
66
|
+
vCurrOffset+=stepSize*vMaxOffset;
|
|
67
|
+
#endif
|
|
68
|
+
lastSampledHeight=currSampledHeight;}}
|
|
69
|
+
return vCurrOffset;}
|
|
70
|
+
fn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f
|
|
71
|
+
{var height: f32=textureSample(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;
|
|
72
|
+
#ifdef PARALLAX_RHS
|
|
73
|
+
return texCoordOffset;
|
|
74
|
+
#else
|
|
75
|
+
return -texCoordOffset;
|
|
76
|
+
#endif
|
|
77
|
+
}
|
|
78
|
+
#endif
|
|
79
|
+
`;
|
|
80
|
+
a.IncludesShadersStoreWGSL[r] || (a.IncludesShadersStoreWGSL[r] = m);
|
|
81
|
+
const t = "bumpFragment", n = `var uvOffset: vec2f= vec2f(0.0,0.0);
|
|
82
|
+
#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
|
|
83
|
+
#ifdef NORMALXYSCALE
|
|
84
|
+
var normalScale: f32=1.0;
|
|
85
|
+
#elif defined(BUMP)
|
|
86
|
+
var normalScale: f32=uniforms.vBumpInfos.y;
|
|
87
|
+
#else
|
|
88
|
+
var normalScale: f32=1.0;
|
|
89
|
+
#endif
|
|
90
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
91
|
+
var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
|
|
92
|
+
#elif defined(BUMP)
|
|
93
|
+
var TBNUV: vec2f=select(-fragmentInputs.vBumpUV,fragmentInputs.vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
|
|
94
|
+
#else
|
|
95
|
+
var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
|
|
96
|
+
#endif
|
|
97
|
+
#elif defined(ANISOTROPIC)
|
|
98
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
99
|
+
var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
|
|
100
|
+
#else
|
|
101
|
+
var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
|
|
102
|
+
#endif
|
|
103
|
+
#endif
|
|
104
|
+
#ifdef PARALLAX
|
|
105
|
+
var invTBN: mat3x3f=transposeMat3(TBN);
|
|
106
|
+
#ifdef PARALLAXOCCLUSION
|
|
107
|
+
uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,fragmentInputs.vBumpUV,uniforms.vBumpInfos.z);
|
|
108
|
+
#else
|
|
109
|
+
uvOffset=parallaxOffset(invTBN*viewDirectionW,uniforms.vBumpInfos.z);
|
|
110
|
+
#endif
|
|
111
|
+
#endif
|
|
112
|
+
#ifdef DETAIL
|
|
113
|
+
var detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);
|
|
114
|
+
#endif
|
|
115
|
+
#ifdef BUMP
|
|
116
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
117
|
+
#define CUSTOM_FRAGMENT_BUMP_FRAGMENT
|
|
118
|
+
normalW=normalize(TEXRD(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);
|
|
119
|
+
#elif !defined(DETAIL)
|
|
120
|
+
normalW=perturbNormal(TBN,TEXRD(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz,uniforms.vBumpInfos.y);
|
|
121
|
+
#else
|
|
122
|
+
var bumpNormal: vec3f=TEXRD(bumpSampler,bumpSamplerSampler,fragmentInputs.vBumpUV+uvOffset).xyz*2.0-1.0;
|
|
123
|
+
#if DETAIL_NORMALBLENDMETHOD==0
|
|
124
|
+
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
|
|
125
|
+
#elif DETAIL_NORMALBLENDMETHOD==1
|
|
126
|
+
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);bumpNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
|
|
127
|
+
#endif
|
|
128
|
+
normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vBumpInfos.y);
|
|
129
|
+
#endif
|
|
130
|
+
#elif defined(DETAIL)
|
|
131
|
+
detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
|
|
132
|
+
#endif
|
|
133
|
+
`;
|
|
134
|
+
a.IncludesShadersStoreWGSL[t] || (a.IncludesShadersStoreWGSL[t] = n);
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const a = "samplerFragmentDeclaration", d = `#ifdef _DEFINENAME_
|
|
3
|
+
#if _DEFINENAME_DIRECTUV==1
|
|
4
|
+
#define v_VARYINGNAME_UV vMainUV1
|
|
5
|
+
#elif _DEFINENAME_DIRECTUV==2
|
|
6
|
+
#define v_VARYINGNAME_UV vMainUV2
|
|
7
|
+
#elif _DEFINENAME_DIRECTUV==3
|
|
8
|
+
#define v_VARYINGNAME_UV vMainUV3
|
|
9
|
+
#elif _DEFINENAME_DIRECTUV==4
|
|
10
|
+
#define v_VARYINGNAME_UV vMainUV4
|
|
11
|
+
#elif _DEFINENAME_DIRECTUV==5
|
|
12
|
+
#define v_VARYINGNAME_UV vMainUV5
|
|
13
|
+
#elif _DEFINENAME_DIRECTUV==6
|
|
14
|
+
#define v_VARYINGNAME_UV vMainUV6
|
|
15
|
+
#else
|
|
16
|
+
varying vec2 v_VARYINGNAME_UV;
|
|
17
|
+
#endif
|
|
18
|
+
uniform sampler2D _SAMPLERNAME_Sampler;
|
|
19
|
+
#endif
|
|
20
|
+
`;
|
|
21
|
+
e.IncludesShadersStore[a] || (e.IncludesShadersStore[a] = d);
|
|
22
|
+
const r = "reflectionFunction", f = `vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
|
|
23
|
+
{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); }
|
|
24
|
+
vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)
|
|
25
|
+
{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); }
|
|
26
|
+
vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
|
|
27
|
+
{vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);}
|
|
28
|
+
vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)
|
|
29
|
+
{vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);}
|
|
30
|
+
vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
|
|
31
|
+
{vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));}
|
|
32
|
+
vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)
|
|
33
|
+
{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0));
|
|
34
|
+
#ifdef INVERTCUBICMAP
|
|
35
|
+
coords.y*=-1.0;
|
|
36
|
+
#endif
|
|
37
|
+
return coords;}
|
|
38
|
+
vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)
|
|
39
|
+
{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0));
|
|
40
|
+
#ifdef INVERTCUBICMAP
|
|
41
|
+
coords.y*=-1.0;
|
|
42
|
+
#endif
|
|
43
|
+
return coords;}
|
|
44
|
+
vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)
|
|
45
|
+
{return vec3(reflectionMatrix*(view*worldPos));}
|
|
46
|
+
vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)
|
|
47
|
+
{return vec3(reflectionMatrix*vec4(positionW,1.));}
|
|
48
|
+
#ifdef REFLECTION
|
|
49
|
+
vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)
|
|
50
|
+
{
|
|
51
|
+
#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
|
|
52
|
+
vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
|
|
53
|
+
#endif
|
|
54
|
+
#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
|
|
55
|
+
vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
|
|
56
|
+
#endif
|
|
57
|
+
#ifdef REFLECTIONMAP_EQUIRECTANGULAR
|
|
58
|
+
return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
|
|
59
|
+
#endif
|
|
60
|
+
#ifdef REFLECTIONMAP_SPHERICAL
|
|
61
|
+
return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);
|
|
62
|
+
#endif
|
|
63
|
+
#ifdef REFLECTIONMAP_PLANAR
|
|
64
|
+
return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
|
|
65
|
+
#endif
|
|
66
|
+
#ifdef REFLECTIONMAP_CUBIC
|
|
67
|
+
#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
|
|
68
|
+
return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);
|
|
69
|
+
#else
|
|
70
|
+
return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);
|
|
71
|
+
#endif
|
|
72
|
+
#endif
|
|
73
|
+
#ifdef REFLECTIONMAP_PROJECTION
|
|
74
|
+
return computeProjectionCoords(worldPos,view,reflectionMatrix);
|
|
75
|
+
#endif
|
|
76
|
+
#ifdef REFLECTIONMAP_SKYBOX
|
|
77
|
+
return computeSkyBoxCoords(vPositionUVW,reflectionMatrix);
|
|
78
|
+
#endif
|
|
79
|
+
#ifdef REFLECTIONMAP_EXPLICIT
|
|
80
|
+
return vec3(0,0,0);
|
|
81
|
+
#endif
|
|
82
|
+
}
|
|
83
|
+
#endif
|
|
84
|
+
`;
|
|
85
|
+
e.IncludesShadersStore[r] || (e.IncludesShadersStore[r] = f);
|
|
86
|
+
const i = "bumpFragmentMainFunctions", c = `#ifndef TEXRD_DEFINED
|
|
87
|
+
#define TEXRD(s,uv) texture2D(s,uv)
|
|
88
|
+
#define TEXRD_DEFINED
|
|
89
|
+
#endif
|
|
90
|
+
#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
|
|
91
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
92
|
+
varying mat3 vTBN;
|
|
93
|
+
#endif
|
|
94
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
95
|
+
uniform mat4 normalMatrix;
|
|
96
|
+
#if defined(WEBGL2) || defined(WEBGPU)
|
|
97
|
+
mat4 toNormalMatrix(mat4 wMatrix)
|
|
98
|
+
{mat4 ret=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]=vec4(0.,0.,0.,1.);return ret;}
|
|
99
|
+
#else
|
|
100
|
+
mat4 toNormalMatrix(mat4 m)
|
|
101
|
+
{float
|
|
102
|
+
a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],
|
|
103
|
+
a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],
|
|
104
|
+
a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],
|
|
105
|
+
a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],
|
|
106
|
+
b00=a00*a11-a01*a10,
|
|
107
|
+
b01=a00*a12-a02*a10,
|
|
108
|
+
b02=a00*a13-a03*a10,
|
|
109
|
+
b03=a01*a12-a02*a11,
|
|
110
|
+
b04=a01*a13-a03*a11,
|
|
111
|
+
b05=a02*a13-a03*a12,
|
|
112
|
+
b06=a20*a31-a21*a30,
|
|
113
|
+
b07=a20*a32-a22*a30,
|
|
114
|
+
b08=a20*a33-a23*a30,
|
|
115
|
+
b09=a21*a32-a22*a31,
|
|
116
|
+
b10=a21*a33-a23*a31,
|
|
117
|
+
b11=a22*a33-a23*a32,
|
|
118
|
+
det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;mat4 mi=mat4(
|
|
119
|
+
a11*b11-a12*b10+a13*b09,
|
|
120
|
+
a02*b10-a01*b11-a03*b09,
|
|
121
|
+
a31*b05-a32*b04+a33*b03,
|
|
122
|
+
a22*b04-a21*b05-a23*b03,
|
|
123
|
+
a12*b08-a10*b11-a13*b07,
|
|
124
|
+
a00*b11-a02*b08+a03*b07,
|
|
125
|
+
a32*b02-a30*b05-a33*b01,
|
|
126
|
+
a20*b05-a22*b02+a23*b01,
|
|
127
|
+
a10*b10-a11*b08+a13*b06,
|
|
128
|
+
a01*b08-a00*b10-a03*b06,
|
|
129
|
+
a30*b04-a31*b02+a33*b00,
|
|
130
|
+
a21*b02-a20*b04-a23*b00,
|
|
131
|
+
a11*b07-a10*b09-a12*b06,
|
|
132
|
+
a00*b09-a01*b07+a02*b06,
|
|
133
|
+
a31*b01-a30*b03-a32*b00,
|
|
134
|
+
a20*b03-a21*b01+a22*b00)/det;return mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
|
|
135
|
+
mi[0][1],mi[1][1],mi[2][1],mi[3][1],
|
|
136
|
+
mi[0][2],mi[1][2],mi[2][2],mi[3][2],
|
|
137
|
+
mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
|
|
138
|
+
#endif
|
|
139
|
+
#endif
|
|
140
|
+
vec3 perturbNormalBase(mat3 cotangentFrame,vec3 normal,float scale)
|
|
141
|
+
{
|
|
142
|
+
#ifdef NORMALXYSCALE
|
|
143
|
+
normal=normalize(normal*vec3(scale,scale,1.0));
|
|
144
|
+
#endif
|
|
145
|
+
return normalize(cotangentFrame*normal);}
|
|
146
|
+
vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
|
|
147
|
+
{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
|
|
148
|
+
mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
|
|
149
|
+
{vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}
|
|
150
|
+
#endif
|
|
151
|
+
`;
|
|
152
|
+
e.IncludesShadersStore[i] || (e.IncludesShadersStore[i] = c);
|
|
153
|
+
const o = "bumpFragmentFunctions", m = `#if defined(BUMP)
|
|
154
|
+
#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)
|
|
155
|
+
#endif
|
|
156
|
+
#if defined(DETAIL)
|
|
157
|
+
#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
|
|
158
|
+
#endif
|
|
159
|
+
#if defined(BUMP) && defined(PARALLAX)
|
|
160
|
+
const float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; i<iMaxSamples; i++)
|
|
161
|
+
{currSampledHeight=texture2D(bumpSampler,texCoord+vCurrOffset).w;if (!keepWorking)
|
|
162
|
+
{}
|
|
163
|
+
else if (currSampledHeight>currRayHeight)
|
|
164
|
+
{float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
|
|
165
|
+
else
|
|
166
|
+
{currRayHeight-=stepSize;vLastOffset=vCurrOffset;
|
|
167
|
+
#ifdef PARALLAX_RHS
|
|
168
|
+
vCurrOffset-=stepSize*vMaxOffset;
|
|
169
|
+
#else
|
|
170
|
+
vCurrOffset+=stepSize*vMaxOffset;
|
|
171
|
+
#endif
|
|
172
|
+
lastSampledHeight=currSampledHeight;}}
|
|
173
|
+
return vCurrOffset;}
|
|
174
|
+
vec2 parallaxOffset(vec3 viewDir,float heightScale)
|
|
175
|
+
{float height=texture2D(bumpSampler,vBumpUV).w;vec2 texCoordOffset=heightScale*viewDir.xy*height;
|
|
176
|
+
#ifdef PARALLAX_RHS
|
|
177
|
+
return texCoordOffset;
|
|
178
|
+
#else
|
|
179
|
+
return -texCoordOffset;
|
|
180
|
+
#endif
|
|
181
|
+
}
|
|
182
|
+
#endif
|
|
183
|
+
`;
|
|
184
|
+
e.IncludesShadersStore[o] || (e.IncludesShadersStore[o] = m);
|
|
185
|
+
const t = "clipPlaneFragmentDeclaration", s = `#ifdef CLIPPLANE
|
|
186
|
+
varying float fClipDistance;
|
|
187
|
+
#endif
|
|
188
|
+
#ifdef CLIPPLANE2
|
|
189
|
+
varying float fClipDistance2;
|
|
190
|
+
#endif
|
|
191
|
+
#ifdef CLIPPLANE3
|
|
192
|
+
varying float fClipDistance3;
|
|
193
|
+
#endif
|
|
194
|
+
#ifdef CLIPPLANE4
|
|
195
|
+
varying float fClipDistance4;
|
|
196
|
+
#endif
|
|
197
|
+
#ifdef CLIPPLANE5
|
|
198
|
+
varying float fClipDistance5;
|
|
199
|
+
#endif
|
|
200
|
+
#ifdef CLIPPLANE6
|
|
201
|
+
varying float fClipDistance6;
|
|
202
|
+
#endif
|
|
203
|
+
`;
|
|
204
|
+
e.IncludesShadersStore[t] || (e.IncludesShadersStore[t] = s);
|
|
205
|
+
const l = "clipPlaneFragment", v = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
|
|
206
|
+
if (false) {}
|
|
207
|
+
#endif
|
|
208
|
+
#ifdef CLIPPLANE
|
|
209
|
+
else if (fClipDistance>0.0)
|
|
210
|
+
{discard;}
|
|
211
|
+
#endif
|
|
212
|
+
#ifdef CLIPPLANE2
|
|
213
|
+
else if (fClipDistance2>0.0)
|
|
214
|
+
{discard;}
|
|
215
|
+
#endif
|
|
216
|
+
#ifdef CLIPPLANE3
|
|
217
|
+
else if (fClipDistance3>0.0)
|
|
218
|
+
{discard;}
|
|
219
|
+
#endif
|
|
220
|
+
#ifdef CLIPPLANE4
|
|
221
|
+
else if (fClipDistance4>0.0)
|
|
222
|
+
{discard;}
|
|
223
|
+
#endif
|
|
224
|
+
#ifdef CLIPPLANE5
|
|
225
|
+
else if (fClipDistance5>0.0)
|
|
226
|
+
{discard;}
|
|
227
|
+
#endif
|
|
228
|
+
#ifdef CLIPPLANE6
|
|
229
|
+
else if (fClipDistance6>0.0)
|
|
230
|
+
{discard;}
|
|
231
|
+
#endif
|
|
232
|
+
`;
|
|
233
|
+
e.IncludesShadersStore[l] || (e.IncludesShadersStore[l] = v);
|
|
234
|
+
const n = "bumpFragment", N = `vec2 uvOffset=vec2(0.0,0.0);
|
|
235
|
+
#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)
|
|
236
|
+
#ifdef NORMALXYSCALE
|
|
237
|
+
float normalScale=1.0;
|
|
238
|
+
#elif defined(BUMP)
|
|
239
|
+
float normalScale=vBumpInfos.y;
|
|
240
|
+
#else
|
|
241
|
+
float normalScale=1.0;
|
|
242
|
+
#endif
|
|
243
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
244
|
+
mat3 TBN=vTBN;
|
|
245
|
+
#elif defined(BUMP)
|
|
246
|
+
vec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
|
|
247
|
+
#else
|
|
248
|
+
vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
|
|
249
|
+
#endif
|
|
250
|
+
#elif defined(ANISOTROPIC)
|
|
251
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
252
|
+
mat3 TBN=vTBN;
|
|
253
|
+
#else
|
|
254
|
+
vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
|
|
255
|
+
#endif
|
|
256
|
+
#endif
|
|
257
|
+
#ifdef PARALLAX
|
|
258
|
+
mat3 invTBN=transposeMat3(TBN);
|
|
259
|
+
#ifdef PARALLAXOCCLUSION
|
|
260
|
+
uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);
|
|
261
|
+
#else
|
|
262
|
+
uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);
|
|
263
|
+
#endif
|
|
264
|
+
#endif
|
|
265
|
+
#ifdef DETAIL
|
|
266
|
+
vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
|
|
267
|
+
#endif
|
|
268
|
+
#ifdef BUMP
|
|
269
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
270
|
+
#define CUSTOM_FRAGMENT_BUMP_FRAGMENT
|
|
271
|
+
normalW=normalize(TEXRD(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
|
|
272
|
+
#elif !defined(DETAIL)
|
|
273
|
+
normalW=perturbNormal(TBN,TEXRD(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);
|
|
274
|
+
#else
|
|
275
|
+
vec3 bumpNormal=TEXRD(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;
|
|
276
|
+
#if DETAIL_NORMALBLENDMETHOD==0
|
|
277
|
+
detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));
|
|
278
|
+
#elif DETAIL_NORMALBLENDMETHOD==1
|
|
279
|
+
detailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;
|
|
280
|
+
#endif
|
|
281
|
+
normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);
|
|
282
|
+
#endif
|
|
283
|
+
#elif defined(DETAIL)
|
|
284
|
+
detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
|
|
285
|
+
#endif
|
|
286
|
+
`;
|
|
287
|
+
e.IncludesShadersStore[n] || (e.IncludesShadersStore[n] = N);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const t = "bumpVertex", n = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
|
|
3
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
4
|
+
var tbnNormal: vec3f=normalize(normalUpdated);var tbnTangent: vec3f=normalize(tangentUpdated.xyz);var tbnBitangent: vec3f=cross(tbnNormal,tbnTangent)*tangentUpdated.w;var matTemp= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz)* mat3x3f(tbnTangent,tbnBitangent,tbnNormal);vertexOutputs.vTBN0=matTemp[0];vertexOutputs.vTBN1=matTemp[1];vertexOutputs.vTBN2=matTemp[2];
|
|
5
|
+
#endif
|
|
6
|
+
#endif
|
|
7
|
+
`;
|
|
8
|
+
e.IncludesShadersStoreWGSL[t] || (e.IncludesShadersStoreWGSL[t] = n);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const d = "bumpVertexDeclaration", n = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
|
|
3
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
4
|
+
varying mat3 vTBN;
|
|
5
|
+
#endif
|
|
6
|
+
#endif
|
|
7
|
+
`;
|
|
8
|
+
e.IncludesShadersStore[d] || (e.IncludesShadersStore[d] = n);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const d = "bumpVertexDeclaration", n = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
|
|
3
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
4
|
+
varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
|
|
5
|
+
#endif
|
|
6
|
+
#endif
|
|
7
|
+
`;
|
|
8
|
+
e.IncludesShadersStoreWGSL[d] || (e.IncludesShadersStoreWGSL[d] = n);
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { b0 as e } from "./index-CS3Icp_r.js";
|
|
2
|
+
const r = "samplerFragmentDeclaration", n = `#ifdef _DEFINENAME_
|
|
3
|
+
#if _DEFINENAME_DIRECTUV==1
|
|
4
|
+
#define v_VARYINGNAME_UV vMainUV1
|
|
5
|
+
#elif _DEFINENAME_DIRECTUV==2
|
|
6
|
+
#define v_VARYINGNAME_UV vMainUV2
|
|
7
|
+
#elif _DEFINENAME_DIRECTUV==3
|
|
8
|
+
#define v_VARYINGNAME_UV vMainUV3
|
|
9
|
+
#elif _DEFINENAME_DIRECTUV==4
|
|
10
|
+
#define v_VARYINGNAME_UV vMainUV4
|
|
11
|
+
#elif _DEFINENAME_DIRECTUV==5
|
|
12
|
+
#define v_VARYINGNAME_UV vMainUV5
|
|
13
|
+
#elif _DEFINENAME_DIRECTUV==6
|
|
14
|
+
#define v_VARYINGNAME_UV vMainUV6
|
|
15
|
+
#else
|
|
16
|
+
varying v_VARYINGNAME_UV: vec2f;
|
|
17
|
+
#endif
|
|
18
|
+
var _SAMPLERNAME_SamplerSampler: sampler;var _SAMPLERNAME_Sampler: texture_2d<f32>;
|
|
19
|
+
#endif
|
|
20
|
+
`;
|
|
21
|
+
e.IncludesShadersStoreWGSL[r] || (e.IncludesShadersStoreWGSL[r] = n);
|
|
22
|
+
const o = "reflectionFunction", t = `fn computeFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
|
|
23
|
+
{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0); }
|
|
24
|
+
fn computeMirroredFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f
|
|
25
|
+
{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(1.0-s,t,0); }
|
|
26
|
+
fn computeEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
|
|
27
|
+
{var cameraToVertex: vec3f=normalize(worldPos.xyz-eyePosition);var r: vec3f=normalize(reflect(cameraToVertex,worldNormal));r= (reflectionMatrix* vec4f(r,0)).xyz;var lon: f32=atan2(r.z,r.x);var lat: f32=acos(r.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0);}
|
|
28
|
+
fn computeSphericalCoords(worldPos: vec4f,worldNormal: vec3f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
|
|
29
|
+
{var viewDir: vec3f=normalize((view*worldPos).xyz);var viewNormal: vec3f=normalize((view* vec4f(worldNormal,0.0)).xyz);var r: vec3f=reflect(viewDir,viewNormal);r= (reflectionMatrix* vec4f(r,0)).xyz;r.z=r.z-1.0;var m: f32=2.0*length(r);return vec3f(r.x/m+0.5,1.0-r.y/m-0.5,0);}
|
|
30
|
+
fn computePlanarCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
|
|
31
|
+
{var viewDir: vec3f=worldPos.xyz-eyePosition;var coords: vec3f=normalize(reflect(viewDir,worldNormal));return (reflectionMatrix* vec4f(coords,1)).xyz;}
|
|
32
|
+
fn computeCubicCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f
|
|
33
|
+
{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords= (reflectionMatrix* vec4f(coords,0)).xyz;
|
|
34
|
+
#ifdef INVERTCUBICMAP
|
|
35
|
+
coords.y*=-1.0;
|
|
36
|
+
#endif
|
|
37
|
+
return coords;}
|
|
38
|
+
fn computeCubicLocalCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f,reflectionSize: vec3f,reflectionPosition: vec3f)->vec3f
|
|
39
|
+
{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=(reflectionMatrix* vec4f(coords,0)).xyz;
|
|
40
|
+
#ifdef INVERTCUBICMAP
|
|
41
|
+
coords.y*=-1.0;
|
|
42
|
+
#endif
|
|
43
|
+
return coords;}
|
|
44
|
+
fn computeProjectionCoords(worldPos: vec4f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f
|
|
45
|
+
{return (reflectionMatrix*(view*worldPos)).xyz;}
|
|
46
|
+
fn computeSkyBoxCoords(positionW: vec3f,reflectionMatrix: mat4x4f)->vec3f
|
|
47
|
+
{return (reflectionMatrix* vec4f(positionW,1.)).xyz;}
|
|
48
|
+
#ifdef REFLECTION
|
|
49
|
+
fn computeReflectionCoords(worldPos: vec4f,worldNormal: vec3f)->vec3f
|
|
50
|
+
{
|
|
51
|
+
#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED
|
|
52
|
+
var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);
|
|
53
|
+
#endif
|
|
54
|
+
#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED
|
|
55
|
+
var direction: vec3f=normalize(fragmentInputs.vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);
|
|
56
|
+
#endif
|
|
57
|
+
#ifdef REFLECTIONMAP_EQUIRECTANGULAR
|
|
58
|
+
return computeEquirectangularCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
|
|
59
|
+
#endif
|
|
60
|
+
#ifdef REFLECTIONMAP_SPHERICAL
|
|
61
|
+
return computeSphericalCoords(worldPos,worldNormal,scene.view,uniforms.reflectionMatrix);
|
|
62
|
+
#endif
|
|
63
|
+
#ifdef REFLECTIONMAP_PLANAR
|
|
64
|
+
return computePlanarCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
|
|
65
|
+
#endif
|
|
66
|
+
#ifdef REFLECTIONMAP_CUBIC
|
|
67
|
+
#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC
|
|
68
|
+
return computeCubicLocalCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix,uniforms.vReflectionSize,uniforms.vReflectionPosition);
|
|
69
|
+
#else
|
|
70
|
+
return computeCubicCoords(worldPos,worldNormal,scene.vEyePosition.xyz,uniforms.reflectionMatrix);
|
|
71
|
+
#endif
|
|
72
|
+
#endif
|
|
73
|
+
#ifdef REFLECTIONMAP_PROJECTION
|
|
74
|
+
return computeProjectionCoords(worldPos,scene.view,uniforms.reflectionMatrix);
|
|
75
|
+
#endif
|
|
76
|
+
#ifndef REFLECTIONMAP_CUBIC
|
|
77
|
+
#ifdef REFLECTIONMAP_SKYBOX
|
|
78
|
+
return computeSkyBoxCoords(fragmentInputs.vPositionUVW,uniforms.reflectionMatrix);
|
|
79
|
+
#endif
|
|
80
|
+
#endif
|
|
81
|
+
#ifdef REFLECTIONMAP_EXPLICIT
|
|
82
|
+
return vec3f(0,0,0);
|
|
83
|
+
#endif
|
|
84
|
+
}
|
|
85
|
+
#endif
|
|
86
|
+
`;
|
|
87
|
+
e.IncludesShadersStoreWGSL[o] || (e.IncludesShadersStoreWGSL[o] = t);
|
|
88
|
+
const i = "clipPlaneFragmentDeclaration", c = `#ifdef CLIPPLANE
|
|
89
|
+
varying fClipDistance: f32;
|
|
90
|
+
#endif
|
|
91
|
+
#ifdef CLIPPLANE2
|
|
92
|
+
varying fClipDistance2: f32;
|
|
93
|
+
#endif
|
|
94
|
+
#ifdef CLIPPLANE3
|
|
95
|
+
varying fClipDistance3: f32;
|
|
96
|
+
#endif
|
|
97
|
+
#ifdef CLIPPLANE4
|
|
98
|
+
varying fClipDistance4: f32;
|
|
99
|
+
#endif
|
|
100
|
+
#ifdef CLIPPLANE5
|
|
101
|
+
varying fClipDistance5: f32;
|
|
102
|
+
#endif
|
|
103
|
+
#ifdef CLIPPLANE6
|
|
104
|
+
varying fClipDistance6: f32;
|
|
105
|
+
#endif
|
|
106
|
+
`;
|
|
107
|
+
e.IncludesShadersStoreWGSL[i] || (e.IncludesShadersStoreWGSL[i] = c);
|
|
108
|
+
const f = "clipPlaneFragment", d = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
|
|
109
|
+
if (false) {}
|
|
110
|
+
#endif
|
|
111
|
+
#ifdef CLIPPLANE
|
|
112
|
+
else if (fragmentInputs.fClipDistance>0.0)
|
|
113
|
+
{discard;}
|
|
114
|
+
#endif
|
|
115
|
+
#ifdef CLIPPLANE2
|
|
116
|
+
else if (fragmentInputs.fClipDistance2>0.0)
|
|
117
|
+
{discard;}
|
|
118
|
+
#endif
|
|
119
|
+
#ifdef CLIPPLANE3
|
|
120
|
+
else if (fragmentInputs.fClipDistance3>0.0)
|
|
121
|
+
{discard;}
|
|
122
|
+
#endif
|
|
123
|
+
#ifdef CLIPPLANE4
|
|
124
|
+
else if (fragmentInputs.fClipDistance4>0.0)
|
|
125
|
+
{discard;}
|
|
126
|
+
#endif
|
|
127
|
+
#ifdef CLIPPLANE5
|
|
128
|
+
else if (fragmentInputs.fClipDistance5>0.0)
|
|
129
|
+
{discard;}
|
|
130
|
+
#endif
|
|
131
|
+
#ifdef CLIPPLANE6
|
|
132
|
+
else if (fragmentInputs.fClipDistance6>0.0)
|
|
133
|
+
{discard;}
|
|
134
|
+
#endif
|
|
135
|
+
`;
|
|
136
|
+
e.IncludesShadersStoreWGSL[f] || (e.IncludesShadersStoreWGSL[f] = d);
|