ULRE/src/SceneGraph/StaticRenderManage.md

26 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 静态渲染管理
## 建立静态渲染管理的意义是什么?
静态渲染管理中的“静态”并不是指在场景中静止不动的所有物件,也不是指永远不会增加或删除的物件。
而是说大部分时间,都会出现在场景中的物件。
它的意义为的是所有添加进管理器的模型原始资源,都会一直存在。与它们本身是否显示在画面中,并无关联。为的是避开对显存资源的动态调配。
在静态渲染管理器中的所有模型,会根据顶点数据格式(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 材质实例是指同一材质下,不同的参数配置或不同的顶点输入格式。
## 我们需要做什么?