我如何在 Enviroment Sky Godot 上使用视觉着色器

How can i use the visual shader on the Enviroment Sky Godot

我如何在环境天空 Godot 3.4 中使用视觉着色器? 我没有别的东西可以放了..

Post-处理中

您可能正在尝试制作一些 post 处理效果。在这种情况下,您有以下选择:


颜色校正

如果将 adjustment_enabled 设置为 true,则可以在 adjustment_color_correction 上设置纹理。这意味着您可以按照最后所述设置 ViewportTextureGodot 期待梯度。


自定义背景

如果你想制作自定义背景或天空。查看“背景”下 Environment 对象中的 属性 background_mode。只有两种情况对我们有用:

  • PanoramaSky:如果您将background_mode设置为“天空”或“颜色+天空”,您可以设置一个新的PanoramaSky,它有一个属性 panorama 采用纹理。 Godot 需要 equirectangular 纹理。因此,您可以按照最后所述设置 ViewportTexture
  • Canvas:如果你将backgroud_mode设置为Canvas,你可以想象一些Canvas图层在背景中。当然,您可以设置一个 Canvas 层,其中 CanvasItem 具有 Canvas 着色器。 请记住,您可以使用 get_viewport 获取当前 Viewport,并从中获取当前使用 get_camera 的 3D 相机。因此,您可以使用当前 3D 相机的方向来更新 Canvas 层的内容。

附录:视口纹理

如果你有一个纹理属性你想动态制作,你可以创建一个Viewport,然后将ViewportTexture设置为属性,引用Viewport.

这允许您使用着色器(或任何您想要的)来创建您想要的纹理。因为纹理将是 Viewport.

中渲染的任何场景

只有一个警告:您不能对独立于场景保存的资源执行此操作。因此,要设置 Environment 的任何纹理,您需要将其保存为场景的一部分(这也意味着不使用默认环境)。所以在场景中添加一个 WorldEnviroment 节点,给它一个 Environment 并确保它的 resource_local_to_scene 设置为 true。