<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0055)http://www.owlei.com/DancingWind/Course/Tutorial_01.htm -->
<!-- 这篇文章由Dancingwind翻译,作者的联系方式zhouwei02@mails.tsinghua.edu.cn --><HTML><HEAD><TITLE>NeHe OpenGL教程第一课,DancingWind翻译</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>A:link {
COLOR: #ccaaff; TEXT-DECORATION: none
}
A:visited {
COLOR: #ccaaff; TEXT-DECORATION: none
}
A:active {
COLOR: #ccaaff; TEXT-DECORATION: none
}
A:hover {
COLOR: #ffccaa; TEXT-DECORATION: none
}
</STYLE>
<META content="MSHTML 6.00.2900.3157" name=GENERATOR></HEAD>
<BODY text=#ffffff bgColor=#000000><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=326 height=130><IMG height=130 src="images/logo.png"
width=326></TD>
<TD vAlign=center align=middle width="75%"><FONT color=#ffccaa
size=+3><B><I>第01课</I></B></FONT></TD></TR></TBODY></TABLE><!-- 上边框-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/tl.jpg" width=28></TD>
<TD width="100%"><IMG height=28 src="images/tc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/tr.gif"
width=28></TD></TR></TBODY></TABLE><!-- 中部-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR><!-- 中部左边框-->
<TD background=images/l.gif><IMG height=28
src="images/l.gif" width=28></TD><!-- 中部文字部分-->
<TD vAlign=top width="100%">
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD width="32%"><IMG height=180 src="images/lesson01.jpg"
width=240></TD>
<TD width="68%">
<P><FONT class=head>创建一个OpenGL窗口:</FONT></P>
<P><FONT
size=3>在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.<BR><BR>理解OpenGL如何工作非常重要,你可以在教程的末尾下载源程序,但我强烈建议你至少读一遍教程,然后再开始编程.
</FONT></P></TD></TR></TBODY></TABLE></TD><!-- 中部右边框-->
<TD background=images/r.gif><IMG height=28
src="images/r.gif" width=28></TD></TR></TBODY></TABLE><!-- 下边框-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/bl.gif" width=28></TD>
<TD width="100%"><IMG height=28 src="images/bc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/br.gif"
width=28></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/tl.png" width=28></TD>
<TD width="100%"><IMG height=28 src="images/tc.png"
width="100%"></TD>
<TD><IMG height=28 src="images/tr.png"
width=28></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background=images/l.png><IMG
src="images/l.png"></TD>
<TD vAlign=top width="100%">欢迎来到我的 OpenGL教程。我是个对 OpenGL充满激情的普通男孩! 我第一次听说
OpenGL是 3Dfx 发布 Voodoo1 卡的 OpenGL硬件加速驱动的时候。我立刻意识到
OpenGL是那种必须学习的东西。不幸的是当时很难从书本或网络上找到关于 OpenGL的讯息。我花了 N 个 小时来调试自己书写的代码,甚至在
IRC和 EMail 上花更多的时间来恳求别人帮忙。但我发现那 些懂得 OpenGL 高手们保留了他们的精华,对共享知识也不感兴趣。实在让人灰心 !
<BR>我创建这个网站的目的是为了帮助那些对
OpenGL有兴趣却又需要帮助的人。在我的每个教程中,我都会尽可能详细的来解释每一行代码的作用。我会努力让我的代码更简单(您无需学习
MFC代码)!就算您是个VC 、OPENGL的绝对新手也应该可以读通代码,并清楚的知道发生了什么。我的站点只是许多提供
OpenGL教程的站点中的一个。如果您是 OpenGL的高级程序员的话,我的站点可能太简单了,但如果您才开始的话,我想这个站点会教会您许多东西!
<P>教程的这一节在2000年一月彻底重写了一遍。将会教您如何设置一个 OpenGL窗口。它可以只是一个窗口或是全屏幕的、可以任意
大小、任意色彩深度。此处的代码很稳定且很强大,您可以在您所有的OpenGL项目中使用。我所有的教程都将基于此节的代码!所有的错误都有被报告。所以应该没有内存泄漏,代码也很容易阅读和修改。感谢Fredric
Echols对代码所做的修改!</P>
<P>现在就让我们直接从代码开始吧。第一件事是打开VC然后创建一个新工程。如果您不知道如何创建的话,您也许不该学习OpenGL,而应该先学学VC。某些版本的VC需要将
bool 改成 BOOL , true 改成 TRUE , false 改成 FALSE ,请自行修改。</P>
<P>在您创建一个新的Win32程序(不是console控制台程序)后,您还需要链接OpenGL库文件。在VC中操作如下:Project->
Settings,然后单击LINK标签。在"Object/Library Modules"选项中的开始处(在 kernel32.lib 前)增加
OpenGL32.lib GLu32.lib 和 GLaux.lib 后单击OK按钮。现在可以开始写您的OpenGL程序了。</P>
<P>代码的前4行包括了我们使用的每个库文件的头文件。如下所示:<BR></P></TD>
<TD background=images/r.gif><IMG height=28
src="images/r.gif" width=28></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/bl.gif" width=28></TD>
<TD width="100%"><IMG height=28 src="images/bc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/br.gif"
width=28></TD></TR></TBODY></TABLE><FONT color=#aaffaa size=3><PRE>#include <windows.h><FONT color=#ffffaa> // Windows的头文件</FONT>
#include <glew.h> <FONT color=#ffffaa>// 包含最新的gl.h,glu.h库</FONT>
#include <glut.h> <FONT color=#ffffaa>// 包含OpenGL实用库</FONT></PRE></FONT>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/tl.jpg" width=28></TD>
<TD width="100%"><IMG height=28 src="images/tc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/tr.gif"
width=28></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background=images/l.gif><IMG height=28
src="images/l.gif" width=28></TD>
<TD vAlign=top
width="100%">接下来您需要设置您计划在您的程序中使用的所有变量。本节中的例程将创建一个空的OpenGL窗口,因此我们暂时还无需设置大堆的变量。余下需要设置的变量不多,但十分重要。您将会在您以后所写的每一个OpenGL程序中用到它们。<BR>第一行设置的变量是Rendering
Context(着色描述表)。每一个OpenGL都被连接到一个着色描述表上。着色描述表将所有的OpenGL调用命令连接到Device
Context(设备描述表)上。我将OpenGL的着色描述表定义为 hRC
。要让您的程序能够绘制窗口的话,还需要创建一个设备描述表,也就是第二行的内容。Windows的设备描述表被定义为 hDC
。DC将窗口连接到GDI(Graphics Device Interface图形设备接口)。而RC将OpenGL连接到DC。第三行的变量 hWnd
将保存由Windows给我们的窗口指派的句柄。最后,第四行为我们的程序创建了一个Instance(实例)。</TD>
<TD background=images/r.gif><IMG height=28
src="images/r.gif" width=28></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/bl.gif" width=28></TD>
<TD width="100%"><IMG height=28 src="images/bc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/br.gif"
width=28></TD></TR></TBODY></TABLE><FONT color=#aaffaa size=3><PRE>HGLRC hRC=NULL; <FONT color=#ffffaa>// 窗口着色描述表句柄</FONT>
HDC hDC=NULL; <FONT color=#ffffaa>// OpenGL渲染描述表句柄</FONT>
HWND hWnd=NULL; <FONT color=#ffffaa>// 保存我们的窗口句柄</FONT>
HINSTANCE hInstance; <FONT color=#ffffaa>// 保存程序的实例</FONT>
</PRE></FONT>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=28 src="images/tl.jpg" width=28></TD>
<TD width="100%"><IMG height=28 src="images/tc.gif"
width="100%"></TD>
<TD><IMG height=28 src="images/tr.gif"
width
tughluq
- 粉丝: 41
- 资源: 24
最新资源
- 基于MATLAB的运动车辆跟踪检测系统源代码+GUI界面(高分项目)
- Rhino(犀牛)插件ladybug-tools-1-8-0
- 基于plc的污水处理,组态王动画仿真,带PLC源代码,组态王源代码,图纸,IO地址分配
- C#上位机开发源码 上位机项目源代码 采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理、sqlite数据库、实时曲线、历史曲线、历史报表、导出Excel、主界面布局可调带记忆等功能
- cruise软件模型,混动仿真模型,IMMD架构混联混动仿真模型,Cruise混动仿真模型,混联混动汽车动力性经济性仿真 关于模型 1.本模型是基于IMMD架构搭载的混联混动仿真模型,关于IMMD架
- 基于Springboot和Vue的游戏交易系统源码 游戏交易系统代码(高分项目源码)
- 基于Springboot和Vue的游戏交易系统源码 游戏交易系统代码(高分项目源码)
- 基于Springboot和Vue的游戏交易系统源码 游戏交易系统代码(高分项目源码)
- python语言dqljkssp爬虫程序代码XQZQ.txt
- python语言dqljkssp爬虫程序代码QZQ.txt
- web网页,三次平时作业+大作业+Acwing笔记
- 关键词:微网 优化调度 深度强化学习 A3C 需求响应 编程语言:python平台 主题:基于改进A3C算法的微网优化调度与需求响应管理 内容简介: 代码主要做的是基于深度强化学习的微网
- MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧电厂优化调度 关键词:碳捕集 电厂 需求响应 优化调度 电转气协同调度 参考文档:《计及电转气协同的含碳捕集与垃圾焚烧电厂优化调度》完全复现
- 房屋租赁管理系统 java项目ssm框架开发,全套视频教程
- 基于opencv-dnn和一些超过330 FPS的npu
- 基于yolov8行人检测源码+模型.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