» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

请教3个3D的基础问题!

虽然是做开发,但是对3D完全不懂,请教两个问题!

先是一些根据自己得计算机知识推断出来的一些概念,不知道有没有错!

1)任何计算机都能进行任何得3D效果运算,差别只是速度,而且这个差别可能是非常非常大得!任何3D画面其实都是数字运算后在2D上得投影,因此只要程序人员足够强,把任何投影得公式都用最简单得加减乘除等写在程序里面,程序就能运算得出效果,但是问题是速度差距会极其巨大,某些CPU上1秒得结果在另外一些机器上面可能需要几天!

2)3D显卡其实就是提供对3D运算效果得相关公式提供一个快捷运算。理论上来说,计算机得运算只有0,1二进制,而且运算只能做加法,别的运算其实都是依靠二进制得加法转换而来。但是实际上在运算一些固定公式得时候,计算机可以通过一些位移,异或操作等大幅减少指令数,使得效率能够成百上千得提高。但是这样设计了得cpu就失去了通用性!

3)优化过的CPU在处理某些数据上会远远超过没有优化过的CPU!

4)但是在CPU的方面的优化始终有限,不可能优化的非常彻底。因为太彻底,公式就缺少灵活性,比如某效果运算的公式可能都是由几个标准运算公式组成的,如果把cpu直接设计成运算这个效果的公式,这样在别的公式上运算效果就很差,因此设计上就设计成只对3D运算上的常用的标准运算进行优化。

5)在硬件方面对一些标准的3D运算公式进行了优化,但是对于开发来说,还是显得比较复杂,因此类似与DX,OpenGl这种3D的SDK就是在这个基础上对优化的3D运算公式在进行封装、优化。封装成具体3D效果供游戏开发者调用!

问题1,其实常说的某某显卡支持某效果,其实是不是说这个芯片针对这个效果的一些运算进行了优化?
问题2,某某SDK支持某效果,是不是说这个SDK优化封装了这个效果而已?


tg做游戏开发的多,麻烦指教!


问题3,如果上述推断基本成立的话,那么根据一般CPU的指令周期来判断(频率=指令周期/秒,好像是把,不知道没有记错?)
而一个操作至少也需要一个指令周期,而大部分显卡的频率都要远低于cpu的频率!
但是在3D的执行效率上却远远高于cpu,是否可以判断说现在的通用cpu实际上效率其实低的吓人?


[ 本帖最后由 cf3b5 于 2007-6-21 15:07 编辑 ]


TOP

引用:
原帖由 hourousha 于 2007-6-21 12:50 发表
GPU不只是一个专门化的'运算'单元集合。'存取'单元的专门化同样是极其重要的一环。
某显卡支持某效果,代表显卡有实现某种功能的能力,比如支持shdaer x.x。代表有能力执行shader x.x中的指令。不支持,则代表 ...
我说的优化当然包括存取的优化,某些情况下多一个寄存器就可以节省很多指令!
基本上我的意思是!

GPU实际上是CPU的优化版,而非功能增加版!
虽然有些运算cpu也能做,但是几乎不具备任何实用价值,比如GPU1秒钟搞掂的,CPU可能要1个钟头~
但是前提是,CPU也能算!

回答麻烦加上原因~



TOP

引用:
原帖由 hourousha 于 2007-6-21 13:07 发表
如果你的意思是:GPU干的事,CPU也能办得到。那当然没错。Quake还有software renderer呢。
回答加上原因?什么原因?
原因那个不是指你!
我是不想有些人随便回答个是与不是就算~
:D


TOP

引用:
原帖由 Nothing 于 2007-6-21 14:03 发表

2不对,sdk里没有所谓效果库一样的东西,sdk支持一些基本渲染功能,前面说过,sdk的区别其实非常小。效果是由开发人员运用一系列功能作出来的。xbox的水反射,只能说明开发人员用了相同或者类似的办法来做水的 ...
那么说,假设cpu是最小运算指令,gpu是把cpu中多个运算指令加以优化封装后提供一个新的运算指令,SDK则是对gpu中提供的运算指令再次优化封装,提供给开发者??
其实我说SDK的效果库不是我的原意,我其实只是想表达SDK是否是对运算操作的一个更高阶封装?不过可能有点猜过头了~:D

TOP

发新话题
     
官方公众号及微博