![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl学习笔记
文章平均质量分 55
budingningmeng
这个作者很懒,什么都没留下…
展开
-
变换坐标系的函数——glLoadIdentity()与glTranslatef()和glRotatef()
glLoadIdentity()将当前的用户坐标系的原点移到了屏幕中心:类似于一个复位操作1.X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。2.OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。3.中心左面的坐标值是负值,右面是正值。 移向屏幕顶端是正值,移向屏幕底端是负值。 移入屏幕深处是负值,移出屏幕则是正值。glTranslatef转载 2012-07-13 13:05:03 · 694 阅读 · 0 评论 -
GLYPHMETRICSFLOAT 结构参数含义
typedef struct _GLYPHMETRICSFLOAT { FLOAT gmfBlackBoxX; FLOAT gmfBlackBoxY; POINTFLOAT gmfptGlyphOrigin; FLOAT gmfCellIncX; FLOAT gmfCellIncY;} GLYPHMETRICSFLOAT,原创 2012-09-04 19:03:49 · 1532 阅读 · 0 评论 -
glut 函数说明
一、初始化void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库。对应main函数的形式应是:int main(int argc,char* argv[]); 这个函数从main函数获取其两个参数。void glutInitWindowSize(int width,int height);void glutInit转载 2012-08-25 08:58:12 · 795 阅读 · 0 评论 -
图像与图形字体实现的比较
图像是二维的字体显示,图形是三位的字体显示。两者都需要创建字体、删除字体、显示函数,在NEHE 中是用的BuildFont、KillFont、 glPrint。其中的区别在:1.图像创建字体中用的是wglUseFontBitmaps这个函数,而图形创建字体中用的是wglUseFontOutlines函数 2.在绘制图形中的调用也是不原创 2012-09-05 10:38:13 · 773 阅读 · 0 评论 -
error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol ___security_cookieerror LNK2001: unresolved external symbol @__security_check_cookie@4程序链接中出现这样的报错,按照微软的解决方案:http://support.microsoft.com/kb/894573/zh原创 2012-09-05 11:19:32 · 2912 阅读 · 0 评论 -
创建二次几何体的学习笔记
单独创建二次几何体并不是一件很难的事情,但是在一个工程里面把这些几何体利用变换的形式一起显示出来就没有那么容易了。其中就是可以在int DrawGLScene(GLvoid) 这个函数里面直接利用switch()对不同的几何体进行选择。以下是nehe教程里面的函数switch(object){case 0:glDrawCube(); //绘制立方体break;原创 2012-09-19 20:41:08 · 649 阅读 · 0 评论 -
unresolved external symbol __imp__timeGetTime@0
使用VC6++编译程序无错误,但是在build程序时出现一个错误,错误代码:error LNK2001: unresolved external symbol __imp__timeGetTime@0 导致这种错误是因为使用timeGetTime函数,没加入winmm.lib这个库文件。解决以上错误有2种方法方法一转载 2012-09-22 15:36:46 · 3837 阅读 · 3 评论 -
OpenGL编程指南---多边形正反面 剔除
OPENGL中采用的是简单的凸多边形,要求多边形的各边不能相交。 OPENGL中规定:如果多边形的顶点以逆时针顺序出现在屏幕上,则为“正面”。我们通过使用void glFrontFace(GLenum mode) 函数可以交换图形的正反面。默认情况下,mode是GL_CCW,即逆时针为正面;GL_CW顺时针为正面。 为了丢弃一些被OPENGL认为是背转载 2012-11-26 19:46:24 · 5669 阅读 · 0 评论 -
opengl 绘制圆柱体
glu中提供了一个绘制圆柱体的函数: void gluCylinder( GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks )使用方法是:GLUquadric *pObj; pObj = gluNe转载 2012-11-12 13:46:28 · 27046 阅读 · 2 评论 -
obj格式文件导入到opengl中 OBJLoader
.cpp代码/********************************************************* 3D model loader by gameloftyou use for obj model ***************************************************原创 2012-08-30 19:26:48 · 5478 阅读 · 2 评论 -
OPENGL 变换视图模型变换与部分透视变换
时间:8:19 2010-12-318:19 --- 9:00总结与计划[OPENGL 学习][ 视图和模型变换] 对变换进行的思考 模型变换 视图变换[ 投影变换] 透视投影 正投影 视景体裁剪[ 视口变换] 视口变换 变换深度坐标视图变换时间: 9:34转载 2012-08-19 09:04:28 · 1576 阅读 · 0 评论 -
VC++6.0运行OpenGL 出现错误Cannot open include file: 'GL/glut.h'是什么问题?
以我的安装目录为例: (1)“d:\Program Files\Microsoft Visual Studio\VC98\include\GL文件夹”。把解压得到的glut.h放到这个GL文件夹里。没有GL文件夹可以自己建一个,一般都有的。(2)“d:\Program Files\Microsoft Visual Studio\VC98\lib文件夹”。把解压得到的glut.lib和转载 2012-07-13 13:03:14 · 3897 阅读 · 0 评论 -
opengl渲染管线理论
OpenGL 渲染管线理论 这几天稍微看了一些关于GLSL的顶点着色以及片元着色的一些相关知识.目前来讲还有一个着色器则是Geometry_shader..我的显卡用不了这个功能..当然有点遗憾>_ 在看了一些之后,大概了解了一些关于OpenGL渲染管线的知识.看了这个之后对于OpenGL的学习我想应当是很有帮助.关于这么一篇的原文则是GLSL-LIGH转载 2012-07-25 19:52:11 · 699 阅读 · 0 评论 -
AUX_RGBImageRec auxRGBImageLoad 等函数意义
OpenGL可以把纹理映射到指定的图形的表面上。简单一点的,就是给平面映射纹理,比如一个四边形,一个长方体的6个面,都可以指定位图作为纹理映射到各个面上。关于将一个位图作为纹理映射到某个或者多个面上,可以学习Jeff Molofee的OpenGL系列教程。对于指定的多个纹理,要根据自己的需要映射到不同的面上,需要对位图创建一个数组,用来存储位图的名称,然后在初始化OpenGL的时候,可以读转载 2012-07-26 14:00:28 · 12076 阅读 · 2 评论 -
glBlendFunc();的使用
看MSDN: http://msdn.microsoft.com/en-us/library/ms537046(VS.85).aspx 大概就是这样:第一个参数指出源图元的alpha的取值计算方法,第二个参数指出目标处的alpha的计算方法。 ------ 我个人理解: 两个参数的取值都可以是如下常量之一: GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE转载 2012-07-26 14:18:59 · 4498 阅读 · 0 评论 -
天空盒
OPhone 3D开发之天空盒UI设计, 2010-09-25 14:44:08标签 : OPhone 3d在3D世界中,我们可以通过精细的模型来表现近处场景的细节,但对于远距离场景,比如天空、高山、日月星辰等这些“遥不可及”的对象来说,我们可以使用高质量贴图环绕组合成一个封闭的场景,给玩家以始终处在内部的感觉。在这种以贴图来渲染远景的方式中,最常用的技术是天空转载 2012-07-25 19:50:42 · 5416 阅读 · 0 评论 -
游戏引擎
游戏引擎(转) 几种多线程3D引擎架构的比较摘要: 原文地址:http://www.cppblog.com/flagship/archive/2009/03/25/77886.html首先我们得明确3D引擎使用多线程的目的所在:1、在CPU上进行的逻辑计算(比如骨骼动画粒子发射等)不影响渲染速度2、较差的GPU渲染速度的低下不影响逻辑速度 第一个目标已经很明确了,我来解释下需要转载 2012-07-25 19:56:58 · 1768 阅读 · 0 评论 -
opengl第十课 理解
昨天看了NeHe的教程的八、九、十章。最为激动人心的就是第十章,加载3D。我准备下次的时候,自己做一个3D的环境,然后通过左右转,上下转,前进,绝对移动(比如左右移动,不只是旋转,还有绝对的轴位移)。对于旋转,让我觉得头昏眼花,所以决定好好的理一下头绪,好好地转一下。相关代码段:1. 全局定义:float heading;float xp转载 2012-07-27 12:28:28 · 922 阅读 · 0 评论 -
虚拟键码
虚拟键码 对应值 对应键VK_LBUTTON1鼠标左键VK_RBUTTON2鼠标右键VK_CANCEL3CancelVK_MBUTTON4鼠标中键VK_XBUTTON1转载 2012-07-26 16:04:07 · 773 阅读 · 0 评论 -
ArcBall二维控制三维旋转
ArcBall二维控制三维旋转由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了。ArcBall是一种将二维鼠标位置的变化映射到三维物体旋转的方法,让用户通过很直观的方法控制物体旋转。网上相关方法还是不少的,包括:http://rainwarrior.thenoos.net/dragon/arcball.htmlhttp://nehe.gamedev.net/tu转载 2012-11-15 15:56:34 · 4257 阅读 · 1 评论