@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))); } }
power.assign(lightPower.multiply(nDotL).multiply(attenuation)); intensity.assignAdd(power);
mvAmbientColor.rgb().assign(muAmbientColor.rgb().multiply(muAmbientIntensity.rgb())); muLightAttenuation[lightAttCount].index(1) .add(muLightAttenuation[lightAttCount].index(2)) .multiply(mgLightDistance) .add(muLightAttenuation[lightAttCount].index(3)) .multiply(mgLightDistance) .multiply(mgLightDistance)
m.assignMultiply(-.5f); cmColor.assign(texture2D(muTextures[sphereMapCount++], reflected.xy().multiply(m).add(castVec2(.5f))));
@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))); } }
@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() { 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)); }
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()))))
mvAmbientColor.rgb().assign(muAmbientColor.rgb().multiply(muAmbientIntensity.rgb())); muLightAttenuation[lightAttCount].index(1) .add(muLightAttenuation[lightAttCount].index(2)) .multiply(mgLightDistance) .add(muLightAttenuation[lightAttCount].index(3)) .multiply(mgLightDistance) .multiply(mgLightDistance)
power.assign(lightPower.multiply(nDotL).multiply(attenuation)); intensity.assignAdd(power);
m.assignMultiply(-.5f); cmColor.assign(texture2D(muTextures[sphereMapCount++], reflected.xy().multiply(m).add(castVec2(.5f))));
horizEdge.assign(0,0,0,0); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y - uSobel.y )"); horizEdge.assignSubtract(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y )"); horizEdge.assignSubtract(texture2D( uTexture, pos).multiply(2)); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y + uSobel.y )"); horizEdge.assignSubtract(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x + uSobel.x, vTextureCoord.y - uSobel.y )"); horizEdge.assignAdd(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x + uSobel.x, vTextureCoord.y )"); horizEdge.assignAdd(texture2D( uTexture, pos).multiply(2)); pos.assign("vec2( vTextureCoord.x + uSobel.x, vTextureCoord.y + uSobel.y )"); horizEdge.assignAdd(texture2D( uTexture, pos).multiply(1)); vertEdge.assignSubtract(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x , vTextureCoord.y - uSobel.y )"); vertEdge.assignSubtract(texture2D( uTexture, pos).multiply(2)); pos.assign("vec2( vTextureCoord.x + uSobel.x, vTextureCoord.y - uSobel.y )"); vertEdge.assignSubtract(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x - uSobel.x, vTextureCoord.y + uSobel.y )"); vertEdge.assignAdd(texture2D( uTexture, pos).multiply(1)); pos.assign("vec2( vTextureCoord.x , vTextureCoord.y + uSobel.y )"); vertEdge.assignAdd(texture2D( uTexture, pos).multiply(2)); pos.assign("vec2( vTextureCoord.x + uSobel.x, vTextureCoord.y + uSobel.y )"); vertEdge.assignAdd(texture2D( uTexture, pos).multiply(1)); edge.assign(sqrt((horizEdge.rgb().multiply(horizEdge.rgb()).add(vertEdge.rgb().multiply(vertEdge.rgb())))));
@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() { 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)); }