天行健 君子当自强而不息

     摘要: 大多数函数已经重载以使其可以对所有内建类型有意义。例如,abs对所有数值类型有意义,所以它为所有这些数值类型进行了重载。又例如,叉积的叉乘仅对 3D向量有意义,所以它对所有类型的3D向量(比如:int,float,double的3D向量)进行了重载。另一方面,线性插值——lerp,对于数值、2D、3D和4D向量有意义,因此重载了这些类型。  阅读全文
posted @ 2008-04-05 18:28 lovedday 阅读(2547) | 评论 (0)编辑 收藏
     摘要: HLSL有一个丰富的内建函数的集合,它们对3D图形来说非常有用。下表是一个删减了的列表,注意:要得到更多的参考,可以参看DirectX文档中内建HLSL函数的完整列表。  阅读全文
posted @ 2008-04-05 18:05 lovedday 阅读(7696) | 评论 (0)编辑 收藏
     摘要: 为便于参考,这里给出一个HLSL定义的关键字列表:  阅读全文
posted @ 2008-04-05 17:18 lovedday 阅读(4728) | 评论 (0)编辑 收藏
     摘要: HLSL支持下列数值类型(scalar type):

bool—True or false value. Note that HLSL provides the true and false keywords.

int—32bit signed integer

half—16bit floating-point number

float—32bit floating-point number

double—64bit floating-point number

注意:一些平台不支持int, half, and double类型,这时我们使用 float类型模拟。  阅读全文
posted @ 2008-04-05 17:05 lovedday 阅读(4476) | 评论 (1)编辑 收藏
     摘要: 下一个方法就是设置常量的默认值,这些默认值在声明时初始化。这个方法应该在应用程序建立(setup)期间被调用一次 (called once)。  阅读全文
posted @ 2008-04-05 16:45 lovedday 阅读(3200) | 评论 (0)编辑 收藏
     摘要: 每个着色器有一个常量表,用来保存它的变量。D3DX库通过ID3DXConstantTable接口,提供给应用程序访问着色器的常量表。通过这个接口我们能够在应用程序中设置着色器源代码中的变量。

我们现在描述ID3DXConstantTable接口的方法列表的实现,全部的列表请查阅Direct3D文档。  阅读全文
posted @ 2008-04-05 16:18 lovedday 阅读(3804) | 评论 (4)编辑 收藏
     摘要: 在我们写的程序里顶点和像素是很小的对象,它们由GPU来执行,是固定功能管线的一部分。用我们自己写的着色器程序替换一部分固定功能管线,在绘制效果上我们获得很大的灵活性。我们不再局限于预定义的"固定"操作。

为了编写着色器程序,我们需要一种高级着色器语言(High-Level Shading Language ,简称HLSL) 。 在DirectX 8中,着色器是用低级着色器汇编语言编写的。幸运的是,我们不必再用汇编语言来写着色器了,DirectX 9支持一种高级着色器语言来写。  阅读全文
posted @ 2008-04-05 15:58 lovedday 阅读(9893) | 评论 (18)编辑 收藏
     摘要: 假设用户点击了屏幕上的点 s (x, y)。 从图15.1我们能看到用户选取了茶壶。无论如何,应用程序无法根据给定的s点就立即确定茶壶是被选取。

我们知道一些知识:关于茶壶和它的关联点s,茶壶投影在围绕s点的区域,更准确的说是:它投影到投影窗口上围绕p点的区域,与它对应的屏幕点是s。因为这个问题依赖于3D物体与它的投影之间的关系,我们看图15.2就可以了解。  阅读全文
posted @ 2008-04-04 16:31 lovedday 阅读(5147) | 评论 (2)编辑 收藏
     摘要: 许多自然现象是由很多小的小颗粒组成的,它们有相似的行为。(例如,雪花落下,闪烁的火焰,冲出枪管的“子弹”),粒子系统用来模拟这种现象。

粒子是一个很小的对象,它通常用来模拟数学中的一个点。点元是用来显示粒子的很好的方案,可是点元被光栅化成一个简单的像素。这没给我们多少灵活性,因为我们想有各种大小不同的粒子,并且把整个纹理平滑映射到这些粒子上。在Direct3D 8.0以前,因为点元方法的局限性而完全不使用他们。代替的方法是程序员将使用公告板去显示粒子,一个板是一个方格,世界矩阵用它来确定方向,使它总是朝向照相机。   阅读全文
posted @ 2008-04-04 13:13 lovedday 阅读(2990) | 评论 (0)编辑 收藏
     摘要: 本例程实现了一个粒子枪系统,运行效果如图14.4所示:  阅读全文
posted @ 2008-04-04 13:12 lovedday 阅读(1084) | 评论 (0)编辑 收藏
仅列出标题
共136页: First 18 19 20 21 22 23 24 25 26 Last 

公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论