我最近开发了一个等距渲染系统,用于在Javascript中绘制3D网格。网格上的所有项目都是相同维度的立方体,每个项目之间的唯一差异是表示该坐标值的纹理。我的应用程序需要绘制大型网格,即使视口中只有一小部分可以同时显示。
因为我使用Canvas,每帧绘制数千个形状的速度很慢,所以我将脚本设置为循环遍历每个块,但只有在它们为1时才绘制它们的面。)旁边的空网格空间和2.)在视口内。这个系统适用于较小的网格,但由于我的应用程序需要相当大的网格(1000 + x1000 + x128),我需要为最终产品添加一些性能改进。
有没有使用渲染系统的人知道我可以进一步优化我的引擎吗?我认为可能有效的一件事是尝试不遍历每个网格值,即使它没有被绘制。但是,我不知道知道是否循环网格值的最有效方法(我目前正在查看每个值,然后计算是否应该绘制)。
如果我太模糊了,请告诉我,我很乐意详细说明。感谢您的时间和专业知识;我是学生,任何帮助都将极大地帮助我学习。
答案 0 :(得分:0)
向您提出的一些建议:您可能希望查看使用八叉树(或您的情况下为四叉树)等内容的经典剔除算法,...