购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.11 光源和材质

光源和材质的操作比较复杂,在大部分开发中不会遇到,在这里仅做简单介绍。

首先,在绘制图形前,需要开启光源。

  GL.glEnable glcLight0
GL.glEnable glcLighting

光源开启运行结果如图3-21所示。

图3-21 光源开启运行结果

在OpenGL中,灯光默认为黑色,其显示结果为灰色。

  Dim Amb(4)As GLfloat
Amb(1)= 0
Amb(2)= 0
Amb(3)= 0
Amb(4)= 1
GL.glLightfv ltLight0, lpmAmbient, Amb(1)
GL.glEnable glcLight0
GL.glEnable glcLighting

在以上代码中,增加了白光的环境光。VB语言没有指针的概念,其对全数组的引用只需使用第一个数组序号。白光运行结果如图3-22所示,什么都没有显示。

图3-22 白光运行结果

物体表面的色彩是环境光和物体相互作用的结果。因此,我们需要增加物体表面的材质。当物体表面颜色或者是物体面太多的时候,指定材质变得很困难。此时可以采用一个简单的办法:颜色跟踪。

我们添加以下代码:

  GL.glEnable GL.GL_COLOR_MATERIAL
GL.glColorMaterial faceFrontAndBack, cmmAmbientAndDiffuse

其运行结果如图3-23所示。

图3-23 颜色跟踪运行结果

颜色跟踪后的运行结果与未使用颜色跟踪的运行结果并没有区别。可以读取一个基于STL文件格式的三维数学模型,然后设置三维显示,就出现了如图3-24和图3-25所示的显示效果。

图3-24 模型读取调整光源

图3-25 不同方位的展示及光源调整 aML4drOJ/yfSf/FNMSKH+JppnbNCmJ26nuzlOmYOFQtpTeMUdaPC2owldqlC2UWx

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开