Notifications
bg
R
Rioer
Student
0
Likes
1
Follower
0
Connections
All
Articles0
Games0
Showcases0
Column0
Jobs0
R
Rioer
Oct 15, 2019
关于Graphics.DrawMeshInstanced(...),求教一下,能否通过设置MaterialPropertyBlock来让每个Mesh渲染出不同的颜色。我尝试通过MaterialPropertyBlock.SetVectorArray("_BaseColor", colors);来设置,但最后全部渲染的物体都只显示一种颜色。

Pengyue Li
Developer Relations Engineer
3 days ago
https://docs.unity3d.com/Manual/GPUInstancing.html 可以看下这篇文档,需要在frag shader里加上UNITY_SETUP_INSTANCE_ID(i);和UNITY_ACCESS_INSTANCED_PROP(Props, _Color);这两句才能在array里取到不同的color。但是我看lwrp的lit shader里frag里面没有这两句。所以,可能需要自己写。
R
4 days ago
Reply@Pengyue Li会不会是shader里改变了颜色啊
用的是LWRP默认的材质,Shader是Lit。 一次批渲染只能设置一种颜色,这可能涉及到底层的图形API,看到MaterialPropertyBlock的API里只有SetColor而不像其他的类型有SetXXXArray()。
Pengyue Li
Developer Relations Engineer
4 days ago
会不会是shader里改变了颜色啊
R
5 days ago
Reply@程士强
但这个不是只能设置单个Mesh么,这就是我再注释行里用到的。我想只能能否通过SetVectorArray("_BaseColor",colors);的方式来为每个Mesh设置不同的颜色。
Rioerjoined anevent
官方技术直播|支持美术资产快速迭代-Unity艺术工具功能详解
ONLINE EVENT
8:00 AM - 9:00 AM March 28, 2018 (Local: UTC-4)
08:00 - 09:00 Mar 28, 2018 (Local: UTC-4)
847 Participants
About Me
No description
See more
Skills
No skills added yet
Certifications (0)
Import
See all
Rioer's liked projects (0)
No likes yet
Following (0)
Not following anyone yet
Follower (1)