展开异次空间

:: 相对折叠空间/讨论游戏/软件设计.技术 ::

 

[ 技术 ].发现 NVIDIA 在技术上的强大了,差距就是差距啊~

    最近在深入研究 NVIDIA 的代码,与以前研究 OGRE 中的算法真的差距很大啊!
在 OGRE 中摄像机与AABB基本的碰撞判定就是每个可视锥的平面与AABB的所有点判断是否在视锥中,
当然这也是最基本的算法,只要思维清晰、智力普遍正常+偏高就很容易实现出来,
但NVIDIA有一个更好的方法,那就是用AABB的对角线顶点作判定,虽然思路很简单但具体实现可不容易~
首先需要知道每个平面对应的对角线顶点ID,在实时判定中还需要用不同于8个顶点测试的算法,但好处也是显而易见的!
下面是我的数据:
900个物体,总面数=500W面
使用传统的算法下是 6 FPS 左右,感觉效率主要消耗是在渲染三角面上的,
但是 …………
使用了NVIDIA 的算法后居然提高到 8 FPS 了,这是一个什么概念?!!
8 - 6 = 2, 2 / 6 = 1 / 3,也就是提高了 30% 的效率!
要提高 30% 的效率我以前改了好多好多东西哟!--#

分析下算法 原始的是 O( 8*6 ) = O( 48 ), 新的算法是 O( 8 )
因为每次平面判定只需要处理2个对角线了,理论上消耗的时间是原来的 1/3,提高了 2/3 也就是 60%
但由于显卡 CPU瓶颈 场景管理 RP等对结果的影响,最后结果还是令人满意的。

继续研究 NVIDIA 和 ATI 的源代码了,商业代码就是比 OPEN SOURCE 强!
毕竟是拿工资作事的啊~ hoho

posted on 2007-07-03 21:22 Updraft Studio 阅读(644) 评论(2)  编辑 收藏 引用

评论

# re: [ 技术 ].发现 NVIDIA 在技术上的强大了,差距就是差距啊~[未登录] 2007-09-14 23:06 初学者

能否把NV的代码贴出来让我学习学习,或者请指教以下那里可以找到这个代码?  回复  更多评论   

# re: [ 技术 ].发现 NVIDIA 在技术上的强大了,差距就是差距啊~ 2007-09-26 00:41 T.T

@初学者
在 NVIDIA 开发者下载页面里都是很多的, NV SDK 包中的代码就是这些代码了, 而且很多东西看明白之后就可以重用了, 我看的是NV的 PSM,LISPSM,TSM的实例代码那个例子 :)  回复  更多评论   

只有注册用户登录后才能发表评论。

导航

统计

公告

激情,努力

常用链接

留言簿(9)

随笔档案(53)

文章档案(25)

@Updraft Studio@

搜索

最新评论

阅读排行榜

评论排行榜

Freelance Jobs