1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/*******************************
* TEXTURES INITIALISATION *
*******************************/
private void loadGLTextures(GL gl, GLU glu) throws IOException
{
// Skydome texture
gl.glGenTextures(1, skyTexture, 0); // Create one Textures
TextureReader.Texture texture = TextureReader.readTexture("sky_MD.jpg");
gl.glBindTexture(GL.GL_TEXTURE_2D, skyTexture[0]);
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGB8, texture.getWidth(),texture.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE,texture.getPixels());
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST);
System.err.println("Texture : sky_MD.jpg "+texture.getWidth()+"x"+texture.getHeight()+" LOADED");
// Load Water texture
texture = TextureReader.readTexture("waterTextureHD.jpg");
gl.glGenTextures(2, waterTexture, 0); // Create Three Textures
gl.glBindTexture(GL.GL_TEXTURE_2D, waterTexture[0]); // Create Nearest Filtered Texture
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, 3, texture.getWidth(), texture.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, texture.getPixels());
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MIN_FILTER,GL.GL_LINEAR); // Linear Filtering
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MAG_FILTER,GL.GL_LINEAR); // Linear Filtering
System.err.println("Texture : waterTextureHD.jpg "+texture.getWidth()+"x"+texture.getHeight()+" LOADED");
// Load The Bumpmaps
texture = TextureReader.readTexture("waterTextureHDNormalMap2.jpg");
gl.glBindTexture(GL.GL_TEXTURE_2D, waterTexture[1]); // Create Nearest Filtered Texture
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGB8, texture.getWidth(), texture.getHeight(), 0, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, texture.getPixels());
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MIN_FILTER,GL.GL_LINEAR); // Linear Filtering
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MAG_FILTER,GL.GL_LINEAR); // Linear Filtering
System.err.println("Texture : waterTextureHDNormalMap.jpg "+texture.getWidth()+"x"+texture.getHeight()+" LOADED");
gl.glActiveTexture(GL.GL_TEXTURE1);
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glBindTexture(GL.GL_TEXTURE_2D, waterTexture[1]);
gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_COMBINE);
gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_COMBINE_RGB, GL.GL_DOT3_RGB) ;
gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_SOURCE0_RGB, GL.GL_PREVIOUS) ;
gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_SOURCE1_RGB, GL.GL_TEXTURE) ;
gl.glActiveTexture(GL.GL_TEXTURE2);
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glBindTexture(GL.GL_TEXTURE_2D, waterTexture[0]);
gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_MODULATE);
} |
Partager