@Override public void main() { RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec3 texNormal = new RVec3("texNormal"); RVec3 normal = (RVec3)getGlobal(DefaultShaderVar.G_NORMAL); for(int i=0; i<mTextures.size(); i++) { texNormal.assign(castVec3(texture2D(muTextures[i], textureCoord))); texNormal.assign(texNormal.rgb().multiply(2)); texNormal.assignSubtract(1); texNormal.assign(normalize(texNormal)); if(mTextures.get(i).getInfluence() != 1) texNormal.assignMultiply(mTextures.get(i).getInfluence()); normal.assign(normalize(texNormal.add(normal))); } }
RVec3 normal = (RVec3) getGlobal(DefaultShaderVar.V_NORMAL); RVec3 reflected = new RVec3("reflected"); reflected.assign(reflect(eyeDir.xyz(), normal)); reflected.assign(normalize(reflected)); RVec3 viewNormal = new RVec3("viewNormal"); viewNormal.assign(castVec3(multiply(inverseV, castVec4(normal, 0)))); reflected.assign(reflect(eyeDir.xyz(), viewNormal));
RVec3 lightDir = new RVec3("lightDir" + i); RFloat nDotL = mgNdotL[i]; nDotL.assign(max(dot(normal, lightDir), 0.1f));
RVec3 lightDir = new RVec3("lightDir" + i); RFloat nDotL = mgNdotL[i]; nDotL.assign(max(dot(normal, lightDir), 0.1f));
return new RVec2(name); case VEC3: return new RVec3(name); case VEC4: return new RVec4(name);
RVec3 normal = (RVec3) getGlobal(DefaultShaderVar.V_NORMAL); RVec3 reflected = new RVec3("reflected"); reflected.assign(reflect(eyeDir.xyz(), normal));
@Override public void main() { RVec2 textureCoord = (RVec2)getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RVec3 texNormal = new RVec3("texNormal"); RVec3 normal = (RVec3)getGlobal(DefaultShaderVar.G_NORMAL); for(int i=0; i<mTextures.size(); i++) { texNormal.assign(castVec3(texture2D(muTextures[i], textureCoord))); texNormal.assign(texNormal.rgb().multiply(2)); texNormal.assignSubtract(1); texNormal.assign(normalize(texNormal)); if(mTextures.get(i).getInfluence() != 1) texNormal.assignMultiply(mTextures.get(i).getInfluence()); normal.assign(normalize(texNormal.add(normal))); } }
return new RVec2(name); case VEC3: return new RVec3(name); case VEC4: return new RVec4(name);
vertEdge.assignAdd(texture2D( uTexture, pos).multiply(1)); RVec3 edge = new RVec3("edge"); edge.assign(sqrt((horizEdge.rgb().multiply(horizEdge.rgb()).add(vertEdge.rgb().multiply(vertEdge.rgb())))));
@Override public void main() { RVec3 v = new RVec3("v"); v.assign(0); v.assign(0, 0, 0);