GPU Instance
1.未开启GPU Instance:

2.开启GPU Instance:

Shader "Shader_InstanceTest"{
Properties{
_Diffuse("Diffuse", Color) = (1,1,1,1)
}
SubShader{
Pass{
Tags {"LightMode" = "ForwardBase"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Lighting.cginc"
#pragma multi_compile_instancing
#include "UnityCG.cginc"
struct a2v {
float4 vertex: POSITION;
float3 normal: NORMAL;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f {
float4 pos: SV_POSITION;
float3 worldNormal : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
UNITY_INSTANCING_CBUFFER_START(MyProperties)
UNITY_DEFINE_INSTANCED_PROP(fixed4, _Diffuse)
UN

本文探讨了如何利用GPU Instance技术配合PropertyBlock来优化DrawCall。通过开启GPU Instance,显著减少了渲染对象的重复绘制,同时通过PropertyBlock实现颜色的动态更改,进一步提升了渲染效率。提供了一个Demo链接供下载参考。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



