RVec4 specMapColor = new RVec4("specMapColor"); specMapColor.assign(castVec4(0)); RVec4 specColor = new RVec4("specColor" + i); specColor.assign(texture2D(muTextures[i], textureCoord)); specColor.assignMultiply(muInfluence[i]); specMapColor.assignAdd(specColor); color.rgb().assignAdd(specular.multiply(muSpecularColor).multiply(specMapColor.rgb())); color.rgb().assignAdd(specular.multiply(muSpecularColor));
@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() { mgPosition.assign(maPosition); mgNormal.assign(maNormal); mgTextureCoord.assign(maTextureCoord); if(mUseVertexColors) mgColor.assign(maVertexColor); else mgColor.assign(muColor); mvColor.assign(mgColor); mvEyeDir.assign(castVec3(muModelViewMatrix.multiply(mgPosition)));
enclose(maBoneWeight1.x().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex1.x())))).add( enclose(maBoneWeight1.y().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex1.y())))).add( enclose(maBoneWeight1.z().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex1.z())))).add( enclose(maBoneWeight1.w().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex1.w())))) enclose(maBoneWeight2.x().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex2.x())))).add( enclose(maBoneWeight2.y().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex2.y())))).add( enclose(maBoneWeight2.z().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex2.z())))).add( enclose(maBoneWeight2.w().multiply(muBoneMatrix.elementAt(castInt(maBoneIndex2.w()))))
return new RVec3(name); case VEC4: return new RVec4(name); case MAT3: return new RMat3(name);
RVec4 position = (RVec4) getGlobal(DefaultShaderVar.G_POSITION); mvEye.assign(enclose(modelMatrix.multiply(position))); mvAmbientColor.rgb().assign(muAmbientColor.rgb().multiply(muAmbientIntensity.rgb())); mgLightDistance.assign(distance(mvEye.xyz(), muLightPosition[i])); .divide( enclose( muLightAttenuation[lightAttCount].index(1) .add(muLightAttenuation[lightAttCount].index(2)) .multiply(mgLightDistance) .add(muLightAttenuation[lightAttCount].index(3)) .multiply(mgLightDistance) .multiply(mgLightDistance)
RVec4 specMapColor = new RVec4("specMapColor"); specMapColor.assign(castVec4(0)); RVec4 specColor = new RVec4("specColor" + i); specColor.assign(texture2D(muTextures[i], textureCoord)); specColor.assignMultiply(muInfluence[i]); specMapColor.assignAdd(specColor); color.rgb().assignAdd(specular.multiply(muSpecularColor).multiply(specMapColor.rgb())); color.rgb().assignAdd(specular.multiply(muSpecularColor));
super.main(); RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); RVec4 cmColor = new RVec4("cmColor"); RVec3 eyeDir = (RVec3) getGlobal(DefaultShaderVar.V_EYE_DIR); RVec3 normal = (RVec3) getGlobal(DefaultShaderVar.V_NORMAL); m.assign(inversesqrt(dot(reflected, reflected))); m.assignMultiply(-.5f); cmColor.assign(texture2D(muTextures[sphereMapCount++], reflected.xy().multiply(m).add(castVec2(.5f)))); cmColor.assign(textureCube(muCubeTextures[cubeMapCount++], reflected)); cmColor.assignMultiply(muInfluence[i]); color.assignAdd(cmColor);
@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() { super.main(); RVec4 color = (RVec4)getGlobal(DefaultShaderVar.G_COLOR); RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec4 texColor = new RVec4("texColor"); for(int i=0; i<mTextures.size(); i++) { ATexture texture = mTextures.get(i); if(texture.offsetEnabled()) textureCoord.assignAdd(getGlobal(DefaultShaderVar.U_OFFSET, i)); if(texture.getWrapType() == WrapType.REPEAT) textureCoord.assignMultiply(getGlobal(DefaultShaderVar.U_REPEAT, i)); if(texture.getTextureType() == TextureType.VIDEO_TEXTURE) texColor.assign(texture2D(muVideoTextures[i], textureCoord)); else texColor.assign(texture2D(muTextures[i], textureCoord)); texColor.assignMultiply(muInfluence[i]); color.assignAdd(texColor); } }
@Override public void main() { mgNormal.assign(normalize(mvNormal)); mgTextureCoord.assign(mvTextureCoord); mgColor.assign(muColorInfluence.multiply(mvColor)); mgShadowValue.assign(0.0f); mgSpecularValue.assign(1.0f); for(int i=0; i<mShaderFragments.size(); i++) { IShaderFragment fragment = mShaderFragments.get(i); fragment.setStringBuilder(mShaderSB); fragment.main(); } GL_FRAG_COLOR.assign(mgColor); }
@Override public void main() { super.main(); RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); RVec4 skyColor = new RVec4("skyColor"); RVec3 texCoord = (RVec3) getGlobal(DefaultShaderVar.V_CUBE_TEXTURE_COORD); int cubeMapCount = 0; for (int i = 0; i < mTextures.size(); ++i) { if(mTextures.get(i).getTextureType() == TextureType.CUBE_MAP) { skyColor.assign(textureCube(muCubeTextures[cubeMapCount++], texCoord)); } skyColor.assignMultiply(muInfluence[i]); color.assignAdd(skyColor); } }
@Override public void main() { RVec4 position = (RVec4)getGlobal(DefaultShaderVar.G_POSITION); RVec3 normal = (RVec3)getGlobal(DefaultShaderVar.G_NORMAL); RVec4 aPosition = (RVec4)getGlobal(DefaultShaderVar.A_POSITION); RVec3 aNormal = (RVec3)getGlobal(DefaultShaderVar.A_NORMAL); // // -- position = aPosition + uInterpolation * (aNextFramePosition - aPosition); // position.assign(aPosition.add(muInterpolation.multiply(enclose(maNextFramePosition.subtract(aPosition))))); // // -- normal = aNormal + uInterpolation * (aNextFrameNormal - aNormal); // normal.assign(aNormal.add(muInterpolation.multiply(enclose(maNextFrameNormal.subtract(aNormal))))); }
@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(); } }
public RVec2(DefaultShaderVar var) { this(var, new RVec4("vec2()")); }
public RVec4(DefaultShaderVar var) { this(var, new RVec4("vec4()")); }
public RVec3(DefaultShaderVar var) { this(var, new RVec4("vec3()")); }
public RVec4 texture2DProj(ShaderVar var1, ShaderVar var2) { RVec4 s = new RVec4("texture2DProj(" + var1.getName() + ", " + var2.getName() + ")", DataType.VEC4); s.mInitialized = true; return s; }