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


 29 12
发新话题
打印

[专题讨论] 请问PS的3D加速是什么原理?是硬件加速?还是软件加速?

在“32X之死——游戏机硬件增强的历史”一文中看到有段文字是些当年三大主机的3D特点,n64勉强具备了完整3D硬件的特点;土星是以2D活动块的方式来处理多边形;PS是纯软件计算,只是多了个GTE。
请问PS的“纯软件计算”是什么道理?套用到电脑方面是不是类似VOODOO显卡面世之前,用好些的CPU+2D显卡玩3D游戏的道理,也就是全部工作都交给CPU死算。
那么3D游戏里的特效,比如光源、半透明、雾化等等“上古时代”的3D特效,要实现这些特效是不是设计的时候要对硬件做些“特化”?那么ps是什么芯片用来计算特效的?它的特效是怎么来的?
我打个比方,玩FF7,小克吃个药还要有个绿色的半透明光圈围着他,这绿色半透明光圈算是特效吗?硬件要做个这样的半透明光圈很难吗?那么PS硬件里那个部分是负责运算这个光圈的?

另外再说一句,我今天玩土星的VR战士对格斗之蛇,开了写轮眼模式,(用了放大镜)发现土星的3D画面没有出现类似ps那种“直线变折线”的情况,游戏中擂台的地砖,笼子柱,等等直线的东西都没有发生折线的情况。还有就是人物身上看不出有“四边形面体”的情况了,很圆滑,(这好像叫高洛德描影法吧?)但是隐藏的那些卡通角色全是满身的“四边形面体”,这是什么情况?

[ 本帖最后由 werety 于 2014-2-18 23:18 编辑 ]


TOP

你问得太多了,洗洗睡吧。



本帖最近评分记录
  • hourousha 激骚 +1 太骚了 2014-2-19 11:19

TOP

posted by wap, platform: Firefox

这个问题太专业 需要专业人士回答

我个人猜测是
1. 硬件加速: 显卡提供了很多特效现成的接口, 比如水的效果,写游戏的人直接调用硬件的那个水的效果就好了,写软件的人不用自己想一个水的效果算法出来
就好比你让一个人吃饭,你只要在程序里写 吃饭 后面跟个参数 吃什么饭 在家里还是饭店
2. 软件: 硬件里没有讨巧的接口给你用,怎么显示这个效果 你要自己写出来。
那么你要让一个人吃饭就难了, 你要先写 线让眼睛看,然后判断餐具在哪里,然后写怎么张开嘴巴,怎么咀嚼,怎么吞下去。整个过程。而且无法使用其他芯片的协助。

自己不会任何编程 纯属猜测


TOP

引用:
原帖由 beterhans 于 2014-2-19 00:01 发表
posted by wap, platform: Firefox

这个问题太专业 需要专业人士回答

我个人猜测是
1. 硬件加速: 显卡提供了很多特效现成的接口, 比如水的效果,写游戏的人直接调用硬件的那个水的效果就好了,写软件的人不用自 ...
那么粗略的理解就是软加速的特效算法要靠程序员自己写;而硬加速是芯片直接集成了特效算法,程序员只要直接调用,设置几个相关参数就可以了,制作游戏业方便了,是这个意思吗?

TOP

引用:
原帖由 SONIC3D 于 2014-2-18 23:56 发表
你问得太多了,洗洗睡吧。
索大哥,这回答有些不太符合您“包打听、硬软帝”的性格呀。

TOP

引用:
原帖由 werety 于 2014-2-19 11:11 发表

索大哥,这回答有些不太符合您“包打听、硬软帝”的性格呀。
他的意思是你的问题表露出了你的理解度,他觉得他的答案只会让你更困扰,所以……类似于有人问我无线网卡和无线上网卡有什么区别,我解释完了以后他的回答是,哦,原来都是无线上网用的啊。

TOP

