渲染管线
显卡:
SIMD指令:指令级并行运算。一个指令,4次运算。处理坐标运算,矩阵运算
SIMT:一个指令在多核上,同时做同样的指令操作。
现代显卡放了无数个小小的核。
因此,在做所有的绘制算法,绘制运算时,尽可能用同样的代码,各自访问各自的数据,效率会远高于CPU上的运算
数据尽量只从cpu送到gpu计算结束了,不要从gpu读数据。因为逻辑和渲染是不同步的,来回的数据交互会导致帧数的延迟
现代引擎,对于一个GO,会将其mesh,根据材质应用的不同切分成各个子mesh。
每个submesh的顶点数据,索引,纹理等会存在一个大的buffer里,通过不同的offset获取。
将所有的mesh存在一个pool,
texture存在一个pool,
shader存在一个pool
注意区分定义(GO)和实例(prefab/instance)。即类和对象
包围盒
BVH