一步一步教你用OpenGL_ES编程.doc





《一步一步教你用OpenGL_ES编程.doc》由会员分享,可在线阅读,更多相关《一步一步教你用OpenGL_ES编程.doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一步一步教你用OpenGL ES编程(Step-by-step programming in OpenGL SE) OpenGL ES是针对手机、PDA和游戏主机等嵌入式设备制定的编程接口,是由OpenGL的不同版本演化而来,目前已有OpenGL ES1.x和OpenGL ES2.0,OpenGL ES2.0添加了对可编程管线的支持.OpenGL ES1.X又有OpenGL ES1.0和OpenGL ES1.1,前者支持定点实数(fixed)和浮点数(float),后者只支持定点数(fixed)库来自Vicent Mobile 3D Rendering Library 的ogles-bin-1
2、.0.0, 解压后拷贝include文件夹到Mobile的SDK下的Include文件夹下,拷贝bin文件夹下的debug和release到工程文件下的 debug和release下新建智能项目工程HelloOpenGL_Quad如下配置工程的DLL和LIB这里对opengles库使用的是静态引用,因此要在工程中设好对.lib的引用路径和附加库设置:初始化设备,OpenGL是具备平台无关性的,所谓的平台无关,只是为OpenGL提供了不同平台的不同接口,使其建立起opengl的显示环境. 这里用到的是EGL规范.那么先建立一个初始化设备函数BOOL InitOGLDevice(HWND hwnd
3、),参数是当前窗口句柄.获取显示输出设备接口,EGL就是我们进行设备初始化工作的关键API,因此这里用到的函数都是eglXXXXXX,获取显示接口函数包括 eglGetDisplay(NativeDisplayType native_display)和 eglGetCurrentDisplay(),前面一个是建立一个显示接口,后者是从当前的opengl环境返回一个opengl接口g_eglDisplay = eglGetDisplay( GetDC( hwnd ) );初始化显示设备,这是一个内部初始化的过程,可能为显示结构内部变量给初值eglInitialize( g_eglDisplay,
4、 &major, &minor )frame buffer属性定义,再使用eglChooseConfig找到最匹配这项属性列表的配置定义,并返回配置项,返回的配置被使用来建立表面和状态机,EGLint attrib_list = EGL_DEPTH_SIZE, 16, EGL_RED_SIZE, 5, EGL_GREEN_SIZE, 6, EGL_BLUE_SIZE, 5, EGL_NONE ;eglChooseConfig(g_eglDisplay, attrib_list, configs_list, num_config, &num_config)根据配置描述一个设备表面eglCreat
5、eWindowSurface( g_eglDisplay, configs_list0, hwnd, NULL );返回一个相关属性设置的状态机eglCreateContext( g_eglDisplay, configs_list0, EGL_NO_CONTEXT , attrib_list ); 建立Opengl当前环境eglMakeCurrent( g_eglDisplay, g_eglSurface, g_eglSurface, g_eglContext );至此一个完整可用的Opengl渲染平台就建立好了,事实上整个创建的概念与windows directe3D Mobile有些相似
6、.现在要建立渲染配置这句类似于d3dm device的clear函数 glClearColor(0.5f,0.5f,0.5f,1.0f);下面是对渲染的一系列配置,glDisable和glEnable被用来打开或关闭一些渲染的配置,比如光照,双面渲染,贴图支持,缓冲支持 glDisable(GL_LIGHTING); glShadeModel(GL_SMOOTH); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glEnable(GL_DEPTH_TEST); glDepthFunc( GL_LEQUAL ); glClearDepthf( 5.0f
7、 ); glEnable(GL_TEXTURE_2D);这是对贴图渲染的配置,规定贴图的算法 glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一步一步 OpenGL_ES 编程

限制150内