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

📄 tutorial_07.htm

📁 如果你相信它就好好学学吧,同样这里也只是个入门
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>		<font color="#ffffaa">// 创建 MipMapped 纹理</font>
		glBindTexture(GL_TEXTURE_2D, texture[2]);
		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); </pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">下面一行生成 mipmapped 纹理。我们使用三种颜色(红,绿,蓝)来生成一个2D纹理。TextureImage[0]-&gt;sizeX 
        是位图宽度,extureImage[0]-&gt;sizeY 是位图高度,GL_RGB意味着我们依次使用RGB色彩。GL_UNSIGNED_BYTE 
        意味着纹理数据的单位是字节。TextureImage[0]-&gt;data指向我们创建纹理所用的位图。 </td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3">

<pre>		gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]-&gt;sizeX, TextureImage[0]-&gt;sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]-&gt;data); 
	}
</pre>
</font>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">现在释放用来存放位图数据的内存。我们先查看位图数据是否存放在 TextureImage[0] 
        中,如果有,删掉。然后释放位图结构以确保内存被释放。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>	if (TextureImage[0])							<font color="#ffffaa">// 纹理是否存在</font>
	{
		if (TextureImage[0]-&gt;data)					<font color="#ffffaa">// 纹理图像是否存在</font>
		{
			free(TextureImage[0]-&gt;data);				<font color="#ffffaa">// 释放纹理图像占用的内存</font>
		}

		free(TextureImage[0]);						<font color="#ffffaa">// 释放图像结构</font>
	}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">最后我们返回 status 变量。如果一切OK,status 变量的值为TRUE。否则为FALSE。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>	return Status;								<font color="#ffffaa">// 返回 Status 变量</font>
}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">接着应该载入纹理并初始化OpenGL设置了。InitGL函数的第一行使用上面的代码载入纹理。创建纹理之后,我们调用<br>
        glEnable(GL_TEXTURE_2D)启用2D纹理映射。阴影模式设为平滑阴影( smooth shading )。背景色设为黑色,我们启用深度测试,然后我们启用优化透视计算。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">现在开始设置光源。下面下面一行设置环境光的发光量,光源light1开始发光。这一课的开始处我们我们将环境光的发光量存放在LightAmbient数组中。现在我们就使用此数组(半亮度环境光)。在int 
        InitGL(GLvoid)函数中添加下面的代码。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>	glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);				<font color="#ffffaa">// 设置环境光</font>
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">接下来我们设置漫射光的发光量。它存放在LightDiffuse数组中(全亮度白光)。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>	glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);				<font color="#ffffaa">// 设置漫射光</font>
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">然后设置光源的位置。位置存放在 LightPosition 数组中(正好位于木箱前面的中心,X-0.0f,Y-0.0f,Z方向移向观察者2个单位&lt;位于屏幕外面&gt;)。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_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_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>	glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);			<font color="#ffffaa">// 设置光源位置</font>
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_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_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">最后,我们启用一号光源。我们还没有启用GL_LIGHTING,所以您看不见任何光线。记住:只对光源进行设置、定位、甚至启用,光源都不会工作。除非我们启用GL_LIGHTING。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">

⌨️ 快捷键说明

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