unity3d - 如何在 Unity3D 中对多个精灵的渲染应用着色器?
问题描述
在 Unity3d 中,我正在尝试使用多个模糊圆形的精灵制作一个简单的元球效果,并且这些精灵随机移动。因此,我希望着色器从所有精灵的渲染中执行像素颜色更改,而不是一一进行。
这是一个例子:
左图显示了四个精灵,精灵模糊;右边的图片是着色器的结果。
我不知道如何做到这一点。
解决方案
如果我正确理解您的问题,您可以做的是
- 创建一个新的渲染纹理
- 将这些精灵移出屏幕,离开主摄像机的视野。
- 将一个新的正交相机指向您已移出屏幕的所有精灵,并将该相机的 Target Texture 字段(在 Inspector 视图中)设置为渲染纹理。这会将相机看到的任何内容保存到该纹理。
- 从这里您可以将该纹理渲染到另一个游戏对象(可能是 Quad?)的表面上
- 将自定义着色器材质附加到将渲染纹理作为输入的四边形。
- 在此着色器中执行您希望渲染纹理的任何操作
- 将此四边形对象放置在主摄像头前面,以便最终结果渲染到屏幕上
这有意义吗?
推荐阅读
- python - python中的Apache Beam:如何触发空窗口的警报
- javascript - 如何在 javascript 中连续播放生成的声音?
- javascript - 在javascript中递归创建事件
- php - 如何在 wordpress 自定义插件中重定向
- java - 将集合参数设置为列值的列表
- javascript - asp.net-mvc ajax json 发布到控制器操作方法
- c# - 将 2 个字符串与空值、空值和空白值进行比较
- python - 当我从字典中打印 2 个键和 2 个值时,第一个键和值将自己替换为第二个键和值
- java - 如何在文件下载期间覆盖现有文件而不是创建新文件
- ruby - TypeError 问题:Sinatra + JSON.parse 中没有隐式转换