How can I pass an array of floats to the fragment shader using textures?

Posted by James on Game Development See other posts from Game Development or by James
Published on 2012-12-08T15:46:44Z Indexed on 2012/12/08 17:21 UTC
Read the original article Hit count: 353

Filed under:
|

I want to map out a 2D array of depth elements for the fragment shader to use to check depth against to create shadows. I want to be able to copy a float array into the GPU, but using large uniform arrays causes segfaults in openGL so that is not an option. I tried texturing but the best i got was to use GL_DEPTH_COMPONENT

glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 512, 512, 0, GL_DEPTH_COMPONENT, GL_FLOAT, smap);

Which doesn't work because that stores depth components (0.0 - 1.0) which I don't want because I have no idea how to calculate them using the depth value produced by the light sources MVP matrix multiplied by the coordinate of each vertex.

Is there any way to store and access large 2D arrays of floats in openGL?

© Game Development or respective owner

Related posts about opengl

Related posts about shaders