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


发新话题
打印

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

引用:
原帖由 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

引用:
原帖由 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

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

TOP

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