Jump to content
  • Advertisement
Sign in to follow this  

OpenGL reduced colors in GLSL fragment shader

This topic is 4061 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm trying to do some operations on a 16-bit texture in a fragment shader, but the resulting colors are all wrong. The data I'm working with is 12 bit, and I've been using a multiplier to bring the data to the range of a 16-bit number. That method has worked fine in regular OpenGL before trying it in the shader, and the colors all look correct (shades of gray). In the shader, I use the same multiplier, but the number of resulting colors are reduced... instead of 256 shades of gray I get about 8. Here's the shader code: ---------------- uniform sampler2D theTexture; void main() { float mult; mult = 65535.0/4095.0; vec3 color = vec3(texture2D(theTexture, gl_TexCoord[0].st))*mult; gl_FragColor = vec4(color, 1.0); } ----------------- How are textures represented in shaders? What format does gl_FragColor take? Is it 0 to 1 or some other range? or is the range based on the current texture datatype such as GL_UNSIGNED_SHORT? -Greg

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!