List of usage examples for org.lwjgl.opengl GL30 GL_RGBA32F
int GL_RGBA32F
To view the source code for org.lwjgl.opengl GL30 GL_RGBA32F.
Click Source Link
From source file:com.samrj.devil.graphics.TexUtil.java
License:Open Source License
/** * Returns the OpenGL format best corresponding with the given image, or -1 * if none could be found.// w w w .j a v a 2 s. c o m * * @param image The image to get the format of. * @return The OpenGL format of the given image, or -1 if none exists. */ public static int getFormat(Image image) { switch (image.type) { case BYTE: switch (image.bands) { case 1: return GL30.GL_R8; case 2: return GL30.GL_RG8; case 3: return GL11.GL_RGB8; case 4: return GL11.GL_RGBA8; } break; case CHAR: switch (image.bands) { case 1: return GL30.GL_R16; case 2: return GL30.GL_RG16; case 3: return GL11.GL_RGB16; case 4: return GL11.GL_RGBA16; } break; case SHORT: switch (image.bands) { case 1: return GL30.GL_R16I; case 2: return GL30.GL_RG16I; case 3: return GL30.GL_RGB16I; case 4: return GL30.GL_RGBA16I; } break; case INT: switch (image.bands) { case 1: return GL30.GL_R32I; case 2: return GL30.GL_RG32I; case 3: return GL30.GL_RGB32I; case 4: return GL30.GL_RGBA32I; } break; case FLOAT: switch (image.bands) { case 1: return GL30.GL_R32F; case 2: return GL30.GL_RG32F; case 3: return GL30.GL_RGB32F; case 4: return GL30.GL_RGBA32F; } break; } return -1; }
From source file:com.samrj.devil.graphics.TexUtil.java
License:Open Source License
/** * @param format an OpenGL texture format. * @return the base OpenGL internal texture format corresponding with the * given format./*from w ww . ja v a2 s . c o m*/ */ public static int getBaseFormat(int format) { switch (format) { //Forward-compatible formats. case GL11.GL_DEPTH_COMPONENT: case GL14.GL_DEPTH_COMPONENT16: case GL14.GL_DEPTH_COMPONENT24: case GL14.GL_DEPTH_COMPONENT32: case GL30.GL_DEPTH_COMPONENT32F: return GL11.GL_DEPTH_COMPONENT; case GL11.GL_RED: case GL30.GL_R8: case GL30.GL_R16: case GL30.GL_R16F: case GL30.GL_R16I: case GL30.GL_R32F: case GL30.GL_R32I: return GL11.GL_RED; case GL30.GL_DEPTH_STENCIL: case GL30.GL_DEPTH24_STENCIL8: case GL30.GL_DEPTH32F_STENCIL8: return GL30.GL_DEPTH_STENCIL; case GL30.GL_RG: case GL30.GL_RG8: case GL30.GL_RG16: case GL30.GL_RG16F: case GL30.GL_RG16I: case GL30.GL_RG32F: case GL30.GL_RG32I: return GL30.GL_RG; case GL11.GL_RGB: case GL11.GL_R3_G3_B2: case GL11.GL_RGB4: case GL11.GL_RGB5: case GL11.GL_RGB8: case GL11.GL_RGB10: case GL11.GL_RGB12: case GL11.GL_RGB16: case GL30.GL_RGB16F: case GL30.GL_RGB16I: case GL30.GL_RGB32F: case GL30.GL_RGB32I: return GL11.GL_RGB; case GL11.GL_RGBA: case GL11.GL_RGBA2: case GL11.GL_RGBA4: case GL11.GL_RGBA8: case GL11.GL_RGBA12: case GL11.GL_RGBA16: case GL30.GL_RGBA16F: case GL30.GL_RGBA16I: case GL30.GL_RGBA32F: case GL30.GL_RGBA32I: return GL11.GL_RGBA; //Deprecated formats. case GL11.GL_LUMINANCE: case GL11.GL_LUMINANCE8: case GL11.GL_LUMINANCE16: return GL11.GL_LUMINANCE; case GL11.GL_ALPHA: case GL11.GL_ALPHA8: case GL11.GL_ALPHA16: return GL11.GL_ALPHA; case GL11.GL_LUMINANCE_ALPHA: case GL11.GL_LUMINANCE8_ALPHA8: case GL11.GL_LUMINANCE16_ALPHA16: return GL11.GL_LUMINANCE_ALPHA; default: return -1; } }
From source file:com.samrj.devil.graphics.TexUtil.java
License:Open Source License
/** * Returns the OpenGL field name for the given format. * /* w w w . j a va2 s . co m*/ * @param format An OpenGL texture format. * @return The OpenGL field name for the given format. */ public static String formatToString(int format) { switch (format) { case GL11.GL_DEPTH_COMPONENT: return "GL_DEPTH_COMPONENT"; case GL14.GL_DEPTH_COMPONENT16: return "GL_DEPTH_COMPONENT16"; case GL14.GL_DEPTH_COMPONENT24: return "GL_DEPTH_COMPONENT24"; case GL14.GL_DEPTH_COMPONENT32: return "GL_DEPTH_COMPONENT32"; case GL30.GL_DEPTH_COMPONENT32F: return "GL_DEPTH_COMPONENT32F"; case GL11.GL_RED: return "GL_RED"; case GL30.GL_R8: return "GL_R8"; case GL30.GL_R16: return "GL_R16"; case GL30.GL_R16F: return "GL_R16F"; case GL30.GL_R16I: return "GL_R16I"; case GL30.GL_R32F: return "GL_R32F"; case GL30.GL_R32I: return "GL_R32I"; case GL30.GL_DEPTH_STENCIL: return "GL_DEPTH_STENCIL"; case GL30.GL_DEPTH24_STENCIL8: return "GL_DEPTH24_STENCIL8"; case GL30.GL_DEPTH32F_STENCIL8: return "GL_DEPTH32F_STENCIL8"; case GL30.GL_RG: return "GL_RG"; case GL30.GL_RG8: return "GL_RG8"; case GL30.GL_RG16: return "GL_RG16"; case GL30.GL_RG16F: return "GL_RG16F"; case GL30.GL_RG16I: return "GL_RG16I"; case GL30.GL_RG32F: return "GL_RG32F"; case GL30.GL_RG32I: return "GL_RG32I"; case GL11.GL_RGB: return "GL_RGB"; case GL11.GL_RGB8: return "GL_RGB8"; case GL11.GL_RGB16: return "GL_RGB16"; case GL30.GL_RGB16F: return "GL_RGB16F"; case GL30.GL_RGB16I: return "GL_RGB16I"; case GL30.GL_RGB32F: return "GL_RGB32F"; case GL30.GL_RGB32I: return "GL_RGB32I"; case GL11.GL_RGBA: return "GL_RGBA"; case GL11.GL_RGBA8: return "GL_RGBA8"; case GL11.GL_RGBA16: return "GL_RGBA16"; case GL30.GL_RGBA16F: return "GL_RGBA16F"; case GL30.GL_RGBA16I: return "GL_RGBA16I"; case GL30.GL_RGBA32F: return "GL_RGBA32F"; case GL30.GL_RGBA32I: return "GL_RGBA32I"; case GL11.GL_LUMINANCE: return "GL_LUMINANCE"; case GL11.GL_LUMINANCE8: return "GL_LUMINANCE8"; case GL11.GL_LUMINANCE16: return "GL_LUMINANCE16"; case GL11.GL_ALPHA: return "GL_ALPHA"; case GL11.GL_ALPHA8: return "GL_ALPHA8"; case GL11.GL_ALPHA16: return "GL_ALPHA16"; case GL11.GL_LUMINANCE_ALPHA: return "GL_LUMINANCE_ALPHA"; case GL11.GL_LUMINANCE8_ALPHA8: return "GL_LUMINANCE8_ALPHA8"; case GL11.GL_LUMINANCE16_ALPHA16: return "GL_LUMINANCE16_ALPHA16"; default: return "UNSUPPORTED_FORMAT"; } }
From source file:com.samrj.devil.graphics.TexUtil.java
License:Open Source License
/** * Returns the OpenGL enumerator for the given primitive type. * /*from w w w. jav a 2s . c o m*/ * @param format an OpenGL texture format. * @return the primitive data type associated with the given OpenGL format. */ public static int getPrimitiveType(int format) { switch (format) { default: case GL11.GL_LUMINANCE8: case GL11.GL_ALPHA8: case GL11.GL_LUMINANCE8_ALPHA8: case GL30.GL_R8: case GL30.GL_RG8: case GL11.GL_RGB8: case GL11.GL_RGBA8: return GL11.GL_UNSIGNED_BYTE; case GL11.GL_LUMINANCE16: case GL11.GL_ALPHA16: case GL11.GL_LUMINANCE16_ALPHA16: case GL14.GL_DEPTH_COMPONENT16: case GL30.GL_R16: case GL30.GL_RG16: case GL11.GL_RGB16: case GL11.GL_RGBA16: return GL11.GL_UNSIGNED_SHORT; case GL30.GL_R16I: case GL30.GL_RG16I: case GL30.GL_RGB16I: case GL30.GL_RGBA16I: return GL11.GL_SHORT; case GL30.GL_DEPTH_COMPONENT32F: case GL30.GL_R32F: case GL30.GL_RG32F: case GL30.GL_RGB32F: case GL30.GL_RGBA32F: return GL11.GL_FLOAT; case GL30.GL_R32I: case GL30.GL_RG32I: case GL30.GL_RGB32I: case GL30.GL_RGBA32I: return GL11.GL_INT; case GL30.GL_DEPTH24_STENCIL8: return GL30.GL_UNSIGNED_INT_24_8; } }
From source file:com.samrj.devil.graphics.TexUtil.java
License:Open Source License
/** * @param format an OpenGL texture format. * @return Approximately how many bits are stored per texel for the given format. *//*from w w w . j a v a 2s . com*/ public static long getBits(int format) { switch (format) { //Forward-compatible formats. case GL11.GL_DEPTH_COMPONENT: return 24; case GL14.GL_DEPTH_COMPONENT16: return 16; case GL14.GL_DEPTH_COMPONENT24: return 24; case GL14.GL_DEPTH_COMPONENT32: case GL30.GL_DEPTH_COMPONENT32F: return 32; case GL11.GL_RED: case GL30.GL_R8: return 8; case GL30.GL_R16: case GL30.GL_R16F: case GL30.GL_R16I: return 16; case GL30.GL_R32F: case GL30.GL_R32I: return 32; case GL30.GL_DEPTH_STENCIL: return 8; case GL30.GL_DEPTH24_STENCIL8: return 32; case GL30.GL_DEPTH32F_STENCIL8: return 40; case GL30.GL_RG: case GL30.GL_RG8: return 16; case GL30.GL_RG16: case GL30.GL_RG16F: case GL30.GL_RG16I: return 32; case GL30.GL_RG32F: case GL30.GL_RG32I: return 64; case GL11.GL_RGB: return 24; case GL11.GL_R3_G3_B2: return 8; case GL11.GL_RGB4: return 12; case GL11.GL_RGB5: return 15; case GL11.GL_RGB8: return 24; case GL11.GL_RGB10: return 30; case GL11.GL_RGB12: return 36; case GL11.GL_RGB16: case GL30.GL_RGB16F: case GL30.GL_RGB16I: return 48; case GL30.GL_RGB32F: case GL30.GL_RGB32I: return 96; case GL11.GL_RGBA: return 32; case GL11.GL_RGBA2: return 8; case GL11.GL_RGBA4: return 16; case GL11.GL_RGBA8: return 32; case GL11.GL_RGBA12: return 48; case GL11.GL_RGBA16: case GL30.GL_RGBA16F: case GL30.GL_RGBA16I: return 64; case GL30.GL_RGBA32F: case GL30.GL_RGBA32I: return 128; //Deprecated formats. case GL11.GL_LUMINANCE: case GL11.GL_LUMINANCE8: return 8; case GL11.GL_LUMINANCE16: return 16; case GL11.GL_ALPHA: case GL11.GL_ALPHA8: return 8; case GL11.GL_ALPHA16: return 16; case GL11.GL_LUMINANCE_ALPHA: case GL11.GL_LUMINANCE8_ALPHA8: return 16; case GL11.GL_LUMINANCE16_ALPHA16: return 32; default: return -1; } }
From source file:cuchaz.jfxgl.prism.JFXGLContext.java
License:Open Source License
private static int translatePrismToGL(int value) { switch (value) { case GLContext.GL_FLOAT: return GL11.GL_FLOAT; case GLContext.GL_UNSIGNED_BYTE: return GL11.GL_UNSIGNED_BYTE; case GLContext.GL_UNSIGNED_INT_8_8_8_8_REV: return GL12.GL_UNSIGNED_INT_8_8_8_8_REV; case GLContext.GL_UNSIGNED_INT_8_8_8_8: return GL12.GL_UNSIGNED_INT_8_8_8_8; case GLContext.GL_UNSIGNED_SHORT_8_8_APPLE: return 0x85BA; case GLContext.GL_RGBA: return GL11.GL_RGBA; case GLContext.GL_BGRA: return GL12.GL_BGRA; case GLContext.GL_RGB: return GL11.GL_RGB; case GLContext.GL_LUMINANCE: return GL11.GL_LUMINANCE; case GLContext.GL_ALPHA: return GL11.GL_ALPHA; case GLContext.GL_RGBA32F: return GL30.GL_RGBA32F; case GLContext.GL_YCBCR_422_APPLE: return 0x85B9; case GLContext.GL_TEXTURE_2D: return GL11.GL_TEXTURE_2D; case GLContext.GL_TEXTURE_BINDING_2D: return GL11.GL_TEXTURE_BINDING_2D; case GLContext.GL_NEAREST: return GL11.GL_NEAREST; case GLContext.GL_LINEAR: return GL11.GL_LINEAR; case GLContext.GL_NEAREST_MIPMAP_NEAREST: return GL11.GL_NEAREST_MIPMAP_NEAREST; case GLContext.GL_LINEAR_MIPMAP_LINEAR: return GL11.GL_LINEAR_MIPMAP_LINEAR; case GLContext.WRAPMODE_REPEAT: return GL11.GL_REPEAT; case GLContext.WRAPMODE_CLAMP_TO_EDGE: return GL12.GL_CLAMP_TO_EDGE; case GLContext.WRAPMODE_CLAMP_TO_BORDER: return GL13.GL_CLAMP_TO_BORDER; case GLContext.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: return GL20.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS; case GLContext.GL_MAX_FRAGMENT_UNIFORM_VECTORS: return GL41.GL_MAX_FRAGMENT_UNIFORM_VECTORS; case GLContext.GL_MAX_TEXTURE_IMAGE_UNITS: return GL20.GL_MAX_TEXTURE_IMAGE_UNITS; case GLContext.GL_MAX_TEXTURE_SIZE: return GL11.GL_MAX_TEXTURE_SIZE; case GLContext.GL_MAX_VARYING_COMPONENTS: return GL30.GL_MAX_VARYING_COMPONENTS; case GLContext.GL_MAX_VARYING_VECTORS: return GL41.GL_MAX_VARYING_VECTORS; case GLContext.GL_MAX_VERTEX_ATTRIBS: return GL20.GL_MAX_VERTEX_ATTRIBS; case GLContext.GL_MAX_VERTEX_UNIFORM_COMPONENTS: return GL20.GL_MAX_VERTEX_UNIFORM_COMPONENTS; case GLContext.GL_MAX_VERTEX_UNIFORM_VECTORS: return GL41.GL_MAX_VERTEX_UNIFORM_VECTORS; case GLContext.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: return GL20.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS; default:/*from ww w . j ava 2 s. c o m*/ // don't know how to translate, just hope for the best return value; } }
From source file:fr.ign.cogit.geoxygene.appli.gl.ImageColormap.java
License:Open Source License
/** * @return the generated texture id//from w ww . j a v a 2 s .co m */ @Override public final Integer getTextureId() { if (this.textureId < 0) { // Declaration and initialization int target = GL_TEXTURE_2D; int levels = 0; // MipMap disabled // We generate a texture ID this.textureId = glGenTextures(); // We bind the texture glBindTexture(target, this.textureId); // Give the buffer to the GPU ByteBuffer bufferColormap = ByteBuffer.allocateDirect(nbPoints * 2 * 4 * 4); bufferColormap.order(ByteOrder.nativeOrder()); // In order, we send first colors and then associated values for (int i = 0; i < nbPoints; i++) { for (int j = 0; j < 4; j++) { bufferColormap.putFloat((float) color[i][j]); } } for (int i = 0; i < nbPoints; i++) { for (int j = 0; j < 4; j++) { bufferColormap.putFloat((float) value[i]); } } bufferColormap.rewind(); glTexImage2D(target, levels, GL30.GL_RGBA32F, nbPoints, 2, 0, GL11.GL_RGBA, GL11.GL_FLOAT, bufferColormap); // TODO : useful ? glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); // TODO : unload buffer, is it working ? bufferColormap.clear(); } // Return the texture ID so we can bind it later again return this.textureId; }
From source file:fr.ign.cogit.geoxygene.appli.gl.RasterImage.java
License:Open Source License
private int generateOptimalGLinternalFormat() { if (defColormap) { // With a colormap, we must keep pixel information in the shader, // only solution, give float to shader if (nbBandsSelected == 1) return GL30.GL_R32F; else if (nbBandsSelected == 2) return GL30.GL_RG32F; else if (nbBandsSelected == 3) return GL30.GL_RGB32F; else/*from w w w. j a va2 s .c o m*/ return GL30.GL_RGBA32F; } else if (GLinternalDataType == GL11.GL_BYTE) { if (nbBandsSelected == 1) return GL30.GL_R8; else if (nbBandsSelected == 2) return GL30.GL_RG8; else if (nbBandsSelected == 3) return GL11.GL_RGB8; else return GL11.GL_RGBA8; } else if (GLinternalDataType == GL11.GL_SHORT) { if (nbBandsSelected == 1) return GL30.GL_R16; else if (nbBandsSelected == 2) return GL30.GL_RG16; else if (nbBandsSelected == 3) return GL11.GL_RGB16; else return GL11.GL_RGBA16; } else if (GLinternalDataType == GL11.GL_INT) { if (nbBandsSelected == 1) return GL30.GL_R32I; else if (nbBandsSelected == 2) return GL30.GL_RG32I; else if (nbBandsSelected == 3) return GL30.GL_RGB32I; else return GL30.GL_RGBA32I; } else if (GLinternalDataType == GL11.GL_FLOAT) { if (nbBandsSelected == 1) return GL30.GL_R32F; else if (nbBandsSelected == 2) return GL30.GL_RG32F; else if (nbBandsSelected == 3) return GL30.GL_RGB32F; else return GL30.GL_RGBA32F; } else if (GLinternalDataType == GL11.GL_DOUBLE) { // TODO : check that if (nbBandsSelected == 1) return GL30.GL_R32F; else if (nbBandsSelected == 2) return GL30.GL_RG32F; else if (nbBandsSelected == 3) return GL30.GL_RGB32F; else return GL30.GL_RGBA32F; } else if (GLinternalDataType == GL11.GL_UNSIGNED_BYTE) { // TODO check that too if (nbBandsSelected == 1) return GL30.GL_R8; else if (nbBandsSelected == 2) return GL30.GL_RG8; else if (nbBandsSelected == 3) return GL11.GL_RGB8; else return GL11.GL_RGBA8; } else if (GLinternalDataType == GL11.GL_UNSIGNED_SHORT) { if (nbBandsSelected == 1) return GL30.GL_R16; else if (nbBandsSelected == 2) return GL30.GL_RG16; else if (nbBandsSelected == 3) return GL11.GL_RGB16; else return GL11.GL_RGBA16; } else if (GLinternalDataType == GL11.GL_UNSIGNED_INT) { if (nbBandsSelected == 1) return GL30.GL_R32UI; else if (nbBandsSelected == 2) return GL30.GL_RG32UI; else if (nbBandsSelected == 3) return GL30.GL_RGB32UI; else return GL30.GL_RGBA32UI; } else { System.err.println("generateOptimalGLinternalFormat() failed to find the correct format"); return -1; // nothing to do here with that } }
From source file:fr.ign.cogit.geoxygene.appli.render.texture.BinaryGradientTexture.java
License:Open Source License
/** * @return the generated texture id/* w ww . j av a 2 s. c o m*/ */ public final Integer getTextureId() { if (this.textureId < 0) { GL13.glActiveTexture(this.textureSlot); BinaryGradientImage gradientImage = this.getBinaryGradientImage(); int width = gradientImage.getWidth(); int height = gradientImage.getHeight(); // 16 = 4 floats (float = 4 bytes) = 16 ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 16); double uMin = gradientImage.getuMin(); double vMin = gradientImage.getvMin(); double uRange = gradientImage.getuMax() - gradientImage.getuMin(); double vRange = gradientImage.getvMax() - gradientImage.getvMin(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { GradientPixel pixel = gradientImage.getPixel(x, y); buffer.putFloat((float) ((pixel.uTexture - uMin) / uRange)); buffer.putFloat((float) ((pixel.vTexture - vMin) / vRange)); // System.err.println("uvTexture = " // + (float) ((pixel.uTexture - uMin) / uRange) + "x" // + (float) ((pixel.vTexture - vMin) / vRange)); if (pixel.vGradient != null) { buffer.putFloat((float) pixel.vGradient.x); buffer.putFloat((float) pixel.vGradient.y); } else { // TODO: !! compute gradient !! buffer.putFloat(0f); buffer.putFloat(0f); } } } buffer.rewind(); // You now have a ByteBuffer filled with the color data of each // pixel. // Now just create a texture ID and bind it. Then you can load it // using // whatever OpenGL method you want, for example: this.textureId = glGenTextures(); // Generate texture ID glBindTexture(GL_TEXTURE_2D, this.textureId); // Bind texture ID glTexImage2D(GL_TEXTURE_2D, 0, GL30.GL_RGBA32F, width, height, 0, GL11.GL_RGBA, GL11.GL_FLOAT, buffer); // Setup texture scaling filtering glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Return the texture ID so we can bind it later again } return this.textureId; }
From source file:org.jge.render.RenderEngine.java
License:Open Source License
public void init() { try {/*from ww w. ja v a 2 s .c o m*/ beforeRenders = new Stack<Runnable>(); this.setBoolean("normalMapping", true); this.setParallaxDispMapping(true); this.setLighting(true); this.setShadowing(true); postFilters = new ArrayList<Shader>(); lightMatrix = new Matrix4().initScale(0, 0, 0); ambientShader = new Shader(new ResourceLocation("shaders", "forward-ambient")); renderToTextShader = new Shader(new ResourceLocation("shaders", "renderToText")); shadowMapShader = new Shader(new ResourceLocation("shaders", "shadowMapGen")); nullFilterShader = new Shader(new ResourceLocation("shaders", "filter-null")); gausBlurFilterShader = new Shader(new ResourceLocation("shaders", "filter-gausBlur7x1")); setClearColor(0, 0, 0, 0); glFrontFace(GL_CW); glCullFace(GL_BACK); enableGLCap(GL_CULL_FACE); enableGLCap(GL_DEPTH_TEST); enableGLCap(GL32.GL_DEPTH_CLAMP); glShadeModel(GL_SMOOTH); setVector3("ambient", Vector3.get(0.75f, 0.75f, 0.75f)); shadowMaps = new Texture[ShadowMapSize.values().length]; shadowMapTempTargets = new Texture[ShadowMapSize.values().length]; for (int i = 0; i < ShadowMapSize.values().length; i++) { shadowMaps[i] = new Texture(ShadowMapSize.values()[i].getSize(), ShadowMapSize.values()[i].getSize(), null, GL_TEXTURE_2D, GL_LINEAR, GL_COLOR_ATTACHMENT0, GL_RG32F, GL_RGBA, true); shadowMapTempTargets[i] = new Texture(ShadowMapSize.values()[i].getSize(), ShadowMapSize.values()[i].getSize(), null, GL_TEXTURE_2D, GL_LINEAR, GL_COLOR_ATTACHMENT0, GL_RG32F, GL_RGBA, true); } lights = new ArrayList<BaseLight>(); glClampColor(GL_CLAMP_FRAGMENT_COLOR, GL_FALSE); glClampColor(GL_CLAMP_READ_COLOR, GL_FALSE); glClampColor(GL_CLAMP_VERTEX_COLOR, GL_FALSE); double width = (double) Window.getCurrent().getWidth() / 1.0; double height = (double) Window.getCurrent().getHeight() / 1.0; renderToTextTarget = new Texture((int) width, (int) height, null, GL_TEXTURE_2D, GL_NEAREST, GL30.GL_COLOR_ATTACHMENT0, GL30.GL_RGBA32F, GL_RGBA, false); renderToTextTargetTemp = new Texture((int) width, (int) height, null, GL_TEXTURE_2D, GL_NEAREST, GL30.GL_COLOR_ATTACHMENT0, GL30.GL_RGBA32F, GL_RGBA, false); planeMaterial = new Material(); planeMaterial.setFloat("specularIntensity", 1); planeMaterial.setFloat("specularPower", 8); planeMaterial.setTexture("diffuse", renderToTextTarget); altTransform = new Transform(); altCamera = new Camera(initMatrix = new Matrix4().initIdentity()); altCamera.setName("alternative camera"); renderToTextCameraObject = new DummySceneObject(altCamera); renderToTextCameraObject.getTransform().rotate(Vector3.get(0, 1, 0), (float) Maths.toRadians(180)); altTransform.rotate(Vector3.get(1, 0, 0), (float) Maths.toRadians(90)); altTransform.rotate(Vector3.get(0, 1, 0), (float) Maths.toRadians(180)); planeMesh = new Mesh(JGEngine.getClasspathResourceLoader() .getResource(new ResourceLocation("models", "planePrimitive.obj"))); setVector3("shadowColor", Vector3.get(0, 0, 0)); } catch (Exception e) { e.printStackTrace(); } }