ULRE/src/SceneGraph/StaticRenderManage.md

1.5 KiB
Raw Blame History

静态渲染管理

建立静态渲染管理的意义是什么?

静态渲染管理中的“静态”并不是指在场景中静止不动的所有物件,也不是指永远不会增加或删除的物件。
而是说大部分时间,都会出现在场景中的物件。

它的意义为的是所有添加进管理器的模型原始资源,都会一直存在。与它们本身是否显示在画面中,并无关联。为的是避开对显存资源的动态调配。

在静态渲染管理器中的所有模型,会根据顶点数据格式(Vertex Input Format)分类。每种格式所有模型共用一个大的顶点缓冲对象(Vertex Buffer Object)以达到在渲染时渲染不同模型不会切换VBO的效果并进一步达成一个格式一次Drawcall全部画面的极致效果。

定义

1.Material 材质可以简单理解为是Shader的包装。

2.Vertex Input Layout 顶点输入布局指的是在渲染中Material所需的顶点输入数据格式。

但需要注意的是VertexInputLayout与Material并无从属关系。
    一个Material可能会有多个VertexInputLayout的版本,不同具体格式的数据输入.
    多个Material也可能会共用一个VertexInputLayout,比如为某个模型设定的不同画质渲染,它们shader不同但是共用同一套模型数据。

3.Material Instance 材质实例是指同一材质下,不同的参数配置或不同的顶点输入格式。

我们需要做什么?