⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tutorial_15.htm

📁 如果你相信它就好好学学吧,同样这里也只是个入门
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><!-- 这篇文章由Dancingwind翻译,作者的联系方式zhouwei02@mails.tsinghua.edu.cn --><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="Microsoft FrontPage 3.0" name="GENERATOR"></head><body bgcolor="#000000" text="#ffffff">
<center><br>
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td height="130" width="326"><img src="Tutorial_15_files/logo.png" height="130" width="326"></td>
      <td align="center" valign="center" width="75%"><div align="center"><font color="#ffccaa" size="+3"><b><i>第15课</i></b></font></div></td>
  </tr>
</tbody>
</table>
<!-- 上边框-->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<!-- 中部-->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
  	<!-- 中部左边框-->
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
	<!-- 中部文字部分-->
    <td valign="top" width="100%">
	<table border="0" width="100%">
          <tbody><tr>
              <td width="29%"><img src="Tutorial_15_files/lesson15.jpg" height="180" width="240"></td>
              <td width="71%"><p><font class="head">图形字体的纹理映射:</font></p>
                <p><font size="3">这一课,我们将在上一课的基础上创建带有纹理的字体,它真的很简单。</font></p></td>
          </tr>
     </tbody></table>
      </td>
	<!-- 中部右边框-->
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<!-- 下边框-->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">在发布了前两篇关于位图字体和轮廓字体的教程以后,我收到很多邮件,很多读者都想知道如何才能给字体赋予纹理贴图。你可以使用自动纹理坐标生成器。它会为字体上的每一个多边形生成纹理坐标。
        <p>一
个小注释,这段代码是专门针对Windows写的,它使用了Windows的wgl函数来创建字体,显然,Apple机系统有agl,X系统有glx来支
持做同样事情的,不幸的是,我不能保证这些代码也是容易使用的。如果哪位有能在屏幕上显示文字且独立于平台的代码,请告诉我,我将重写一个有关字体的教
程。</p>
        <p>我们将使用第14课的代码来创作纹理字体的演示。如果程序中哪部分的代码有变化,我会重写那部分的所有代码以便看出我做的改动。<br>
        </p></td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> </font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">我们还要添加一个叫做texture[]的整型变量。它用于保存纹理。后面3行是第14课中的代码,本课不做改动。<br></td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> </font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">下面的部分做了一些小改动。我打算在这课使用wingdings字体来显示一个海盗旗(骷髅头和十字骨头)的标志。如果你想显示文字的话,就不用改动第14课中的代码了,也可以选择另一种字体。
        <p>有
些人想知道如何使用wingdings字体,这也是我不用标准字体的一个原因。wingdings是一种符号字体,使用它时需要做一些改动。告诉
Windows使用wingdings字体并不太简单。如果你把字体的名字改为wingdings,你会注意到字体其实并没有选到。你必须告诉
Windows这种字体是一种符号字体而不是一种标准字符字体。后面会继续解释。<br>
        </p></td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
</font><pre><font color="#aaffaa" size="3">GLvoid BuildFont(GLvoid)					<font color="#ffffaa">	// 创建位图字体</font>
{
	GLYPHMETRICSFLOAT	gmf[256];					<font color="#ffffaa">// 记录256个字符的信息</font>
	HFONT	font;						<font color="#ffffaa">// 字体句柄</font>

	base = glGenLists(256);					<font color="#ffffaa">// 创建256个显示列表</font>
	font = CreateFont(	-12,				<font color="#ffffaa">	// 字体高度</font>
				0,				<font color="#ffffaa">// 字体宽度</font>
				0,				<font color="#ffffaa">// 字体的旋转角度 Angle Of Escapement</font>
				0,				<font color="#ffffaa">// 字体底线的旋转角度Orientation Angle</font>
				FW_BOLD,				<font color="#ffffaa">// 字体的重量</font>
				FALSE,				<font color="#ffffaa">// 是否使用斜体</font>
				FALSE,				<font color="#ffffaa">// 是否使用下划线</font>
				FALSE,				<font color="#ffffaa">// 是否使用删除线</font>
</font></pre>
 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">这
就是有魔力的那一行!不使用第14课中的ANSI_CHARSET,我们将使用SYMBOL_CHARSET。这会告诉Windows我们创建的字体并不
是由标准字符组成的典型字体。所谓符号字体通常是由一些小图片(符号)组成的。如果你忘了改变这行,wingdings,webdings以及你想用的其
它符号字体就不会工作。<br></td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				SYMBOL_CHARSET,			<font color="#ffffaa">// 设置字符集</font>
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">下面几行没有变化。<br></td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
</font><pre><font color="#aaffaa" size="3">				OUT_TT_PRECIS,			<font color="#ffffaa">// 输出精度</font>
				CLIP_DEFAULT_PRECIS,		<font color="#ffffaa">// 裁剪精度</font>
				ANTIALIASED_QUALITY,		<font color="#ffffaa">// 输出质量</font>
				FF_DONTCARE|DEFAULT_PITCH,	<font color="#ffffaa">	// Family And Pitch</font>
</font></pre>
 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_15_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_15_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_15_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_15_files/l.gif"><img src="Tutorial_15_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">既然我们已经选择了符号字符集标识符,我们就可以选择wingdings字体了</td>
    <td background="Tutorial_15_files/r.gif"><img src="Tutorial_15_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -