OpenGL支持库及向导使用教程 联系客服

发布时间 : 星期一 文章OpenGL支持库及向导使用教程更新完毕开始阅读102408d184254b35eefd342f

大连大有吴涛易语言软件开发有限公司 版权所有

设置纹理映射坐标 (1, 1) 设置点 (1, 1, 0) 设置纹理映射坐标 (0, 1) 设置点 (-1, 1, 0) 停止画 () 矩阵入栈 () 移动距离 = 移动距离 + 移动方向 .如果真 (取绝对值 (移动距离) ≥ 0.5) 移动方向 = -移动方向 移动距离 = 移动距离 + 移动方向 参考例程“第十课练习.e” 运行后可以看到图 28中效果:

图 28

第十一节、雾化效果

与反走样刚好相反,雾化效果使得模型看起来更加模糊不清。使用雾化效果不仅可以使场景中的物体看起来更加真实,而且还可提高绘制速度。

在红绿蓝混合通道模式下,雾化效果更好。

2.11.1 设置雾化效果的一般过程:

启用功能(#雾)→设置雾→画出模型→启用功能(#雾) “设置雾”,参数类型如下:

参数名称 含义 参数值 雾索引 在颜色索引模式下参数值为非数组数值

使用

雾密度 也称为浓度,密度参数值为范围在[0,+∞)内的非数组数

越大越模糊 值

39

大连大有吴涛易语言软件开发有限公司 版权所有

可以看清物体的最参数值为非数组数值 近距离

雾终点 使用雾化的最近距参数值为非数组数值

雾模式 使用那种方程计算参数值可以为以下常量: 雾模式1、雾

雾化的模糊程度 模式2、线性

雾颜色 在红绿蓝混合通道参数值为范围在[0,1]内的四维数组

模式下使用

如果需要,也可把“设置画面质量”命令的#雾质量设置为#不考虑或者#快速。 下述代码出自例程“雾化效果.e”程序中“框架初始化”和“调整雾”子程序: 启用功能 (#雾) 设置雾 (#雾模式, 雾模式) 设置雾 (#雾密度, 雾密度) 设置雾 (#雾起点, 雾起点) 设置雾 (#雾终点, 雾终点) 设置雾 (#雾颜色, 雾颜色) 有关混合命令的使用方法可以参考例程“混合效果.e” 其中外面的正方体使用了混合测试,里面的正方体没有使用了混合测试,可以看出它们之间有明显的区别。

运行后可以看到图 27中效果:

雾起点

40

大连大有吴涛易语言软件开发有限公司 版权所有

第十二节、裁剪操作

为了得到一个的模型,除了一块一块的往上添加之外,当然还有使用裁剪将多余的部分去掉,或者只保留需要的部分。对于某些复杂的模型使用裁剪要比往上添加在算法上要简单很多。这里介绍两种裁剪方式:矩形裁剪、立体裁剪。

2.12.1 矩形裁剪的一般过程

启用功能 (#裁剪测试)→画出模型→矩形剪切→停用功能 (#裁剪测试)

“矩形剪切”定义一个矩形剪切框。裁剪框内的内容被保留下来,其余被减掉。图 29中左边是没有裁剪之前的形状,右边是裁剪之后矩形的被保留下来后的画面。

41

大连大有吴涛易语言软件开发有限公司 版权所有

图 29

下述为例程“矩形裁剪.e”中“绘图”子程序的代码:

启用功能 (#裁剪测试) 矩形剪切 (_启动窗口.画板1.宽度 ÷ 2 - 50, _启动窗口.画板1.高度 ÷ 2 - 50, 100, 100) 有关矩形裁剪的使用方法可以参考例程“矩形裁剪.e” 其中蓝色的是没有裁剪的三角形。红色是裁剪后保留下来三角形的一部分。 运行后可以看到图 30中的效果:

图 30

2.12.2 立体裁剪的一般过程

设置裁剪平面→启用功能 (#零号~#五号裁剪面)→画出模型→停用功能 (#零号~#五号裁剪面)

“设置裁剪平面”:在下图 31中裁剪平面的定义值就是(x,y,z,0),在裁剪平面的法向一边被保留下来,反面的模型都会被删除。

图 31

42