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


 33 123
发新话题
打印

请教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

TG喷子多,真正的业内少。



TOP

问题2,某某SDK支持某效果,是不是说这个SDK优化封装了这个效果而已?

SDK里面没有封装效果这种东西,只是可以调用一系列完成这个效果需要的功能,如何调用还是需要开发者自己来。不同的sdk功能差别其实非常的小,目前在统一渲染这种新架构上面dx10略为领先一步


TOP

我学过3DMAX,不同臆第一句,靠CPU来做3D还是省省吧,我做一把牙刷,显卡是7300(PS3水准的),把牙刷上的毛都用多边型,也就2百来根吧,一根毛8个面,再加上喧染,速度就变得慢了很多.

TOP

1、不是。
2、不是。

简单例子:
1、fc的6502不能处理32位浮点运算。
2、excel不能解微分方程,matlab可以。

TOP

GPU不只是一个专门化的'运算'单元集合。'存取'单元的专门化同样是极其重要的一环。
某显卡支持某效果,代表显卡有实现某种功能的能力,比如支持shdaer x.x。代表有能力执行shader x.x中的指令。不支持,则代表无法执行,不是优不优化,速度快不快的关系;GPU不是一个和CPU一样完全flexible的东西。包括它的功能单元和运算单元。不过对于支持SM2.0的GPU,由于算术部分相对完整,所以一部分只和计算关系密切的功能(比如某种格式的blending)可以用shader实现。

[ 本帖最后由 hourousha 于 2007-6-21 12:53 编辑 ]

TOP

引用:
原帖由 123321456 于 2007-6-21 12:46 发表

1、fc的6502不能处理32位浮点运算。
问下这个可以软件的方法解决么?

不是说原来INTEL的64位是32位2次计算得出来的,然后被AMD说是伪64位么。。

TOP

6502用高低位来慢慢算,用定点数模拟浮点数,也完全不能处理32位浮点么?

TOP

引用:
原帖由 123321456 于 2007-6-21 12:46 发表
1、不是。
2、不是。

简单例子:
1、fc的6502不能处理32位浮点运算。
2、excel不能解微分方程,matlab可以。
excel可以用数值算法解,也就是把微分方程变成差分之后设立节点组成巨大的稀疏矩阵,再用excel的solver

不过直接写code的确不行

TOP

动画电影,就是GC,由于用到的特效太多,都是用CPU渲染的,优化少数指令的GPU根本用不上

TOP

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

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

回答麻烦加上原因~

TOP

如果你的意思是:GPU干的事,CPU也能办得到。那当然没错。Quake还有software renderer呢。
回答加上原因?什么原因?

TOP

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

TOP

引用:
原帖由 cc0128 于 2007-6-21 12:52 发表

问下这个可以软件的方法解决么?

不是说原来INTEL的64位是32位2次计算得出来的,然后被AMD说是伪64位么。。
对于6502来说它算的是不是32位浮点?
显卡也是一样,我拿预渲染的dx10画面当贴图,给dx7显卡做个游戏,是不是表示dx7卡支持dx10特效?

TOP

引用:
原帖由 firesun 于 2007-6-21 12:53 发表
6502用高低位来慢慢算,用定点数模拟浮点数,也完全不能处理32位浮点么?
lz问的是
引用:
原帖由 cf3b5 于 2007-6-21 12:07 发表
问题1,其实常说的某某显卡支持某效果,其实是不是说这个芯片针对这个效果的一些运算进行了优化?
我的回答是不是,有些运算指令是cpu/gpu本身不支持的。
即使我们能通过软件算法得出运算结果,那也和硬件支不支持该种运算无关。

TOP

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