OpenGL学习笔记2017/8/29
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 begin 15 t:=t+1; //按一下就计数 16 display; //重绘 17 end; 18 begin 19 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入门学习