博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenGL学习笔记2017/8/29
阅读量:4908 次
发布时间:2019-06-11

本文共 2213 字,大约阅读时间需要 7 分钟。

OpenGL学习日志:

感谢doing5552 的OpenGL入门学习:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html

相信有部分人还在使用pascal学习OpenGL(像我一样)说不定也有人经常会遇到莫名其妙的编译错误(即使只是一个模板)

经过十个多小时的研究,我终于找到了OpenGL的使用方法

首先,在百度上(也可以是别的搜索引擎)上找到叫做glutdlls37beta的压缩包,下载解压后全部放入bin->i386-win32下

接下来给出OpenGL框架:

1 uses gl,glu,glut; 2 procedure display;cdecl; 3 begin 4   glclear(GL_COLOR_BUFFER_BIT); 5   //这里写绘图语句 6   glflush(); 7 end; 8 begin 9   glutinit(@argc,argv);10   glutinitdisplaymode(glut_rgb or glut_single);   //rgb颜色和单色位图11   glutinitwindowposition(100,100);12   glutinitwindowsize(400,400);    //窗口大小13   glutcreatewindow('zcy');14   glutdisplayfunc(@display);      //调用(最好不要带参数,如需要最好使用全局变量)15   glutmainloop;16 end.

相信OpenGL最简单的一个例子就是画一个立体的茶壶了吧?

1 uses gl,glu,glut; 2 var t:real; 3 procedure display;cdecl; 4 begin 5   glclear(gl_color_buffer_bit);  //设置清屏颜色 6   glmatrixmode(gl_modelview); 7   glloadidentity; 8   glrotatef(t,1,1,1);      //旋转角度 9   glcolor3f(255,0,0);      //茶壶颜色10   glutwireteapot(0.5);    //画茶壶并设置茶壶大小11   glflush;12 end;13 procedure keyboard(key:byte;x,y:longint);cdecl;14 begin15   t:=t+1;             //按一下就计数16   display;            //重绘17 end;18 begin19   glutinit(@argc,argv);20   glutinitdisplaymode(glut_rgb or glut_single);21   glutinitwindowposition(100,100);22   glutinitwindowsize(400,400);23   glutcreatewindow('zcy');24   glutdisplayfunc(@display);25   glutkeyboardfunc(@keyboard);26   glutmainloop;27 end.

当然不只可以画茶壶,还可以画其他的几何体

详细请参考https://wenku.baidu.com/view/199d5b1a59eef8c75ebfb300.html的23页至25页

颜色的rgb数值也请参考以上网站的第12页(注意乘上255)

接下来给出http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html的第一个例子的pascal代码:

1 uses gl,glu,glut; 2 procedure mydisplay;cdecl;    //注意!要写cdecl!!!(虽然我也不知道为什么,反正要写上) 3 begin 4   glclear(gl_color_buffer_bit); 5   glrectf(-0.5,-0.5,0.5,0.5); 6   glflush; 7 end; 8 begin 9   glutinit(@argc,argv);10   glutinitdisplaymode(glut_rgb or glut_single);11   glutinitwindowposition(100,100);12   glutinitwindowsize(400,400);13   glutcreatewindow('zcy');14   glutdisplayfunc(@mydisplay);15   glutmainloop;16 end.

这一篇就写到这里,有兴趣的可以自己研究http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html,最后再次感谢doing5552的OpenGL入门学习

转载于:https://www.cnblogs.com/zhuchengyang/p/7446640.html

你可能感兴趣的文章
15-成绩2
查看>>
linux内核模块编程
查看>>
fiddler 抓取 安卓模拟器 https包
查看>>
Python-集合
查看>>
spring5 + hibernate5(redisson二级缓存) + JPA + JTA + ActiveMQ(JMS)
查看>>
20175204 张湲祯 2018-2019-2《Java程序设计》
查看>>
C# DataTable 详解
查看>>
很6666的关于jsonp的讲解 http://kb.cnblogs.com/page/139725/
查看>>
python学习-7 条件语句 while循环 + 练习题
查看>>
自己总结的keepalived的配置流程以及注意事项
查看>>
有关Java中数组和反射的使用
查看>>
连载《一个程序猿的生命周期》-7.毕业的十字路口
查看>>
YTU 2552: 好好学习天天向上
查看>>
数据库中where与having区别
查看>>
BUAA-OO 前三次作业“表达式求导" 总结与思考
查看>>
fio
查看>>
通过Navicat远程连接MySQL
查看>>
django
查看>>
通过分区(Partition)提升MySQL性能
查看>>
JAVA.exe进程
查看>>