猫史档案馆


为什么现有的3D引擎都那么慢?

用户:imgainary_numberimgainary_number查看:0 回复:1 评论:0 创建时间:2024-07-12T12:51:53


为什么现有的3D引擎都那么慢?

要回答这个问题,我们得先搞清楚现有的3D引擎的运转原理:

每一次渲染前都会重载一遍数据

遍历列表渲染

上面标红的字就是问题的关键

假设我们有n个立方体要渲染

要加载8n个顶点

使用插入排序来排序数据

由于我们已经知道了插入排序的时间复杂度是o(n^2)

而在添加时就要添加到对应位置

因此我们可以大体推导一下

t=n^2(插入排序)

R=t1+t2+t3+t4+...+tn

=>

R=[n  i = 1] ti

=>

R=[n i = 1] i^2

=>O([n i = 1] i^2)=O(N(N+1)(N+2)/3)

这种3D引擎的架构正是造成这样慢的时间复杂度

而这种架构叫做:重载数据架构

它的优点是:

简单,易于编写

缺点就是慢

当然,还有另一种架构

叫做:顶点缓存架构

时间复杂度是:O(N^2 (以内部排序算法为准))


回复

上一页1 页 / 共 1下一页
authorizationauthorization

大佬点了

点赞0


评论