2012-03-19 21 views
0

在GLSL 4.2中,可以使用具有imageLoad和imageStore功能的image2D数据类型。这些函数需要ivec来确定要写入/读取哪个像素。为了计算正确的ivec,我需要知道图像的大小。但是,我如何检索这个?GLSL 4.2 - 如何检索图像的大小?

textureSize()似乎只适用于采样器,不适用于图像。

怎么办?

+0

你是什么意思 - 不是用图像?你如何在GLSL中指定“图像”? – 2012-03-19 14:09:32

+1

@MārtiņšMožeiko我想他已经很清楚了,请查看[shader_image_load_store扩展](http://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt)以获取更多信息。 – 2012-03-19 14:12:35

+2

我希望你只是把它传递给着色器。 – Robinson 2012-03-19 14:16:05

回答

1

你不知道。他们没有提供图像尺寸的功能,所以你必须通过制服来传递图像。

1

您可以在GLSL 4.3中使用imageSize()。看看OpenGL.org的GLSL规范。

+0

不知道为什么这是downvoted。在添加功能后回答问题 – jozxyqk 2014-06-02 13:55:51