@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
91 lines • 2.26 kB
JavaScript
// Do not edit.
import { ShaderStore } from "../../Engines/shaderStore.js";
import "./decalFragment.js";
const name = "pbrBlockAlbedoOpacity";
const shader = `struct albedoOpacityOutParams
{vec3 surfaceAlbedo;float alpha;};
albedoOpacityOutParams albedoOpacityBlock(
in vec4 vAlbedoColor
,in vec4 albedoTexture
,in vec2 albedoInfos
,in float baseWeight
,in vec4 baseWeightTexture
,in vec2 vBaseWeightInfos
,in vec4 opacityMap
,in vec2 vOpacityInfos
,in vec4 detailColor
,in vec4 vDetailInfos
,in vec4 decalColor
,in vec4 vDecalInfos
)
{albedoOpacityOutParams outParams;vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;
alpha*=albedoTexture.a;
surfaceAlbedo*=toLinearSpace(albedoTexture.rgb);
surfaceAlbedo*=albedoTexture.rgb;
surfaceAlbedo*=albedoInfos.y;
surfaceAlbedo*=vColor.rgb;
float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;
surfaceAlbedo*=baseWeight;
surfaceAlbedo*=baseWeightTexture.r;
alpha=getLuminance(opacityMap.rgb);
alpha*=opacityMap.a;
alpha*=vOpacityInfos.y;
alpha*=vColor.a;
if (alpha<ALPHATESTVALUE)
discard;
alpha=1.0;
outParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;return outParams;}
`;
// Sideeffect
if (!ShaderStore.IncludesShadersStore[name]) {
ShaderStore.IncludesShadersStore[name] = shader;
}
/** @internal */
export const pbrBlockAlbedoOpacity = { name, shader };
//# sourceMappingURL=pbrBlockAlbedoOpacity.js.map