怎样开始学习OpenGL

  怎样开始学习OpenGL
wingser 2004.12.6 wujiayi74@citiz.net

 

什么是OpenGL:
OpenGL(“Open Graphics Library”)是图形硬件的软件接口。OpenGL包括大约250个不同的函数,程序员可以使用这些函数设定要绘制的物体和操作,来制作交互的三维应用程序。

OpenGL是专业图形处理,科学计算等高端应用领域的标准图形库。它的主要竞争对手是微软的Direct3D。OpenGL曾长期处于技术上的领先地位,但近年来Direct3D也迎头赶上。目前这两种图形API在性能上可说是旗鼓相当。不过OpenGL支持众多的操作系统,而Direct3D只在Windows平台上可用。因此OpenGL仍然广受瞩目。

怎样开始学习OpenGL:
你可以在OpenGL的官方网站
http://www.OpenGL.org的Documentation中下载到官方教程和例子程序:
The OpenGL Programming Guide,这就是著名的red book(“红皮书”)

如果你英语不好,那么我推荐你阅读:
《OpenGL超级宝典》是一本相当不错的中文教程。可以在
http://www.vrforum.cn/forumdisplay.php?fid=29找到它的例子代码
《OpenGL编程权威指南》他是red book的中文译本,它的例子也就是red book的例子。

*Nate Robin的例子对你理解OpenGL很有帮助。http://www.gamedev.net/reference/articles/article839.asp
*The OpenGL Reference Manual(blue book)并不是一本入门教材,不适合初学者。
*NeHe的例子并不适合初学者,尤其是没有win32基础,建议有一定基础以后再学习。
http://nehe.gamedev.net


怎样安装GLUT库:
OpenGL的例子大都需要用到OpenGL应用工具包:GLUT库,下面讲讲怎样安装它

Visual C++用户:
1。下载GLUT库:
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2。将压缩包内的glut.h放到.../Microsoft Visual Studio/VC98/Include/GL目录下
   将glut32.lib放到.../Microsoft Visual Studio/VC98/Lib目录下
   将glut32.dll放到X:/windows/systom32目录下(win98用户放到X:/windows/systom目录下)
3。建立一个控制台工程Win32 Console Application,加入hello.c并运行:
#include <GL/glut.h>

void display(void)
{
   glClear (GL_COLOR_BUFFER_BIT);/* clear all pixels  */
   glColor3f (1.0, 1.0, 1.0);
   glBegin(GL_POLYGON);/* draw white polygon with corners at(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)*/
      glVertex3f (0.25, 0.25, 0.0);
      glVertex3f (0.75, 0.25, 0.0);
      glVertex3f (0.75, 0.75, 0.0);
      glVertex3f (0.25, 0.75, 0.0);
   glEnd();
   glFlush ();/* start processing buffered OpenGL routines  */
}

void init (void) 
{
   glClearColor (0.0, 0.0, 0.0, 0.0);/* select clearing color  */
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);/* initialize viewing values  */
}

int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);/*Declare initial display mode(single buffer and RGBA).*/
   glutInitWindowSize (250, 250); /*Declare initial window size.*/
   glutInitWindowPosition (100, 100);/*Declare initial window position.*/
   glutCreateWindow ("hello");/*Open window with "hello"in its title bar.*/  
   init ();/*Call initialization routines.*/
   glutDisplayFunc(display); /*Register callback function to display graphics.*/
   glutMainLoop();/*Enter main loop and process events.*/
   return 0;   /* ANSI C requires main to return int. */
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值