引用:
原帖由 werety 于 2014-2-18 23:12 发表
在“32X之死——游戏机硬件增强的历史”一文中看到有段文字是些当年三大主机的3D特点,n64勉强具备了完整3D硬件的特点;土星是以2D活动块的方式来处理多边形;PS是纯软件计算,只是多了个GTE。
请问PS的“纯软件计算 ...
其实所有硬件特效软件都能实现,你看奔腾时代的电脑,没3D加速卡还不是跑得欢快。
有了3D显卡后就有分工了。
CPU负责多边形的几何运算,光照阴影
3D显卡负责渲染,包括纹理贴图,Z缓冲,线性过滤,ALPHA混合(半透明),这些功能的参数都是硬件定死的。

PS应该就是一台没有3D显卡的计算机,渲染也交给CPU来做。但是由GTE负责3几何运算所必须的矩阵运算,效率比单用CPU高。
N64则是标准的CPU+3D显卡

后来黄老板的GEFORCE显卡提出硬件T&L的概念,几何运算和光照阴影也交给显卡了。
显卡参数都分两边,一个是顶点运算,一个是渲染,就是指这两种。
现在显卡都是统一渲染构架了,就不分了。


上上代主机推出的时候正赶上炒作硬件T&L,因此XBOX和NGC的顶点运算也是交给显卡的,
而PS2走的是第一代路线,一个特别强大的CPU+只负责渲染的显卡
而PS2那个特别变态的多边形生成率,指的是只计算多边形本身,不做光照阴影,也不做后期的渲染。而且它的多边形数是利用1个三角型有3个顶点,2个三角形有4个顶点这样的算法搞出来的,所以被喷了。

[ 本帖最后由 md2 于 2014-2-19 11:56 编辑 ]

TOP

门外汉随便说说,硬件加速可以理解成将硬件设计成只能做几个固定的运算方式,通用性不如cpu,但效率高很多,就像现在专业的挖矿机

TOP

引用:
原帖由 werety 于 2014-2-19 11:11 发表

索大哥,这回答有些不太符合您“包打听、硬软帝”的性格呀。
其实这事就是解释清楚比较麻烦,而且可能解释者觉得解释清楚了但其实听者并没有如解释者所想的那样正确理解。
简单来说,因为PS有GTE,而GTE是专门负责加速3D中使用的特定矢量运算的单元,所以PS属于有专门用于3D加速的硬件,这就叫硬件加速。
就3D流程来说,简单可分为顶点处理部分和片段(像素)处理部分。GTE作用于顶点处理部分,而PS的片段处理部分其实并没有多少成熟3D特定功能,主要是一个贴图机能比较符合趋势。
由此可知PS和Voodoo是完全不同的,Voodoo没有顶点处理机能,但它的片段处理功能在当时是比较完整的。而Voodoo之前的PC也和PS不同,它们没有专门的顶点加速单元,而像素处理部分的功能(活动块之类的游戏特定功能)比PS还要少,所以基本是靠直接显存映射,然后用CPU来完成整个3D片段处理流程。
至于贴图变形,那是由于贴图单元缺少透视矫正所导致的,你考虑一个正方形地砖,纹理是中间有一条竖线,经过透视后变该地砖成了一个梯形,于是竖线,也就是上边中点和下边中点的连线与对角线的交点肯定不是对角线的中点对不对?但由于PS没有透视矫正且处理单元是三角形,所以它贴图就会在对角线分成的两个三角型上分别完成,而贴图的那条竖线,贴在无透视矫正的两个三角形上,就分别为上边与对角线的中点的连线,和下边与对角线中点的连线,这样把俩三角形一拼起来,自然那条竖线就变成折线了。这么解释我不知道你能不能明白。
SS没这问题,不是因为SS有透视矫正,而是因为SS的贴图是以四边形为单位绘制时是沿着上边向下边一条线一条线描绘(可见效率高不了),所以在每个变形四边形上,贴图不会发生上述扭曲,但它这功能是不能取代透视矫正的,因为它的不变型前提是假定原始四边形是长方形,作为墙面或地面是差不多的,但作为自由3D建模是不足的。
本帖最近评分记录
  • werety 激骚 +3 恭喜发财 2014-2-19 23:03

TOP

引用:
原帖由 md2 于 2014-2-19 11:30 发表


