/** * Assigns a value to a shader variable. Equivalent to GLSL's '=' operator. * * @param value */ public void assign(float value) { assign(Float.toString(value)); }
mvAmbientColor.rgb().assign(muAmbientColor.rgb().multiply(muAmbientIntensity.rgb()));
@Override public void main() { // float far=gl_DepthRange.far; // float near=gl_DepthRange.near; // // vec4 eye_space_pos = gl_ModelViewMatrix * /*something*/ // vec4 clip_space_pos = gl_ProjectionMatrix * eye_space_pos; // // float ndc_depth = clip_space_pos.z / clip_space_pos.w; // // float depth = (((far-near) * ndc_depth) + near + far) / 2.0; // gl_FragDepth = depth; RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); RFloat depth = new RFloat("depth"); depth.assign(1.0f); depth.assignSubtract(enclose(GL_FRAG_COORD.z().divide(GL_FRAG_COORD.w())).divide(muFarPlane)); //float z = 1.0 - (gl_FragCoord.z / gl_FragCoord.w) / u_far; //depth.assignSubtract(enclose(GL_FRAG_COORD.z().divide(GL_FRAG_COORD.w()))); //depth.assign(GL_FRAG_COORD.w().divide(far)); color.r().assign(depth); color.g().assign(depth); color.b().assign(depth); //float depth = 1.0 - (gl_FragCoord.z / gl_FragCoord.w) / 9.5; }
@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() { RVec2 gTextureCoord = (RVec2) getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RFloat tileSizeX = new RFloat("tileSizeX"); tileSizeX.assign(1.f / mNumTiles[0]); RFloat tileSizeY = new RFloat("tileSizeY"); tileSizeY.assign(1.f / mNumTiles[1]); RFloat texSOffset = new RFloat("texSOffset", gTextureCoord.s().multiply(tileSizeX)); RFloat texTOffset = new RFloat("texTOffset", gTextureCoord.t().multiply(tileSizeY)); gTextureCoord.s().assign(mod(muCurrentFrame, muNumTiles.x()).multiply(tileSizeX).add(texSOffset)); gTextureCoord.t().assign(tileSizeY.multiply(floor(muCurrentFrame.divide(muNumTiles.y()))).add(texTOffset)); }
@Override public void main() { // -- color.rgb = mix(gl_FragColor.rgb, uFogColor, vFogDensity);\n" + RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); color.rgb().assign(mix(color.rgb(), muFogColor, mvFogDensity)); }
/** * Assigns a value to a shader variable. Equivalent to GLSL's '=' operator. * * @param value */ public void assign(ShaderVar value) { assign(value.getValue() != null ? value.getValue() : value.getName()); }
/** * Assigns a value to a shader variable. Equivalent to GLSL's '=' operator. * * @param value */ public void assign(float value) { assign(Float.toString(value)); }
v.assignMultiply(0); v.assignMultiply(v); v.r().assign(0); v.r().assign(0x00); v.r().assign("(0+0)"); v.g().assign(0); v.g().assign(0x00); v.g().assign("(0+0)"); v.b().assign(0); v.b().assign(0x00); v.b().assign("(0+0)"); v.a().assign(0); v.a().assign(0x00); v.a().assign("(0+0)"); v.w().assign(0); v.w().assign(0x00); v.w().assign("(0+0)"); v.x().assign(0); v.x().assign(0x00); v.x().assign("(0+0)"); v.y().assign(0); v.y().assign(0x00); v.y().assign("(0+0)"); v.z().assign(0); v.z().assign(0x00); v.z().assign("(0+0)");
v.assignMultiply(0); v.assignMultiply(v); v.r().assign(0); v.r().assign(0x00); v.r().assign("(0+0)"); v.g().assign(0); v.g().assign(0x00); v.g().assign("(0+0)"); v.b().assign(0); v.b().assign(0x00); v.b().assign("(0+0)"); v.x().assign(0); v.x().assign(0x00); v.x().assign("(0+0)"); v.y().assign(0); v.y().assign(0x00); v.y().assign("(0+0)"); v.z().assign(0); v.z().assign(0x00); v.z().assign("(0+0)");
@Override public void main() { RVec2 v = new RVec2("v"); v.assign(0); v.assign(0, 0); v.assignAdd(0); v.assignAdd(v); v.assignSubtract(0); v.assignSubtract(v); v.assignMultiply(0); v.assignMultiply(v); v.s().assign(0); v.s().assign(0x00); v.s().assign("(0+0)"); v.t().assign(0); v.t().assign(0x00); v.t().assign("(0+0)"); v.x().assign(0); v.x().assign(0x00); v.x().assign("(0+0)"); v.y().assign(0); v.y().assign(0x00); v.y().assign("(0+0)"); } };
@Override public void main() { // float far=gl_DepthRange.far; // float near=gl_DepthRange.near; // // vec4 eye_space_pos = gl_ModelViewMatrix * /*something*/ // vec4 clip_space_pos = gl_ProjectionMatrix * eye_space_pos; // // float ndc_depth = clip_space_pos.z / clip_space_pos.w; // // float depth = (((far-near) * ndc_depth) + near + far) / 2.0; // gl_FragDepth = depth; RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); RFloat depth = new RFloat("depth"); depth.assign(1.0f); depth.assignSubtract(enclose(GL_FRAG_COORD.z().divide(GL_FRAG_COORD.w())).divide(muFarPlane)); //float z = 1.0 - (gl_FragCoord.z / gl_FragCoord.w) / u_far; //depth.assignSubtract(enclose(GL_FRAG_COORD.z().divide(GL_FRAG_COORD.w()))); //depth.assign(GL_FRAG_COORD.w().divide(far)); color.r().assign(depth); color.g().assign(depth); color.b().assign(depth); //float depth = 1.0 - (gl_FragCoord.z / gl_FragCoord.w) / 9.5; }
@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(); }
/** * Assigns a value to a shader variable. Equivalent to GLSL's '=' operator. * * @param value */ public void assign(ShaderVar value) { assign(value.getValue() != null ? value.getValue() : value.getName()); }
@Override public void main() { // -- color.rgb = mix(gl_FragColor.rgb, uFogColor, vFogDensity);\n" + RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); color.rgb().assign(mix(color.rgb(), muFogColor, mvFogDensity)); }
@Override public void main() { RVec2 gTextureCoord = (RVec2) getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RFloat tileSizeX = new RFloat("tileSizeX"); tileSizeX.assign(1.f / mNumTiles[0]); RFloat tileSizeY = new RFloat("tileSizeY"); tileSizeY.assign(1.f / mNumTiles[1]); RFloat texSOffset = new RFloat("texSOffset", gTextureCoord.s().multiply(tileSizeX)); RFloat texTOffset = new RFloat("texTOffset", gTextureCoord.t().multiply(tileSizeY)); gTextureCoord.s().assign(mod(muCurrentFrame, muNumTiles.x()).multiply(tileSizeX).add(texSOffset)); gTextureCoord.t().assign(tileSizeY.multiply(floor(muCurrentFrame.divide(muNumTiles.y()))).add(texTOffset)); }