@Override public void main() { RVec4 lightDepthCol = new RVec4("lightDepthCol"); lightDepthCol.assign(texture2D(muShadowMapTexture, mvShadowTexCoord.xy())); ShaderVar gShadowValue = getGlobal(DefaultShaderVar.G_SHADOW_VALUE); ShaderVar gSpecularValue = getGlobal(DefaultShaderVar.G_SPECULAR_VALUE); RVec3 gNormal = (RVec3) getGlobal(DefaultShaderVar.G_NORMAL); RFloat shadowLightAngle = new RFloat("shadowLightAngle"); shadowLightAngle.assign(dot(gNormal, muShadowLightDir)); startif( new Condition(lightDepthCol.z(), Operator.LESS_THAN, mvShadowTexCoord.z().subtract(mcShadowBias)), new Condition(Operator.AND, shadowLightAngle, Operator.LESS_THAN_EQUALS, -.15f) ); { gShadowValue.assign(muShadowInfluence); gSpecularValue.assign(0.0f); } endif(); }
@Override public void main() { // -- vFogDensity = 0.0; mvFogDensity.assign(0); // -- if (uFogEnabled == true){ startif(new Condition(muFogEnabled, Operator.EQUALS, true)); { // -- vFogDensity = (gl_Position.z - uFogNear) / (uFogFar - uFogNear); mvFogDensity.assign( enclose(GL_POSITION.z().subtract(muFogNear)).divide( enclose(muFogFar.subtract(muFogNear)) ) ); // -- vFogDensity = clamp(vFogDensity, 0.0, 1.0); mvFogDensity.assign(clamp(mvFogDensity, 0, 1)); } endif(); }
uvAnim.y().assign(uv.y().subtract(0.5f));
@Override public void main() { RVec4 lightDepthCol = new RVec4("lightDepthCol"); lightDepthCol.assign(texture2D(muShadowMapTexture, mvShadowTexCoord.xy())); ShaderVar gShadowValue = getGlobal(DefaultShaderVar.G_SHADOW_VALUE); ShaderVar gSpecularValue = getGlobal(DefaultShaderVar.G_SPECULAR_VALUE); RVec3 gNormal = (RVec3) getGlobal(DefaultShaderVar.G_NORMAL); RFloat shadowLightAngle = new RFloat("shadowLightAngle"); shadowLightAngle.assign(dot(gNormal, muShadowLightDir)); startif( new Condition(lightDepthCol.z(), Operator.LESS_THAN, mvShadowTexCoord.z().subtract(mcShadowBias)), new Condition(Operator.AND, shadowLightAngle, Operator.LESS_THAN_EQUALS, -.15f) ); { gShadowValue.assign(muShadowInfluence); gSpecularValue.assign(0.0f); } endif(); }
@Override public void main() { // -- vFogDensity = 0.0; mvFogDensity.assign(0); // -- if (uFogEnabled == true){ startif(new Condition(muFogEnabled, Operator.EQUALS, true)); { // -- vFogDensity = (gl_Position.z - uFogNear) / (uFogFar - uFogNear); mvFogDensity.assign( enclose(GL_POSITION.z().subtract(muFogNear)).divide( enclose(muFogFar.subtract(muFogNear)) ) ); // -- vFogDensity = clamp(vFogDensity, 0.0, 1.0); mvFogDensity.assign(clamp(mvFogDensity, 0, 1)); } endif(); }