Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 写入纹理数组的一层并从另一层读取_C++_Opengl_Textures - Fatal编程技术网

C++ 写入纹理数组的一层并从另一层读取

C++ 写入纹理数组的一层并从另一层读取,c++,opengl,textures,C++,Opengl,Textures,我目前正在OpenGL 3D引擎中实现深度剥离。我想将这些值存储在深度2D纹理数组中。算法在第n次执行时,需要读取n-1层,如果当前值较大(对象距离较远),则在第n层中插入当前值。然而,我们不应该在同一个纹理中读写 例如,是否可能从中读取(仅第n-1层)并将第n层作为当前FBO的深度附着 然而,我们不应该在同一个纹理中读写 谁说的 存储图像。注意复数形式。没有禁止阅读和书写相同的纹理。禁令是禁止的 阵列纹理包含多个图像。每个阵列层都是其自己的二维图像(或一组二维mipmap图像)。因此,从一个阵

我目前正在OpenGL 3D引擎中实现深度剥离。我想将这些值存储在深度2D纹理数组中。算法在第n次执行时,需要读取n-1层,如果当前值较大(对象距离较远),则在第n层中插入当前值。然而,我们不应该在同一个纹理中读写

例如,是否可能从中读取(仅第n-1层)并将第n层作为当前FBO的深度附着

然而,我们不应该在同一个纹理中读写

谁说的

存储图像。注意复数形式。没有禁止阅读和书写相同的纹理。禁令是禁止的

阵列纹理包含多个图像。每个阵列层都是其自己的二维图像(或一组二维mipmap图像)。因此,从一个阵列层读取数据并写入另一个阵列层是完全合法的。读取阵列层中的一个mipmap并写入同一阵列层中的另一个mipmap是完全合法的

在同一阵列层的同一mipmap上读/写是不合法的

这就是为什么如果同一纹理在绑定到渲染上下文进行读取的同时附加到FBO,OpenGL不会给出错误。这是合法的,只要你确保你没有读/写相同的图像

然而,我们不应该在同一个纹理中读写

谁说的

存储图像。注意复数形式。没有禁止阅读和书写相同的纹理。禁令是禁止的

阵列纹理包含多个图像。每个阵列层都是其自己的二维图像(或一组二维mipmap图像)。因此,从一个阵列层读取数据并写入另一个阵列层是完全合法的。读取阵列层中的一个mipmap并写入同一阵列层中的另一个mipmap是完全合法的

在同一阵列层的同一mipmap上读/写是不合法的


这就是为什么如果同一纹理在绑定到渲染上下文进行读取的同时附加到FBO,OpenGL不会给出错误。这是合法的,只要您确保您没有读取/写入同一图像。

这是否也适用于mip贴图级别(即在一个纹理内,从一个mip贴图级别读取,写入到另一个)?这是否也适用于mip贴图级别(即在一个纹理内,从一个mip贴图级别读取,写入到另一个)?