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

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

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

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

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

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

2,537

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

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

试试用AI创作助手写篇文章吧