阅读目标

  • 什么是 VertexFactory?VertexFactory 的作用?
  • VertexFactory 如何创建不同的资源?在哪里?需要什么?用到了什么?
  • 如何链接到 Shader?Shader 的编译?

几个需要提前知道的知识

RHI

RHI:Rendering Hardware Interface,是一层对底层图形 API 的抽象层。每个引擎有自己专门的一个对底层图形 API 调用的抽象封装,在 UE 里这一层叫做 RHI

目的是隐藏不同平台的不同图形 API 的调用差异,经过这一层的封装提供统一的调用接口

FRenderResource 和 FRHIResource

在 UE 的 rendering code 中有两个重要概念:FRenderResource 和 FRHIResource。

FRHIResource:是 RHI 层资源的基类,它包含一个可渲染资源的相关数据,比如顶点 buffer,索引 buffer 等等

FRenderResource:是定义了可渲染资源的通用行为模式的接口,存在于渲染模块,是我们能够直接交互和创建的资源。它提供创建和封装 FRHIResource 的功能,提供了初始化和释放 RHI 资源的方法


VertexFactory

什么是 Vertex Factory?它用来做什么?

VertexFactory 是存在于渲染线程的,用于传递顶点数据的一种 FRenderResource,具体来说,它负责从一个 asset 上获取 MeshData,并用来创建 FRHIResource

一个最常见的 vertexfactory 为:LocalVertexFactory

VertexFactory 如何创建 RHI 资源?在哪里创建?


参考链接