正文内容 评论(0)
Extremetech不愧是Zdnet旗下的网站,其创办人为前nvidia雇员Lord Case,他们的这篇3D流程是一篇极具技术性的文章,详尽地分析了整个3D流水线,呵呵,可以获得我的"Damn Cool"文章称号。
”在计算出帧缓存和纹理所占用的内存空间后,3D芯片厂商另外考虑的一个节省空间的办法就是使用纹理压缩技术。S3首先引入了S3TC技术,随后被整合到DirectX6之中。而现在的DXTC,支持纹理以压缩格式移动或储存,这和JPEG压缩类似,只有在渲染时才进行解压缩,这样同时节省了帧缓存空间和带宽,这种压缩体制可以产生4:1 and 6:1 的压缩比,而象Unreal Tournament已经有了支持纹理压缩的游戏版本。
我们上面说过,纹理可以用来创建很多视觉效果,而基本的表面定义只是它诸多应用的冰山一角。开发人员也发明了另外的方法来创建纹理-和以前创建固定的bitmap图不同,他们设计了一些小程序来自动生成纹理,这个技术被用来创建大理石表面,大型户外场景的地形纹理以及流动的水波效果。
雾化概念
在纹理之后,我们再来谈谈另外一个象素操作,雾化。
在很多程序中,特别是游戏中,雾化可以增强游戏的真实感和临场感。总而言之,雾化是一种有用的技术。雾化效果可以通过几种方法来实施,其中两种最普通的方法是线性和指数雾化。从名称我们不难想到,雾化可以通过每顶点或每象素来实现。和3D世界中其他物体一样,每象素的效果更加真实,但是计算量也更加复杂。
更先进的方法是基于范围的雾化,过去这种技术在消费级别的3D芯片上无法实现,随着DirectX8中vertex shaders 的到来,基于范围的雾化也成为了一种可以选择的方法。另外一个方法称为雾化表,雾化值被储存在查找表中,然后应用于每个象素。
从非技术的角度来说,雾化是确定一个物体与摄象机视角的距离远近,而这通常是由Z值来决定的。一个雾化因素,不管是线性还是指数雾化,都是先和综合雾化量值(颜色),光照/阴影化/纹理化的象素颜色计算出来,然后赋予每个象素。如果雾化是基于每顶点的,那么此时雾化就是光照运算的一部分,通过高洛德打光后,对每个三角形进行内插运算。
雾化的另一个用途是可以让远处剪切平面的物体慢慢地消隐而不是突兀的消失或出现。雾化还可以用来让一个渲染层只画出离视角摄象机近的真实物体。当雾化值接近0或为0时,
物体实际上就被舍弃,不需要做额外的渲染工作,Motocross Madness 2就是使用这种技术的游戏代表。“
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...