如何在Unity3D中对多个精灵的渲染应用着色器?

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

在Unity3d中,我试图使用多个精灵制作一个简单的圆球效果,这些精灵是随机移动的,因此我希望着色器能从所有精灵的渲染中执行像素颜色的变化,而不是一个一个的。

下面是一个例子。

unity shader sample

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

我不知道该如何做。

unity3d shader
1个回答
2
投票

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

  1. 创建一个新的 RenderTexture
  2. 将这些精灵移出屏幕,离开主摄像机的视野。
  3. 将一个新的正交摄影机对准所有已经移到屏幕外的精灵,并将该摄影机的目标纹理域(在检查器视图中)设置为渲染纹理。这将会把摄像机看到的任何东西保存到该纹理上。
  4. 从这里,你可以将该纹理渲染到另一个游戏对象的表面(也许是一个Quad?
  5. 将一个自定义的着色器材质附加到那个将渲染纹理作为输入的Quad上。
  6. 在这个着色器中对渲染纹理进行任何你想要的操作。
  7. 将此四元对象放置在主摄像头前,以便最终结果呈现在屏幕上。

这有意义吗?

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