1. glViewport,glOrgho/gluPerspective,在投影矩阵GL_PROJECTION中使用,gluLookAt在视图矩阵GL_MODELVIEW中使用
2. gluPerspective的近景near必需大于0,不能等于0
3. 绘制组件的时候以(0,0,0)为基点,调用子函数的时候用glPushMatrix()和glPopMatrix()包装后再平移旋转,这样的方法使用起来比较方便
3. 影响显示效果的功能:颜色Color-最基本的属性;混合Blend-通过alpha通道,支持透明和半透明;帖图Texture-如果是32位需要透明效果的贴图需要开启Blend;光照Light-与Material属性配合使用,开启后颜色属性失效,最终颜色由光照颜色和材质反射颜色共同决定
4. 如果开启Blend并且要使用透明效果,即使已开启了深度检测,仍然要手工遵循由深到浅的顺序,否则透明效果会不正确
5. glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE):GL_MODULATE代表两个颜色相乘,用于贴图和光照混合,如果是GL_REPLACE则完全不受光照影响
6. 如果两个面重合,OpenGL不同的实现会有不同的处理,很有可能两个面按随机顺序绘制,这种情况能免则免
7. 曲面的法线是对顶点进行设置的,系统会自动根据顶点法线计算中间点法线达到平滑过渡的效果,所以顶点法线的计算因以实体来计算,如圆球的法线为球心到顶点的连线,而不是三个顶点的向量的外积,如果用外积,反而会另画出来的球不平滑。
8. 绘制长短轴为a,b的椭圆。顶点公式,x轴对应a,y轴对应b,顶点到圆心距离r,角度为q,r = a*b / sqrt((b*cos(q)^2 + (a * sin(q))^2), x = r*cos(q), y = r*sin(q);法线公式,法线角度n = rctg(- b / a * x / sqrt(a^2 - x^2)) + PI / 2,如果y < 0则n = -n,如果x = a,则n = 0,如果x = -a,则n = PI
8. glTranslate平移后法线不变,glRotate旋转后法线跟着旋转,两者都能保证法线正确,但是glScale缩放后法线不变,在x,y,z同比缩放时法线正确,如果不同比缩放,法线会错误。
9. windows窗口/全屏切换,如果把hWnd销毁/重建,材质信息会丢失,需要重新读取。可以采取SetWindowLong(hWnd, GWL_STYLE, WS_POPUP或者WS_OVERLAPPEDWINDOW)和SetWindowPos动态调整窗口大小和边框,通过无框窗口来模拟全屏效果。
相关推荐
OpenGL超级宝典 笔记16-18完整的代码,作为笔记16-18的补充。包括Camera_ra.cpp和Camera_ra.h和vec34_mat4.cpp和vec34_mat4.h和3d.cpp,共5个文件
【Visual C++】游戏开发笔记十九 DirectX与OpenGL的博弈.docx
OpenGL ES应用开发实践 指南 iOS卷 笔记1
。。。
Android 3D游戏开发技术宝典 OpenGL ES2.0学习。
这是我个人学习OpenGL的一个笔记。之前对这里的相关知识也是完全了解吧,可以说是从零开始。
SDL + OpenGL使用笔记 LFTK 是一个嵌入式GUI,为了开发方便,需要提供PC运行环境。我选择了SDL2+OpenGL+nanovg来实现底层的渲染,让LFTK可以运行在各个平台上。GLFW+OpenGL也是一个不错的选择,但是GLFW没有Android...
头孢吉注意:这个项目最初的目的是将 GUI 代码与我正在开发的游戏分离,但由于和其他一些在工作时变得明显的原因,最终选择与游戏引擎更紧密地集成。 这是我目前使用 CEF 的一个非常早期的版本,所以使用风险自负! ...
FirstOpenGlDemo。本文主要通过学习《OpenGL ES应用开发实践指南(Android卷)》一书所做笔记,加上自己的理解编写,涉及的代码均出自原书。
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...
优化的图形库包括定制的2D 图形库,3D 图形库基于OpenGL ES 1.0 (硬件加速可选) ; SQLite 用作结构化的数据存储 ; 多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,GIF...
博文的配套源码 《 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟》 ,文章地址为http://blog.csdn.net/zhmxy555/article/details/7555785, 如题,此为VC6.0版,另外还有VS2010版提供...
它采用符合地图样式,将其应用于符合,并使用OpenGL进行渲染。 入门 本自述文件供有兴趣为Android Mapbox Maps SDK做出贡献的开发人员使用。 请访问了解有关在Android应用程序中使用Maps SDK的一般信息和说明。 ...
目标是拥有一种可以在笔记本电脑上开发VR程序并使它们在头戴式显示器和身临其境的环境中同样出色地运行的东西,例如布朗大学的YURT。 MinVR SDK提供了这种功能,此处的BSG库将帮助您保持可接受的使用范围。 BSG...
AndEngine基于libGDX框架开发,使用OpenGL ES进行图形绘制,底层使用C++编写,通过JNI调用来实现,因此比较高效,功能强大。同时集成了Box2D物理引擎,因此能实现一些较为复杂的物理效果。在Rokon(另一个Android 2D游戏...
安卓高级应用开发——多媒体应用开发、OpenGL与3D开发、安卓网络应用、管理安卓系统桌面、安卓传感器应用、安卓GPS应用开发,文档使用自刘老师的课程笔记仅对老师的文字内容进行整理
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...
android学习笔记 android的开源project python related 12306 Python programs to practice or demonstrate skills. js related html5动画那本书 js实现的数据结构与算法 js编程风格,也有语法 js语法学习 js开源教程...