对不起,我不能正常解释,但我希望你能理解。
一般来说,有一个来自相机的图像,它显示在游戏中。同样在3d中,摄影机会创建一个未显示的深度纹理,但它存在,并且可以在着色器中访问。
那么,有可能像那样创造自己的纹理吗?我有一个精灵和一个额外的图像,比如法线贴图或反射贴图,我想把它写进这个纹理中。然后应该在着色器中访问该纹理,就像对深度缓冲区进行访问一样。
换句话说,摄影机应该渲染图像(将是该纹理),但在对象上使用其他着色器。或者换一种方式(如果可能的话)
不直接,但是的,这是可能的。
问题是深度缓冲区没有暴露出来。只能从着色器中准备它。这意味着您将需要一种将深度输出为颜色的材质。您需要在辅助视口中使用它。
因此,我们的想法是创建 SubViewport 用一个覆盖内部整个视图的四边形,并为这个四边形提供一个输出深度缓冲区的屏幕阅读材料。然后你可以从 子视口 。
SubViewport
子视口
请参阅: