
opengl
文章平均质量分 79
- birdguan -
这个作者很懒,什么都没留下…
展开
-
OpenGL_8 光照和键盘
开始前需要定义全局变量,其中与光照相关的全局变量为GLfloat LightAmbient[] = { 0.5f,0.5f,0.5f,1.0f };//环境光参数GLfloat LightDiffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };// 漫射光参数GLfloat LightPosition[] = { 0.0f, 0.0f, 2.0f, 1.0f };原创 2017-11-06 19:11:20 · 281 阅读 · 0 评论 -
OpenGL_5 旋转
OpenGL旋转语句主要使用的语句是glRotatef();该语句有三个参数,分别为旋转角度,绕x,y,z轴旋转的权重。注意点:每次使用完glRotatef()语句后必须使用glLoadIndentity();语句重置模型观察矩阵,因为若不重置,旋转或移动将与期望值不符。程序在开始前声明变量角度rtri和rquad。代码如下:int DrawGLScene(GLvoid){ g原创 2017-11-06 09:11:04 · 261 阅读 · 0 评论 -
OpenGL_4 颜色渲染
颜色渲染主要使用glColor3f()语句,设置好颜色后,以后所使用的所有绘图语句都将以当前设置的颜色进行绘图,如设置为红色,调用语句glColor(1.0f,0.0f,1.0f);再次调用glVertex3f()语句时所绘制的点都将是红色。如绘制三种颜色混合的三角形和纯红色的四边形的DrawGLScene()代码:int DrawGLScene(GLvoid){ glClear(GL原创 2017-11-06 08:52:11 · 695 阅读 · 0 评论 -
OpenGL_3 多边形
GL_TRIANGLES绘制三角形,GL_QUARS创建四边形。绘制过程在DrawGLScene()过程中。简述:首先使用glTranslatef()移动当前绘图点,然后在glBegin()和glEnd()之间绘制需要的多边形,如需要绘制三角形,则glBegin()中的参数为GL_TRIANGLES,随后在glEnd()之前使用glVertex3f()指定三个定点,顺序依次是上,左下,右下;若原创 2017-11-05 21:33:47 · 292 阅读 · 0 评论 -
OpenGL_2 OpenGL窗口
{CSDN:CODE:2600976}原创 2017-11-04 13:53:09 · 583 阅读 · 0 评论 -
学OpenGL编3D游戏_1 框架
在这部分,与NeHe不同的是,OpenGL框架被定义为类,与windows框架分开,其内容与NeHe教程第一章大同小异。错误记录:1、WinMain只能在windows桌面应用中使用,main在控制台程序中使用,网上有教程说在控制台应用中,将属性->编译器->系统->subsystem中_CONSOLE改为_WINDOWS,实测并不可行,需要重新新建一个工程;2、搭建框架时,OpenG原创 2017-11-12 10:49:01 · 3026 阅读 · 0 评论 -
OpenGL_1 绘制一个矩形
绘制一个矩形glutInit(&argc, argv);初始化GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);GLUT创建时使用何种类型的显示类型 GLUT_SINGLE单缓冲窗口 GLUT_DOUBLE双缓冲窗口(绘图缓冲区和显式缓冲区) GLUT_RGB颜色显示模式glut原创 2017-10-24 09:37:54 · 798 阅读 · 0 评论 -
OpenGL_10 3D空间中移动图像
在本节中,并没有新的知识,只是通过glTranslatef()和glRotatef()函数对星星纹理映射的矩形的位置变换以及glColor4ub()函数对星星颜色改变达到混合效果实现星星自转、绕z轴旋转和闪烁的效果,可以说是对之前知识的回顾。NEHEOpenGL例程的代码注释率达到90%以上,而51CTO翻译版的NEHE教程注释较少,上午又下载了NEHE例程源码,并将其英文注释全部翻译了一遍,原创 2017-11-08 11:08:16 · 411 阅读 · 0 评论 -
OpenGL_9 混合
混合即透明显示(透明的实现是将前面物体的颜色与后面物体的颜色混合),这里需要用到Alpha值,Alpha值为0为全透明,1为全不透明关键点:混合公式(R,G,B,Alpha) = (Rs * Sr + Rd * Dr, Gs * Sg + Gd * Dg, Bs * Sb + Bd * Db, As * Sa + Ad * Da通常,S+D = 1,故混色公式同时可写成(R,G,B,A原创 2017-11-06 23:31:22 · 222 阅读 · 0 评论 -
OpenGL_6 3D空间
3D空间由二维平面组成,如一个金字塔可由四个三角形绘制出(疑问:NEHE教程源码中并未在底边绘制GL_AUADS封底,是否需要?)绘制3D时,仅需在空间绘制不同的顶点坐标值的三角形即可。DrawDLScene()代码如下:int DrawGLScene(GLvoid){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清除屏原创 2017-11-06 09:55:34 · 200 阅读 · 0 评论