<!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
roadblossom
- 粉丝: 11
- 资源: 113
最新资源
- 毕业设计php-vue衡水游泳馆管理系统源码(源代码+全套毕业文档).zip
- matlab:基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测 短期功率预测 - 基于变分模态分解VMD对特征数据进行分解,将子序列输入后续模型 - 用白鲸优化算法BWO优化KELM模型的核参
- Python毕业设计-基于卷积神经网络人脸识别驾驶员疲劳检测与预警系统设计源码+数据集(高分毕设)
- 扫描件_丙方岗位实习法定监护人(或家长)知情同意(2).pdf
- 永磁同步电机非线性磁链观测器-源代码 matlab模型simulink 零速闭环启动效果好,快速收敛, 低速效果好,扭力大,优于VESC 基于改进Ortega观测器的内置式永磁同步电机无位置控制
- 尼曼半导体第四版 全部答案
- 基于1D-GAN生成对抗网络的数据生成方法-Matlab代码 利用机器学习中的经典数据集iris数据集:该数据集有3类,每类50个样本,每个样本4个特征,共150个样本*4个特征 利用GAN生成一些
- 价值600元的子恩域名授权系统2.0全解无加密无授权版 带加密教程 可查询正版
- 2025年节假日工作日可执行.sql文件
- abaqus晶体塑性有限元分析 晶体塑性黄永刚 晶体塑性有限元 粘塑性自洽晶体塑性 梯度 损伤分析 相场方法 GTN模型及修正 本构模型的二次开发 python fortran 的编
- 2025年节假日工作日.xls文件
- 上海兴杨禾科技有限公司-杨禾插件安装包
- 电容剪脚折弯成型机(sw18可编辑+工程图+bom)全套技术资料100%好用.zip
- PCS双向储能变流器Buck-Boost闭环控制仿真复现 复现参考文献:《储能电站变流器设计与仿真研究-尹世界》 三相PWM变流器控制:采用电压外环、电流内环双闭环PI控制,电压环稳定直流测电容电
- TESSY测试教程(全)
- 两级式三相光伏并网发电系统simulink仿真有说明 1两篇参考文献【结合仿真学习】: (1)参考文献1: 包含详细光伏并网系统建模、参数设计、控制策略及框图、电压外环电流内环参数整定可以
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