小编tay*_*rak的帖子

gl_FragCoord的范围是多少

的范围是gl_FragCoord.xy多少?我知道gl_FragCoords是屏幕坐标,但是实际范围是多少?( 0, width - 1 )还是( 1, width )?而glsl编译器会产生什么样的错误(如果有的话),则说明我做了gl_FragCoord.x - 5一些类似基于fragcoord的计算时的操作?

ps:我不需要规范化。

c++ opengl shader glsl

6
推荐指数
2
解决办法
3961
查看次数

如何使用 glReadPixels 读取浮点数据

几天来我一直在尝试使用glReadPixels.

我的cpp代码:

//expanded to whole screen quad via vertex shader
glDrawArrays( GL_TRIANGLES, 0, 3 );

int size = width * height;
GLfloat* pixels = new GLfloat[ size ];
glReadPixels( 0, 0, width, height, GL_RED,  GL_FLOAT, pixels );

pixelVector.resize( size );
for ( int i = 0; i < size; i++ ) {
    pixelVector[i] =  (float) pixels[i];
}
Run Code Online (Sandbox Code Playgroud)

和我的着色器代码:

out float data;

void main()
{  
  data = 0.02;
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是我得到 0.0196078 作为输出。但当数据为 0.2 时一切都很好。如果数据为 0.002,则全为 0。什么可能导致这种情况?

c++ opengl graphics shader glsl

1
推荐指数
1
解决办法
2759
查看次数

标签 统计

c++ ×2

glsl ×2

opengl ×2

shader ×2

graphics ×1