‘图形学’ 分类的存档
alpha
在颜色红、绿、兰(R、G、B)之后添加的第4个颜色值,用于提供对象颜色的透明度。当它的值为0.0时,就意味着完全透明,为1.0时表示不透明。
Real-Time Cameras: A Guide for Game Designers and Developers
Author: Mark Haigh-Hutchinson
Download pdf :http://rapidshare.com/files/273159781/realtimecameras.rar [本站取消下载链接]
amazon: http://www.amazon.co.uk/Real-Time-Cameras-Developers-Interactive-Technology/dp/0123116341
统一渲染架构让GPU运算单元的利用率更高,但新加入的几何着色器却加重了流处理器的负担,超级复杂的画面场景也给流处理器造成了更大的压力。因此在这几年内,纵使GPU的流处理器数量大增2-3倍、频率也稳步提升,但依然不够用。
DX10带来了众多绚丽无比的新特效,“滥用”各种特效导致GPU不堪重负。而GPU自身的发展受到诸多因素的制约,如果制造工艺跟不上的话运算能力很难取得突破。因此,必须通过不断改进架构运算效率来进一步提升3D图形性能。在DX10之后,微软也开始将重心集中在如何提升算法和效率上面,而不是一味的加入新特效或提高模型复杂度。
以下内容引用:<<游戏设计与开发-梦开始的地方>>
1. 使用二进制移位代替乘除
2. 适当使用全局变量 使用全局变量可以避免调用函数时的参数传递,可以提高速度。
3. 使用32位变量
4. 尽量避免类型转换
尽量使用相同类型的变量进行运算。比方说整数乘整数,浮点数乘浮点数。如果用整
数乘以或除以浮点数的话,在进行类型转换的时候要花去不少时间。如果必须进行类型转
换的话,把它留到最后进行。
5. 使用 InlineFunction
我们知道调用函数是一个非常复杂的过程,要用到栈。当函数比较简单时,我们不希
望每次调用它的时候都兴师动众。使用Inline 伪指令,可以避免不必要的函数调用。
6. 使用速查表(Look-Up Table)
如果程序中用到一些数学函数,比如y=f(x),实时计算太耗费时间。可以预先计算出
对应的 x,y的数值,放到一个大表里。在程序运行时只需到表里查出数值,这样是以存
储空间换取运行时间。
7.
void zBuffer(void)
{
int x, y;
for (y=0; y<YMAX;y++)
{
for (x=0; x<XMAX;x++)
{
WritePixel(x, y, BACKGROUND_VALUE); //将屏幕设为背景色
WriteZ(x, y, 0); //Z 缓存所有单元置0
}
}
for (each polygon) [...]
几乎所有目前的 3D 显示芯片都有 Z buffer 或 W buffer。不过,还是常常可以看到有人对 Z buffer 和 W buffer 有一些基本的问题,像是 Z buffer 的用途、Z buffer 和 W buffer 的差别、或是一些精确度上的问题等等。这篇文章的目的就是要简单介绍一下 Z buffer 和 W buffer。
Z buffer 和 W buffer 是做什么用的呢?它们的主要目的,就是去除隐藏面,也就是 Hidden surface elimination(或是找出可见面,Visible surface determination,这是同样意思)。在 3D 绘图中,只要有两个以上的三角面,就可能会出现某个三角面会遮住另一个三角面的情形。这是很明显的现象,因为近的东西总是会遮住远的(假设这些三角面都是不透明的)。所以,在绘制 3D 场景时,要画出正确的结果,就一定要处理这个问题。
不过,这个问题是相当困难的,因为它牵扯到三角面之间的关系,而不只是某个三角面本身而已。所以,在做去除隐藏面的动作时,是需要考虑场景中所有的三角面的。这让问题变得相当的复杂。而且,三角面往往并不是整个被遮住,而常常是只有一部分被遮住。所以,这让问题变得更复杂。
数据是抽象的,尤其是海量数据,人的大脑很难直接对大量数据进行分析并获得印象,然而从另一个角度看,数据也可以异常美丽,人们设计了很多工具,让枯燥的数据图形化,本文介绍了50个数据图形化工具,它们以令人难以置信的方式让我们看到了数据美丽的一面。
微软新型的高级渲染语言(High_Level Shader language ) HLSL数据类型
1.标准数据类型
数据类型bool,int,float,double,half(16位的float数值).
const修饰符的变量、编译器会把它放在一个不需要些的内存空间、因为变量不可以被修改、声明时必须初始化.
row_major、colmajor, 作用用来指定当前定义的元素,是使用行主序还是列主序进行存放, row_major float4×4 WorldMatrix; 注:列主序运行效率高.
static 该修饰符具有全局作用域.防止渲染器变量暴露给应用程序.任何API函数不能获得static类型变量的值.
extern 含义和static相反,在shader以外声明的,没有用关键字声明的全局变量默认为extern.
uniform 只能使用API方法改变它,并且只在两次绘制间被改变.一旦该类型变量被赋值所有的顶点或像素都会看到同样的值.
shared 用来修饰Shader变量表明它在不同的效果(effect)中共享.
