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


发新话题
打印

[老游杂谈] DC是台奢侈到特效全开的机器

引用:
原帖由 samusialan 于 2012-3-9 16:14 发表
可能是PowerVR2的隐面消除能力,才能有余力做这些吧
N卡一直到GF4才把这点补上来的
也就是说用GF3的XBOX都没这么强的隐面消除能力
现在的ATI/NV的GPU也没有那么强的隐面消除能力,但这又能说明什么呢?640Mhz的SGX545实测性能依然不及280Mhz的HD6250(绝对底端)的30%
所以我觉得真没必要扯出XBOX来。
隐面消除能力只是在一些情况下提升效率的手段罢了,在压倒性的性能差距面前,用处就很小很小了。
就如同说PS2的显存带宽远大于XBOX,这个呢至少在一些特殊情况下(比如大量简单的粒子效果渲染)能产生超过XBOX性能的效果;但这个DC的隐面消除,在任何情况下也无法弥补和XBOX数量级级别性能差距啊,所以这种比较就是毫无意义的。


TOP

引用:
原帖由 samusialan 于 2012-3-9 21:00 发表
只是试着分析楼主所说的为什么DC很多游戏用mipmap,而同样可以用的PS2和GC为什么不用的可能性而已,又没人说要比性能
xbox用GF3,大家都知道比PS2和GC所用的图形芯片支持的东西多,而且和PowerVR2一样参数详细方便 ...
内hyper-z可不是隐面消除,或者说不全是隐面消除,里面的fast z-clear与lossless z-compress占了很大成分。
ATI真正开始宣传隐面消除,是从R300开始,那个叫作Early Z/Stencil Cull,这功能在XBOX中叫Z/Stencil-Occlusion Culling(和之后DX9 API中相同名称的东西有区别)。
仅就这个东西能提升多少性能,其实真的说不好,因为和场景的深度复杂性有关,而且只对不透明物体有效。按照Imagination的宣传,也就是给个2.5的系数,这还是针对‘完全隐面消除’和‘完全没有隐面消除(XBOX是有的,这不用怀疑,SDK里写的很明白,尽管效率显然不如PVR高)’的极端对比。而XBOX和DC的图形性能对比早就超过10倍,那么自然DC的这个功能的作用就极其有限了。
要说起来,DC还真和XBOX没什么比较的意义,和PS2最接近——都属于初期GPU没什么功能可言的那种,只不过PS2的GPU速度足够快(超过DC的10倍)但显存太小而且没纹理压缩并且纹理必须位于显存中所以导致开发难度大增以至于初期在部分方面落后于DC。GC的Flipper基本属于功能最全的DX7级别显卡,16个Texture OP Stage超出DX7标准一倍,而且支持纹理压缩并且支持fetch内存中的纹理(也就是1T-SRAM中的1M空间当作Texture Cache)所以GC的GPU在功能上要大大超过PS2,而比较接近XBOX,当然性能上比XBOX落后太多,比如Flipper没有原生dot3指令,类似mul指令也只能单周期4次,纹理指令亦然,而XBOX本身频率就更高并且支持Vertex/Pixel Shader,Pixel Shader部分最大可以单周期16次dot3指令或16次mul指令,8次tex指令。XBOX唯一的弱点就是内存(自然也是显存)的带宽偏低,如果带宽提升一倍,最好容量也提升一倍的话,可以更充分地发挥性能。

PS2不使用mipmap的原因,除了开发商脑袋有包之外,只可能是出于显存容量考虑。

[ 本帖最后由 hourousha 于 2012-3-9 22:08 编辑 ]



TOP

