【发布时间】:2017-08-10 12:07:10
【问题描述】:
目前我使用函数texture(...) 读取一个 3D 纹理,如下所示:
vec3 value = texture(texture_3D, coord).rgb
我现在想做的是:
vec3 value = texelFetch(texture_3D, coord, 0).xyz
但是,我不知道如何转换我的坐标以便它与 texelFetch 一起使用。我的纹理大小为256x256x256
而我目前的坐标计算如下:
vec3 min_box = vec3(-0.5);
vec3 max_box = vec3(0.5);
vec3 coord = worldToVolume(world_pos, min_box, max_box)
vec3 worldToVolume(world_pos, min_box, max_box) {
return (world_pos - min_box) / (max_box - min_box)
}
有什么想法吗?如果您需要更多信息,请询问,我会提供。
【问题讨论】:
标签: c++ opengl glsl shader fragment-shader