@Override public void main() { super.main(); RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec4 alphaMaskColor = new RVec4("alphaMaskColor"); for(int i=0; i<mTextures.size(); i++) { alphaMaskColor.assign(texture2D(muTextures[i], textureCoord)); startif(new Condition(alphaMaskColor.r(), Operator.LESS_THAN, .5f)); { discard(); } endif(); } }
@Override public void main() { super.main(); RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec4 alphaMaskColor = new RVec4("alphaMaskColor"); for(int i=0; i<mTextures.size(); i++) { alphaMaskColor.assign(texture2D(muTextures[i], textureCoord)); startif(new Condition(alphaMaskColor.r(), Operator.LESS_THAN, .5f)); { discard(); } endif(); } }
@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() { // 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; }