Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
OpenGL图像加载和存储:将屏幕空间纹理烘焙到UV空间纹理_Opengl - Fatal编程技术网

OpenGL图像加载和存储:将屏幕空间纹理烘焙到UV空间纹理

OpenGL图像加载和存储:将屏幕空间纹理烘焙到UV空间纹理,opengl,Opengl,我想做的是: 我有一个3d变换的UVMapping对象,带有白色纹理和屏幕空间图像 我想将屏幕空间图像烘焙到对象的纹理中,这样它在屏幕上的3d变换表示与屏幕空间图像完全匹配(因此我想将其投影到uv空间) 我想用图像加载和存储来实现这一点。我把它想象成: 第1步:将变换后的三维对象UV坐标渲染为屏幕外纹理 第二遍:渲染屏幕大小的四边形,在每个像素上,检查第一遍渲染的纹理值,如果有有效的纹理坐标,使用screenspace quad自身的uv纹理查找screenspace图像,并使用从输入纹理读取的

我想做的是:

我有一个3d变换的UVMapping对象,带有白色纹理和屏幕空间图像

我想将屏幕空间图像烘焙到对象的纹理中,这样它在屏幕上的3d变换表示与屏幕空间图像完全匹配(因此我想将其投影到uv空间)

我想用图像加载和存储来实现这一点。我把它想象成:

第1步:将变换后的三维对象UV坐标渲染为屏幕外纹理

第二遍:渲染屏幕大小的四边形,在每个像素上,检查第一遍渲染的纹理值,如果有有效的纹理坐标,使用screenspace quad自身的uv纹理查找screenspace图像,并使用从输入纹理读取的uv纹理作为索引,将此texel颜色与图像_load_和_store一起写入texturebuffer


由于我以前从未使用过此功能,我想问一下,使用此功能的人是否已经认为这是可行的,是否已经有一些例子可以在这方面做一些事情?

您提出的方法肯定是一种实现此功能的方法,实际上这是很常见的。另一种方法是从屏幕空间到纹理空间进行反投影。这并不像一开始听起来那么难。基本上,对于每个三角形,您必须找到模型曲面上的切线空间向量(UV)到其屏幕对应物的变换。除此之外,变换三角形本身,以找到图片中屏幕空间三角形的边界。然后将投影反转