(一)VC6.0写第一个OpenGL程序

GLUT代表OpenGL应用工具包(OpenGL Utility Toolkit),是一个与窗口系统无关的工具包。它作为AUX库的功能更强的替代品,用于隐藏不同窗口系统API的复杂性。GLUT的子程序的前缀使用”glut”。

OpenGl中的坐标系

image

OpenGl中的几何变换

在OpenGl中,无论2D还是3D都可以进行几何变换,实现原理就是调用函数生成变换矩阵:
| glMatrixMode(GL_MODEL_VIEW) | 选中矩阵为后续矩阵操作对象 |
| glTranslate(x,y,z) | 构造一个平移矩阵,和当前选中矩阵相乘 |
| glRotate(th_rad,vx,vy,vz) | 构造一个旋转矩阵,一参为旋转弧度 |
| glScale(x,y,z) | 构造一个缩放矩阵,和当前选中矩阵相乘 |
| glLoadIdentity() | 设置当前矩阵为单位矩阵 |
| glPushMatrix() | 将选中矩阵压栈 |
| glPopMatrix() | 将栈顶矩阵弹出设为选中矩阵 |

在Windows下安装glut库

首先要下载glut库,可从OpenGL的官网上下载:glut库
下载后解开压缩包,里面有五个文件:glut.h,glut.lib,glut32.lib,glut.dll,glut32.dll。
glut.h文件放到VC的\include\GL文件夹下,VC++6.0版本对应的文件夹是安装路径下VC98\Include\GL。
glut.lib,glut32.lib放到VC的lib文件夹下,VC++6.0版本对应的文件夹是安装路径下VC98\Lib,
glut.dll,glut32.dll,放到C:\WINDOWS\system32,如果是64位放到C:\WINDOWS\SysWOW64,这个如果报错请看
OpenGl的源程序,运行就提示,"计算机丢失 glut32.dll文件"
这样就可以在VC里使用glut库了。

简单示例

绘制一个立方体

#include <gl\glut.h>  
//6个面的绘制顺序,存储的是顶点的下标  
static const GLint quads[][4] = {  
    0, 2, 3, 1,  
    0, 4, 6, 2,  
    0, 1, 5, 4,  
    4, 5, 7, 6,  
    1, 3, 7, 5,  
    2, 6, 7, 3,  
};  
void draw_cube(GLfloat x,GLfloat y,GLfloat z){  
    //8个顶点  
    static const GLfloat vetexs[][3] = {  
         0.0,0.0,0.0,  
         x,0.0,0.0,  
         0.0,y,0.0,  
         x,y,0.0,  
         0.0,0.0,z,  
         x,0.0,z,  
         0.0,y,z,  
         x,y,z  
    };  
     glClear(GL_COLOR_BUFFER_BIT);  
     glFrontFace(GL_CCW);  
     glCullFace(GL_BACK);  
     glEnable(GL_CULL_FACE);  
     glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);  
     glRotated(15,1,0,0);  
     glRotated(15,0,1,0);  
     glTranslatef(-x/2,-y/2,-z/2);  //平移至中心  
    //画立方体  
    for(int i = 0;i<6;i++){  
        glBegin(GL_QUADS);  
                glVertex3f(vetexs[quads[i][0]][0],vetexs[quads[i][0]][1],vetexs[quads[i][0]][2]);  
                glVertex3f(vetexs[quads[i][1]][0],vetexs[quads[i][1]][1],vetexs[quads[i][1]][2]);  
                glVertex3f(vetexs[quads[i][2]][0],vetexs[quads[i][2]][1],vetexs[quads[i][2]][2]);  
                glVertex3f(vetexs[quads[i][3]][0],vetexs[quads[i][3]][1],vetexs[quads[i][3]][2]);  
        glEnd();  
    }  
}  
void mydisplay(){  
  
    draw_cube(1.0,0.2,0.8);  
    glFlush();  
}  
int main(int argc, char *argv[])  
{  
    glutInit(&argc, argv);  
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);  
    glutInitWindowPosition(100, 100);  
    glutInitWindowSize(600, 600);  
    glutCreateWindow("HelloOpenGL");  
    glutDisplayFunc(&mydisplay);  
    glutMainLoop();  
    return 0;  
}  

效果图.png

所用到的工具:
VC6.0
glut库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • openGL初学者(C++) 1. 配置openGL环境 第一步,选择一个编译环境 这里我选择Visual Stu...
    以虚名称之阅读 18,268评论 1 5
  • 第一步:下载GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Win...
    Bruce_Szh阅读 951评论 0 0
  • 更多内容可参考已解决freeglut配置安装,接下来处理Glew 和 GLTools 注:GLew中的GL目录下的...
    YBshone阅读 1,240评论 0 0
  • 连续下了一个星期的雨,终于停止了,最起码今天是这样的。虽然天气预报说今天是个太阳天,但是早上八九点还是有些清凉的。...
    纠偏人阅读 417评论 0 1
  • (图自网络,侵权必删) 一 小说类型:玄幻、言情 二 1.小说基调: 介于悲喜剧之间 (可能结局有点伤...
    小灯塔合伙人杨洋阅读 1,133评论 3 12