阅读目标

  • 什么是 MeshComponent?
  • CustomMeshComponent 的用途?为什么?

MeshComponents

UMeshComponent 作为 UActorComponent 的子类之一,并作为一些具有可渲染三角形集合的实例的抽象基类

最常见的 MeshComponent 如:UStaticMeshComponent,负责渲染静态网格资源

为什么需要 CustomMeshComponents?

创建 CustomMeshComponent 能够允许我们获取对 Mesh 的完全控制权,主要有:

  • VertexShader:对每个顶点的完全控制,能够做到 material editor 无法做到的功能,例如将顶点分组应用不同的变换;或者在 USkinnedMeshComponentUSplineMeshComponent 中应用自定义的形变方式
  • VertexShader 的输入参数与资源:根据需要在 vs 中执行的逻辑,向内传递需要的参数和绑定所需要的资源
  • 控制 vertex buffer 和 vertex layout:能够自定义顶点布局中所需要的元素,从而最小化顶点 buffer 所占用的内存空间,或者添加额外的属性
  • 几何预处理(geometry preprocessing):可以在使用前预处理 Mesh,即可在 CPU 上执行,也可以利用委托绑定到 GPU 上的一个 compute shader 上

总览

参考链接