其实所有硬件特效软件都能实现,你看奔腾时代的电脑,没3D加速卡还不是跑得欢快。
有了3D显卡后就有分工了。
CPU负责多边形的几何运算,光照阴影
3D显卡负责渲染,包括纹理贴图,Z缓冲,线性过滤,ALPHA混合( ...
PS和N64如果类比PC,都应该算是‘有可编程顶点功能’的玩意。只不过PS的GTE功能相对单一,N64的RSP编程太过复杂(所以大多数厂商没法直接用RSP的ucode,只能用现成的SGI库,导致性能偏低同时很容易被高阶模拟)

TOP

引用:
原帖由 hourousha 于 2014-2-19 12:10 发表

其实这事就是解释清楚比较麻烦,而且可能解释者觉得解释清楚了但其实听者并没有如解释者所想的那样正确理解。
简单来说,因为PS有GTE,而GTE是专门负责加速3D中使用的特定矢量运算的单元,所以PS属于有专门用于3D ...
图来了,是这个意思吧?
其实这个问题主要是几何运算与贴图分为两步造成的。前者是空间运算,后者是平面运算。
不知道非光栅化的3D图形技术有没有这个问题。



[ 本帖最后由 md2 于 2014-2-19 12:34 编辑 ]

TOP

引用:
原帖由 hourousha 于 2014-2-19 12:17 发表

PS和N64如果类比PC,都应该算是‘有可编程顶点功能’的玩意。只不过PS的GTE功能相对单一,N64的RSP编程太过复杂(所以大多数厂商没法直接用RSP的ucode,只能用现成的SGI库,导致性能偏低同时很容易被高阶模拟)
PS是把第二代显卡的功能给加进去了,但是缺少第一代显卡的功能……这样?

它设计专门的贴图模块了吗?
SS的贴图是交给负责活动块的那个VDP进行的?

TOP

引用:
原帖由 md2 于 2014-2-19 12:42 发表

PS是把第二代显卡的功能给加进去了,但是缺少第一代显卡的功能……这样?

它设计专门的贴图模块了吗?
SS的贴图是交给负责活动块的那个VDP进行的?
作为一个专用的定制硬件,其实加一些通用硬件若干年后实作的东西,是不足为奇的,而GTE等几何加速单元,也不是什么奇思妙想是很顺理成章的事情.T&L更多的贡献是在标准化方面,当然我个人认为T&L是比较糟的了,就功能上说。
PS当然有贴图模块,UV之类的也有。
相对来说SS还是传统的Sprite方式,一个part索引一块图像数据
本帖最近评分记录
  • md2 激骚 +3 恭喜发财 2014-2-19 13:09

TOP

引用:
原帖由 hourousha 于 2014-2-19 13:01 发表

作为一个专用的定制硬件,其实加一些通用硬件若干年后实作的东西,是不足为奇的,而GTE等几何加速单元,也不是什么奇思妙想是很顺理成章的事情.T&L更多的贡献是在标准化方面,当然我个人认为T&L是比较糟的了,就功 ...
再求教一个
SS后期到底是怎么实现3D半透明的?

之前不能实现光源和阴影是因为CPU忙不过来了
没有半透明是因为贴图方式

后期有了半透明,难道是因为抛开了VDP,连贴图都交给CPU了?而且连高洛德光源都有了

TOP

引用:
原帖由 md2 于 2014-2-19 13:12 发表
再求教一个
SS后期到底是怎么实现3D半透明的?
之前不能实现光源和阴影是因为CPU忙不过来了
没有半透明是因为贴图方式
后期有了半透明,难道是因为抛开了VDP,连贴图都交给CPU了?而且连高洛德光源都有了 ...
高络德明暗原本就有的,只要是采用直接色模式的多边形。
至于3D半透明(变形sprite半透明)的trick方面?还是问Sonic3D吧,这个真不清楚,或者可以多pass处理,先把变形sprite画出来,然后把图像数据抓出来后再当作一个非变形sprite以半透明绘制?我是不知道SS可不可以这么做。

TOP

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