扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:谢青、姜玥 来源:yesky 2007年10月15日
关键字:
Dim pfd As PIXELFORMATDESCRIPTOR |
.描述像素格式
pfd.nSize = Len(pfd)--结构大小 pfd.nVersion = 1--版本号 pfd.dwFlags = PFD_SUPPORT_OPENGL Or--支持OpenGL PFD_DRAW_TO_WINDOW Or --绘制到Windows PFD_DOUBLEBUFFER Or --支持双缓冲区 PFD_TYPE_RGBA--RGBA颜色模式 pfd.iPixelType = PFD_TYPE_RGBA--像素格式类型 pfd.cColorBits = 16--所需的颜色索引位数 pfd.cDepthBits = 16--所需的深度缓冲区位数 pfd.iLayerType = PFD_MAIN_PLANE--主层类型 l 为设备描述表得到最匹配的像素格式,确定pfd结构是否存在 PixelFormat = ChoosePixelFormat(hdc, pfd) If PixelFormat = 0 Then MsgBox "设备描述表支持的像素格式" & vbCrLf & vbCrLf & _ "与给定像素格式不匹配!", vbCritical, "错误" End End If |
.设置设备描述表的像素格式,把指定的像素格式赋给指定的设备
spf = SetPixelFormat(hdc, PixelFormat, pfd) If spf = False Then MsgBox "设置设备描述表像素格式失败!", vbInformation, "失败" End End If |
3) 创建绘图描述表
创建绘图描述表
hGLRC = wglCreateContext(hdc) |
使之成为当前绘图描述表
wglMakeCurrent hdc, hGLRC |
4) 设置绘图环境
允许深度比较
glEnable GL_DEPTH_TEST |
顶点逆时针方向定义的多边形为前面
glFrontFace GL_CCW |
设置绘图背景色
glClearColor 0, 0, 0, 1 |
5) 定义光照和材质
打开光照,放置一个光源,定义光照模型
glEnable GL_LIGHTING glEnable GL_LIGHT0 glLightModelf GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE |
设置光源位置
Dim LightPos(3) As GLfloat LightPos(0) = 1: LightPos(1) = 1: LightPos(2) = 1: LightPos(3) = 0 glLightfv GL_LIGHT0, GL_POSITION, LightPos(0) |
设置环境光
Dim Light_Ambient(3) As GLfloat Light_Ambient(0) = 0.7: Light_Ambient(1) = 0.7 Light_Ambient(2) = 0.7: Light_Ambient(3) = 1 glLightfv GL_LIGHT0, GL_AMBIENT, Light_Ambient(0) |
设置漫射光
Dim Light_Diffuse(3) As Glfloat Light_Diffuse(0) = 0.6: Light_Diffuse(1) = 0.6 Light_Diffuse(2) = 0.6: Light_Diffuse(3) = 1 glLightfv GL_LIGHT0, GL_DIFFUSE, Light_Diffuse(0) |
设置镜面光
Dim Light_Specular(3) As Glfloat Light_Specular(0) = 1: Light_Specular(1) = 1 Light_Specular(2) = 1: Light_Specular(3) = 1 glLightfv GL_LIGHT0, GL_SPECULAR, Light_Specular(0) |
设置材质属性
设置模型镜面光反射率属性
Dim SpecRef(3) As GLfloat SpecRef(0) = 0.1: SpecRef(1) = 0.1 SpecRef(2) = 0.1: SpecRef(3) = 1 glMaterialfv GL_FRONT_AND_BACK, GL_SPECULAR, SpecRef(0) |
设置材质镜面指数,它确定镜面光斑的大小和聚焦程度。取值1-128,该值越大,表面光泽越明显
glMateriali GL_FRONT_AND_BACK, GL_SHININESS, 128 |
使用颜色跟踪法,设置模型前后面环境反射率和漫射反射率属性
glEnable GL_COLOR_MATERIAL glColorMaterial GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者