Godot 使用不同的着色器将图像渲染到纹理

问题描述 投票:0回答:1

抱歉,我无法正常解释,但希望你能理解。

一般来说,有来自相机的图像并显示在游戏中。同样在 3D 中,相机会创建一个不显示的深度纹理,但它存在并且可以在着色器中访问。

那么是否可以像这样创建自己的纹理?我有一个精灵和一个附加图像,例如法线贴图或反射贴图,我想将其写入该纹理中。然后应该在着色器中访问该纹理,就像对深度缓冲区所做的那样。

换句话说,相机应该渲染图像(这将是这个纹理),但在对象上使用其他着色器。或者如果可能的话还有其他方法

2d shader godot godot-shader-language
1个回答
0
投票

不是直接的,但是是的,这是可能的。

问题是深度缓冲区没有暴露。您只能从着色器中准备它。这意味着您将需要一种将深度输出为颜色的材质。您需要在辅助视口中使用它。

因此,我们的想法是创建一个带有覆盖内部整个视图的四边形的

SubViewport
,并为该四边形提供输出深度缓冲区的屏幕阅读材料。然后就可以从
SubViewport
获取纹理了。

参见:

© www.soinside.com 2019 - 2024. All rights reserved.