List of usage examples for org.lwjgl.opengl ARBTextureCubeMap GL_NORMAL_MAP_ARB
int GL_NORMAL_MAP_ARB
To view the source code for org.lwjgl.opengl ARBTextureCubeMap GL_NORMAL_MAP_ARB.
Click Source Link
From source file:com.ardor3d.scene.state.lwjgl.LwjglTextureStateUtil.java
License:Open Source License
public static void applyTexCoordGeneration(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { switch (texture.getEnvironmentalMapMode()) { case None://w w w.j a va2s.co m // No coordinate generation setTextureGen(unitRecord, unit, record, caps, false, false, false, false); break; case SphereMap: // generate spherical texture coordinates if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_SPHERE_MAP) { checkAndSetUnit(unit, record, caps); GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_SPHERE_MAP); unitRecord.textureGenSMode = GL11.GL_SPHERE_MAP; GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_SPHERE_MAP); unitRecord.textureGenTMode = GL11.GL_SPHERE_MAP; } setTextureGen(unitRecord, unit, record, caps, true, true, false, false); break; case NormalMap: // generate normals based texture coordinates if (!unitRecord.isValid() || unitRecord.textureGenSMode != ARBTextureCubeMap.GL_NORMAL_MAP_ARB) { checkAndSetUnit(unit, record, caps); GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_NORMAL_MAP_ARB); unitRecord.textureGenSMode = ARBTextureCubeMap.GL_NORMAL_MAP_ARB; GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_NORMAL_MAP_ARB); unitRecord.textureGenTMode = ARBTextureCubeMap.GL_NORMAL_MAP_ARB; GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_NORMAL_MAP_ARB); unitRecord.textureGenRMode = ARBTextureCubeMap.GL_NORMAL_MAP_ARB; } setTextureGen(unitRecord, unit, record, caps, true, true, true, false); break; case ReflectionMap: // generate reflection texture coordinates if (!unitRecord.isValid() || unitRecord.textureGenSMode != ARBTextureCubeMap.GL_REFLECTION_MAP_ARB) { checkAndSetUnit(unit, record, caps); GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_REFLECTION_MAP_ARB); unitRecord.textureGenSMode = ARBTextureCubeMap.GL_REFLECTION_MAP_ARB; GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_REFLECTION_MAP_ARB); unitRecord.textureGenTMode = ARBTextureCubeMap.GL_REFLECTION_MAP_ARB; GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_REFLECTION_MAP_ARB); unitRecord.textureGenRMode = ARBTextureCubeMap.GL_REFLECTION_MAP_ARB; } setTextureGen(unitRecord, unit, record, caps, true, true, true, false); break; case EyeLinear: // do here because we don't check planes checkAndSetUnit(unit, record, caps); // generate eye linear texture coordinates if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_EYE_LINEAR) { GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR); unitRecord.textureGenSMode = GL11.GL_EYE_LINEAR; GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR); unitRecord.textureGenTMode = GL11.GL_EYE_LINEAR; GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR); unitRecord.textureGenRMode = GL11.GL_EYE_LINEAR; GL11.glTexGeni(GL11.GL_Q, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR); unitRecord.textureGenQMode = GL11.GL_EYE_LINEAR; } record.prepPlane(texture.getEnvPlaneS(), TextureStateRecord.DEFAULT_S_PLANE); GL11.glTexGen(GL11.GL_S, GL11.GL_EYE_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneT(), TextureStateRecord.DEFAULT_T_PLANE); GL11.glTexGen(GL11.GL_T, GL11.GL_EYE_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneR(), TextureStateRecord.DEFAULT_R_PLANE); GL11.glTexGen(GL11.GL_R, GL11.GL_EYE_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneQ(), TextureStateRecord.DEFAULT_Q_PLANE); GL11.glTexGen(GL11.GL_Q, GL11.GL_EYE_PLANE, record.plane); setTextureGen(unitRecord, unit, record, caps, true, true, true, true); break; case ObjectLinear: // do here because we don't check planes checkAndSetUnit(unit, record, caps); // generate object linear texture coordinates if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_OBJECT_LINEAR) { GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR); unitRecord.textureGenSMode = GL11.GL_OBJECT_LINEAR; GL11.glTexGeni(GL11.GL_T, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR); unitRecord.textureGenTMode = GL11.GL_OBJECT_LINEAR; GL11.glTexGeni(GL11.GL_R, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR); unitRecord.textureGenRMode = GL11.GL_OBJECT_LINEAR; GL11.glTexGeni(GL11.GL_Q, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR); unitRecord.textureGenQMode = GL11.GL_OBJECT_LINEAR; } record.prepPlane(texture.getEnvPlaneS(), TextureStateRecord.DEFAULT_S_PLANE); GL11.glTexGen(GL11.GL_S, GL11.GL_OBJECT_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneT(), TextureStateRecord.DEFAULT_T_PLANE); GL11.glTexGen(GL11.GL_T, GL11.GL_OBJECT_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneR(), TextureStateRecord.DEFAULT_R_PLANE); GL11.glTexGen(GL11.GL_R, GL11.GL_OBJECT_PLANE, record.plane); record.prepPlane(texture.getEnvPlaneQ(), TextureStateRecord.DEFAULT_Q_PLANE); GL11.glTexGen(GL11.GL_Q, GL11.GL_OBJECT_PLANE, record.plane); setTextureGen(unitRecord, unit, record, caps, true, true, true, true); break; } }