两个或更多的shader,如何根据情况施加在物体上?

srhouyu 2017-11-20 02:18:50
我是初学Unity的。

我渲染物体的时候,一般情况下时使用了一个shader来显示物体颜色。

然后我又需要在鼠标拣选时,能够对物体外边缘描边,这是根据情况发生的。

那么怎么让二者时而共存,时而只用第一个shader呢?最佳的处理方法是什么?

(本来想把两个shader合并写成一个,然后才发现shader里的变量是所有物体公用的。一旦加了描边,就所有物体都描了边)
...全文
546 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
「已注销」 2018-12-21
直接用GPUinstancing实现,通过MaterialPropertyBlock向shader中传送数组,数组中决定第几个被绘制的物体描边,添加#pragma multi_compile_instancing那一套使着色器支持instance,再加一个判断
  • 打赏
  • 举报
回复
WJN92 2017-11-22
这个应该是写代码来实现的吧
  • 打赏
  • 举报
回复
srhouyu 2017-11-20
我也试了加了多个材质,Unity似乎抱怨说submesh的数量不够,这情况究竟是怎么回事
  • 打赏
  • 举报
回复
相关推荐
发帖
Unity3D
加入

1919

社区成员

Unity3D相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2017-11-20 02:18
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。