你们说的名词很混乱啊,凹凸贴图,平滑组,看起来滑溜……让人摸不着头脑。
凹凸效果有多种达到方式,使用灰度图做凹凸贴图的是emboss bumpmap,这个方法就连DC都能用,不用说PS2了。
GC除了emboss bm外,还可以用EMBM,它用的是一个双通道向量贴图dudv——A,将该向量作用于每像素的原始uv(这个UV一般不是指模型UV,而是是经过空间转换,和视方向相关的向量2D投影)进行扰动,然后去另一张纹理B中进行采样,B可以是一张光源贴图(大概近似于LZ说的‘高光贴图’),这样可以近似模拟出带凹凸的specular效果,而如果B是一张场景反射贴图,就可以近似模拟出水面的反射扰动效果。
XB除去上两种外可以做的是法线贴图,此时的凹凸贴图是一个3D向量贴图,不是什么灰度的贴图。它把贴图的texel直接映射为法线,然后在pixel shader中带入光照公式进行运算。
GC要想做法线贴图也不是不能做,就是比较慢罢了,毕竟GC的flipper没有点积指令,得用多条指令凑合出来;如果PS想做法线贴图,则只能指望deferred shading了(也就是输出G-buffer然后用EE的UV来进行运算),但显然这只存在于paper层面上,实际应用基本不现实。

至于油滑不油滑,只由光照公式决定,用凹凸贴图不见得会变得油滑,使用高光贴图也不见得就一定油滑。油滑那是因为处理步骤得太简单,加个gloss map做一下specular的强度放缩就好多了。


TOP

引用:
原帖由 dragonzet 于 2012-3-31 12:01 发表
平滑组是3DSMAX的说法。。我知道有别的称呼,根据软件也会不同。MAYA上叫软边,不过英语从来不记。总之一回事。
凹凸帖图 麻烦楼上举例下DC和PS2的凹凸贴图 具体到游戏的场景例子。。。
多谢~
当初的PowerVR SDK里就有emboss bump map的sample,这东西只要有纹理贴图能力和alpha混合能力(准确说是减法能力)就能做,很高级吗?

TOP

emboss bumpmap做不出specular的凹凸效果。也就是只能近似做出diffuse的凹凸效果,而且效果也不稳定——和光源位置超过一定角度就直接出现错误效果了——这是它应用受限的主要原因。
而且众所周知,specular的凹凸效果是随光源或者视点变化而产生变化的,所以比较明显——毕竟游戏中视点变化是很频繁的。但diffuse的凹凸效果只随光源(相对)位置变化而变化。所以相对就不明显了。静态的直接把凹凸画贴图上不就OK了,动态的由于上面提到的效果不稳定性,也不好大范围使用,而且毕竟有性能损失,外加上代游戏中对实际光源的使用非常吝啬,所以用的不多也就不足为奇了。
让我想想,ICO中或者有emboss bump map的使用痕迹。但不太确定。

TOP

我说的specular指的是光照模型中的高光成分。在简化的phong模型中
Final Color = Ambient + Diffuse + specular
Diffuse = (Normal dot Light)*diffuse color
Specular = (Light dot Reflect_View)^gloss level*Specular Color
Reflect_View = 2*(Normal dot View)*Normal-View

所以,Diffuse只和Light与模型的相对位置相关,而Specular和Light与View的位置同时相关。
由公式所见,除非支持normals' map,否则是无法正确重现phong模型的,而实际上,上一代主机,包括XBOX在内,都无法完整实现phong模型——XBOX受限于pixel shader缺少复杂数学运算(指数运算)所以无法实现逐像素不同gloss level效果。至于GC和PS2 DC就更不用说了。因此,一般都是用别的方法分开近似模拟这几个部分,比如emboss可以近似模拟diffuse部分,EMBM可以近似模拟specular部分等等。
PS2和DC确实都有能力做emboss bump map,这并不是仅存在于理论层面的(比如PS2做deferred shading),只不过实际应用受限所以较少罢了。毕竟效果不好还消耗额外性能,不如把性能放到其他方面。

[ 本帖最后由 hourousha 于 2012-3-31 13:03 编辑 ]

TOP

这贴的走向,233……

TOP

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