我想做什么:
我有一个带有白色纹理的3d变换uvmap对象以及一个屏幕空间图像。
我想将屏幕空间图像烘焙到对象的纹理中,这样它在屏幕上的3d变换表示与屏幕空间图像完全匹配(所以我想将它投影到uv空间)。
我想用image_load_and store来做这件事。我把它想象成:
第一遍:将变换后的三维物体uvcoordinates渲染成一个离屏纹理
第二遍:渲染屏幕化四边形,在每个像素上,检查第一遍渲染的纹理的值,如果那里有有效的纹理坐标,用屏幕空间四边形自己的uv纹理查找屏幕空间图像并写下这个纹理颜色使用从输入纹理读取的uv纹理作为索引,将image_load_and_store放入纹理缓冲区。
由于我之前从未使用过这个功能,我只想问一下使用它的人是否已经认为这是可行的,是否已经有一些例子可以朝这个方向做点什么?
答案 0 :(得分:2)
你提出的方法肯定是一种方法,实际上它很常见。另一种方法是从屏幕空间到纹理空间的反投影。它并不像起初听起来那么难。基本上对于每个三角形,您必须找到模型表面上的切线空间矢量(UV)到其屏幕对应物的变换。除了变换三角形本身之外,还要找到图片中屏幕空间三角形的边界。然后你反转那个投影。