我有一个使用一个三维网格表示一个简单的游戏,是这样的:3D游戏几何
double x,y,z, dx,dy,dz;
:
Blocks grid[10][10][10];
在游戏中的人是由一个点和视线向量表示我画用3格嵌套的for循环:
for(...) for(...) for(...)
draw(grid[i][j][k]);
与此明显的问题是,当网格的大小增长匈奴内dreds,fps显着下降。对于一些直觉,我意识到:
是由在网格中的其他区块隐藏- 块不需要被渲染
- 块所没有的人的视野范围内也不需要是
我的问题是,给定一个grid[][][]
,呈现(即是后面的人即块)一个人的x,y,z
,以及视线矢量dx,dy,dz
,我怎么能弄清楚哪些块需要渲染,并且不要” T'
这是一个相当大的话题,在[隐藏表面确定](http ://en.wikipedia.org/wiki/Hidden_surface_determination)。 – 2012-02-16 03:04:20
如果您使用openGL或任何其他3D库,它会在最终渲染中自动执行_culling_。 – toto2 2012-02-16 03:04:44
那么如果我使用opengl,那么添加几何优化不会影响整体性能? – 2012-02-16 04:18:42