public void assign(float value1, float value2, float value3, float value4) { assign("vec4(" +Float.toString(value1)+ ", " +Float.toString(value2)+ ", " +Float.toString(value3)+ ", " +Float.toString(value4)+ ")"); } }
@Override public void assign(float value) { assign("vec4(" + Float.toString(value) + ")"); }
@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() { 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)));
RVec4 position = (RVec4) getGlobal(DefaultShaderVar.G_POSITION); mvEye.assign(enclose(modelMatrix.multiply(position))); mvAmbientColor.rgb().assign(muAmbientColor.rgb().multiply(muAmbientIntensity.rgb()));
m.assign(inversesqrt(dot(reflected, reflected))); m.assignMultiply(-.5f); cmColor.assign(texture2D(muTextures[sphereMapCount++], reflected.xy().multiply(m).add(castVec2(.5f)))); reflected.assign(castVec3(multiply(inverseV, castVec4(reflected, 0)))); reflected.x().assignMultiply(-1); cmColor.assign(textureCube(muCubeTextures[cubeMapCount++], reflected));
horizEdge.assign(0,0,0,0); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y - uSobel.y )"); horizEdge.assignSubtract(texture2D( uTexture, pos).multiply(1)); vertEdge.assign(0,0,0,0); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y - uSobel.y )"); vertEdge.assignSubtract(texture2D( uTexture, pos).multiply(1));
@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[videoTextureMap.indexOf(i)], textureCoord)); else texColor.assign(texture2D(muTextures[textureMap.indexOf(i)], textureCoord)); texColor.assignMultiply(muInfluence[i]); color.assignAdd(texColor); } }
@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() { 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() { 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(); 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() { RVec2 pos = new RVec2("pos"); pos.assign(vTextureCoord); pos.x().assignSubtract(mod(pos.x(), uGrid.x())); pos.y().assignSubtract(mod(pos.y(), uGrid.y())); RVec4 srcColor = new RVec4("srcColor"); srcColor.assign(texture2D(uTexture, pos)); GL_FRAG_COLOR.assign(srcColor); } }
@Override public void main() { RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec4 emissionCol = new RVec4("emissionCol"); emissionCol.assign(texture2D(muEmissionTexture, textureCoord)); RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); color.assignAdd(emissionCol); } }
@Override public void main() { RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec4 decalCol = new RVec4("decalCol"); if(mDecalTexture.offsetEnabled()) textureCoord.assignAdd(muDecalOffset); if(mDecalTexture.getWrapType() == ATexture.WrapType.REPEAT) textureCoord.assignMultiply(muDecalRepeat); decalCol.assign(texture2D(muDecalTexture, textureCoord)); RVec4 color = (RVec4) getGlobal(DefaultShaderVar.G_COLOR); color.assign(mix(color, decalCol, decalCol.a())); } }
@Override public void main() { ShaderVar position = getGlobal(DefaultShaderVar.A_POSITION); ShaderVar modelMatrix = getGlobal(DefaultShaderVar.U_MODEL_MATRIX); mvShadowTexCoord.assign(muLightModelViewProjectionMatrix.multiply(modelMatrix.multiply(position))); mvShadowTexCoord.assign(mcBiasMatrix.multiply(mvShadowTexCoord)); }