![]() |
1
1
你没有遗漏任何东西。这就是规范的工作方式,因为这是大多数硬件的工作方式(也就是说你的完美不是硬件完美)。 我不会讨论实现支持一系列索引的硬件的复杂性,但我会指出一个可能会丢失的优化: gl可能将单个索引用作顶点转换后缓存的索引,以便在下次迭代时不必重新转换顶点。使用一组索引可以使优化变得更加复杂。 关于内存节省:在你的例子中,你说的是一个立方体,每个面使用4个四边形,8个三角形。所以我们说的是9*6=54个唯一顶点。如果只有位置和法线,则为顶点数据的54*4*3*2=1296b+索引数据的2*48*3=288b(假设属性基类型为4字节,索引为glushort)。总计1584b。假设位置和法线的数据格式也不是最优的。另一种方法是大约26*4*3(pos)+8*4*3(norm)+2*48*3*2=312+96+576=984b,所以在这个人为的案例上节省了大约0.5kb。 将其传递给属性的更多内存保存类型,您将得到:648+288=936 vs 156+48+576=780…差别开始变得可以忽略了。 我为什么要提起这个?因为如果需要内存消耗优化,应该查看属性数据类型。 最后,正如您自己所注意到的,在实际的3d世界中(即不在盒子的世界中),这样一种机制的节省将很低:很少有属性可以被共享。 |
![]() |
pats · 在Libgdx中定位和旋转动画 8 年前 |
![]() |
harryisaac · SceneKit自定义几何体纹理错误 8 年前 |
|
user8581488 · OpenGL ES3阴影贴图问题 8 年前 |