在CAD和游戏行业中,遮挡算法是必要的。我认为这两个行业是不同的。我的问题是:
我正在进行CAD软件开发,我们采用的遮挡算法是:将对象标识符设置为其颜色(整数),然后渲染场景,最后读取像素以查找可见对象。演出不太好,所以我想在这里得到一些好主意。谢谢。
在阅读了anwsers之后,我想澄清一下,这里的遮挡算法意味着“遮挡剔除”--在将它们发送到管道之前找出可见的表面或实体。
通过谷歌,我在伽马曲找到了一种算法。还有其他好主意或发现吗?谢谢。
发布于 2009-03-27 17:38:06
到目前为止,大多数答案都只是讨论图像顺序的遮挡。我不完全确定CAD,但在游戏中,遮挡从更高的层次开始,使用BSP树、oct树和/或门户呈现来快速确定显示在查看结果中的对象。
发布于 2009-03-27 15:30:54
在游戏中,遮挡是用两个3D库中的一个在场景后面完成的: DirectX或OpenGL。为了进入细节,遮挡是用一个Z缓冲器完成的。每个点都有一个Z分量,点是更近的封闭点,更远。
遮挡算法通常由专用的3D图形处理芯片在硬件上完成,该芯片实现DirectX或OpenGL功能。游戏程序使用DirectX或OpenGL在三维空间中绘制对象,并由OpenGL/DirectX库在考虑投影和遮挡的情况下渲染场景。
发布于 2009-03-27 15:40:09
您应该搜索的术语是隐匿表面去除。
实时绘制通常利用一种简单的隐藏表面去除方法:背景剔除。每个多边形将有一个“表面法线”点,这是预先计算在一定距离的表面。通过检查与相机有关的表面法线的角度,你就会知道表面是朝外的,因此不需要渲染。
下面是一些交互式基于flash的演示和解释。
https://stackoverflow.com/questions/690192
复制相似问题