首页 > 解决方案 > 如何在 Unity3D 中对多个精灵的渲染应用着色器?

问题描述

在 Unity3d 中,我正在尝试使用多个模糊圆形的精灵制作一个简单的元球效果,并且这些精灵随机移动。因此,我希望着色器从所有精灵的渲染中执行像素颜色更改,而不是一一进行。

这是一个例子:

统一着色器示例

左图显示了四个精灵,精灵模糊;右边的图片是着色器的结果。

我不知道如何做到这一点。

标签: unity3dshader

解决方案


如果我正确理解您的问题,您可以做的是

  1. 创建一个新的渲染纹理
  2. 将这些精灵移出屏幕,离开主摄像机的视野。
  3. 将一个新的正交相机指向您已移出屏幕的所有精灵,并将该相机的 Target Texture 字段(在 Inspector 视图中)设置为渲染纹理。这会将相机看到的任何内容保存到该纹理。
  4. 从这里您可以将该纹理渲染到另一个游戏对象(可能是 Quad?)的表面上
  5. 将自定义着色器材质附加到将渲染纹理作为输入的四边形。
  6. 在此着色器中执行您希望渲染纹理的任何操作
  7. 将此四边形对象放置在主摄像头前面,以便最终结果渲染到屏幕上

这有意义吗?


推荐阅读