在GLSL 4.2中,可以使用具有imageLoad和imageStore功能的image2D
数据类型。这些函数需要ivec
来确定要写入/读取哪个像素。为了计算正确的ivec
,我需要知道图像的大小。但是,我如何检索这个?GLSL 4.2 - 如何检索图像的大小?
textureSize()
似乎只适用于采样器,不适用于图像。
怎么办?
在GLSL 4.2中,可以使用具有imageLoad和imageStore功能的image2D
数据类型。这些函数需要ivec
来确定要写入/读取哪个像素。为了计算正确的ivec
,我需要知道图像的大小。但是,我如何检索这个?GLSL 4.2 - 如何检索图像的大小?
textureSize()
似乎只适用于采样器,不适用于图像。
怎么办?
你不知道。他们没有提供图像尺寸的功能,所以你必须通过制服来传递图像。
您可以在GLSL 4.3中使用imageSize()。看看OpenGL.org的GLSL规范。
不知道为什么这是downvoted。在添加功能后回答问题 – jozxyqk 2014-06-02 13:55:51
你是什么意思 - 不是用图像?你如何在GLSL中指定“图像”? – 2012-03-19 14:09:32
@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
我希望你只是把它传递给着色器。 – Robinson 2012-03-19 14:16:05