GPU instancing

Posted marcher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GPU instancing相关的知识,希望对你有一定的参考价值。

参考

https://www.cnblogs.com/hont/p/7143626.html

github地址

https://github.com/yingsz/instancing/

补充2点:

1怎么add per instancing objet data

代码里使用set*Array,比如

mat.SetVectorArray("LightMapOffSets", lightmapOffSet);

  shader里面使用这个lightmapoffset,如下

sampler2D Lightmap;
UNITY_INSTANCING_CBUFFER_START(LightMapOffSets)
    UNITY_DEFINE_INSTANCED_PROP(half4, _OffSet)
UNITY_INSTANCING_CBUFFER_END

  取值的地方

half4 offset = UNITY_ACCESS_INSTANCED_PROP(_OffSet);

2支持lightmap

感谢Solar Rain同学的提醒

技术分享图片

这个之前有个误区,以为烘焙后每个实例的uv2不一样,其实是一样。

 

以上是关于GPU instancing的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL ES 学习教程(十七) Unity GPU Instance 原理及 GLES 实现

常用代码片段

常用代码片段

GPU Skinning 结合 Instanced 高效实现大量单位动画

Unity的GPU Instancing

U3D 文档 GPU INSTANCING