理解 shader
和FPS
1. 什么是shader
?
-
shader
中文名叫着色器,顾名思义,它的作用可以先简单理解为给屏幕上的物体画上颜色。 - 而什么东西负责给屏幕上画颜色?当然是
GPU
,所以我们写shader
的目的就是告诉GPU
往屏幕哪里画、怎么画。 -
2D
图形,就是无论你如何移动视角,地面上的建筑物、花草树木样子都不会变,而3D
图形则不 同,随着视角的变换,你看到的物体也在变化,从正面变成侧面,越远的物体越小,越近的越大,与现实生活中人眼看到的情景非常相似。 -
shader
就是专门用来渲染3D
图形的一种技 术,通过shader
,程序设计人员可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。 几年前并没有shader
这个东西,所以那时候的显卡,就不 支持shader
,而只支持固定管线渲染,游戏画面也没有现在的酷。 -
shader
又分两种 ,一种是顶点shader
(3D图形都是由一个一个三角形组 成的,顶点shader
就是计算顶点位置,并为后期像素渲染做准备的),另一种是像素shader
,像素shader
顾名思义,就是以像素为单位,计算光 照、颜色的一系列算法。 - 几 个不同的图形API有各自的
shader
语言: 在DirectX
中,顶点shader
叫做vertex shader
,像素shader
叫做pixel shader
; - 在
OpenGL
中,顶点shader
也叫做vertex shader
,但像素shader
叫做fragment shader
。 - 此外显卡芯片厂商nVidia还推出CG显卡编程语言,也支持 shader。 shader 有很多不同的版本: 所以,即使你的显卡支持shader,但可能版本不够高,所以无法支持比较新的游戏使用的 shader。 一般来说,大部分游 戏都支持不同版本的shader,为的是让尽可能多的机器都能运行,为此需要做很多额外的工作。 除了显卡不够新之外,不同显卡厂商对shader的支持也不尽相同,所以同一个游戏,一样的 设置,在n卡和ATI的卡上,表现可能大不一样。 另外,安装官方最新的驱动程序也是必要的。如果你安装了错误的驱动程序,甚至是随便从网上下载一个显卡驱动,那么即使你的显卡支持 shader,也可能跑不了需要shader支持的程序,包括但不限于网络游戏!
2. 什么是FPS
?
-
“FPS”
是词组“Frames Per Second”
的缩写 -
“Frames Per Second”
在计算机图像范畴内被翻译为:“每秒传输帧数”
。更确切的解释,就是“每秒中填充图像的帧数(帧/秒)“。 - 这里的
“FPS”
就是我们常在CS游戏里说的“FPS”
值,也可以理解为我们常说的“刷新率(Hz)”。我们在装机选购显卡和显示器的时候,都会注意到“刷新率”。一般我们设置缺省刷新率都在75Hz(即75帧/秒)以上(XP锁定在60Hz)
。 - 例如:
75Hz
的刷新率刷也就是指屏幕一秒内只扫描75次,即75帧/秒
。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁,不连贯,对图像显示效果和视觉感观产生不好的影响。在FPS游戏例如CS中也是一样的,游戏里的每一帧就是一幅静止画面,而“FPS”
值越高也就是“刷新率”越高,每秒填充的帧数就越多,那么画面就越流畅。当显卡能提供的“FPS”值不足以满足游戏的“FPS”
时玩家就会感觉丢帧,也就是画面不连贯,以至影响游戏操作结果。 - 所以在CS中,我们都力求达到游戏最高的
100 FPS
值,来达到最好的游戏画面和最好的游戏效果。那么配置强的机器就不用发愁了,配置弱的机器就需要调整“config”
各种画面参数来优化“config”
以到达优化“FPS”
值。
网友评论