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

📄 tutorial_44.htm

📁 如果你相信它就好好学学吧,同样这里也只是个入门
💻 HTM
📖 第 1 页 / 共 3 页
字号:
  pt = vLightSourceToIntersect * (Length * 0.175f); <br>
  pt += m_LightSourcePos; <br>
  RenderHalo(0.9f, 0.2f, 0.1f, 0.5f, pt, 0.83f); </p>
<p> <span class="theme">//绘制到光晕结束位置的0.285处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.285f); <br>
  pt += m_LightSourcePos; <br>
  RenderHalo(0.7f, 0.7f, 0.4f, 0.5f, pt, 1.6f); <br>
  <br>
  <span class="theme">//绘制到光晕结束位置的0.2755处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.2755f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.9f, 0.9f, 0.2f, 0.5f, pt, 0.8f); </p>
<p> <span class="theme">//绘制到光晕结束位置的0.4755处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.4775f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.93f, 0.82f, 0.73f, 0.5f, pt, 1.0f); <br>
  <br>
  <span class="theme">//绘制到光晕结束位置的0.49处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.49f); <br>
  pt += m_LightSourcePos; <br>
  RenderHalo(0.7f, 0.6f, 0.5f, 0.5f, pt, 1.4f); </p>
<p> <span class="theme">//绘制到光晕结束位置的0.65处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.65f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.7f, 0.8f, 0.3f, 0.5f, pt, 1.8f); <br>
  <br>
  <span class="theme">//绘制到光晕结束位置的0.63处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.63f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.4f, 0.3f, 0.2f, 0.5f, pt, 1.4f); </p>
<p> <span class="theme">//绘制到光晕结束位置的0.8处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.8f); <br>
  pt += m_LightSourcePos; <br>
  RenderHalo(0.7f, 0.5f, 0.5f, 0.5f, pt, 1.4f); <br>
  <br>
  <span class="theme">//绘制到光晕结束位置的0.7825处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.7825f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.8f, 0.5f, 0.1f, 0.5f, pt, 0.6f); </p>
<p> <span class="theme">//绘制到光晕结束位置的1.0处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 1.0f); <br>
  pt += m_LightSourcePos; <br>
  RenderHalo(0.5f, 0.5f, 0.7f, 0.5f, pt, 1.7f); <br>
  <br>
  <span class="theme">//绘制到光晕结束位置的0.975处的光晕</span><br>
  pt = vLightSourceToIntersect * (Length * 0.975f); <br>
  pt += m_LightSourcePos; <br>
  RenderGlow(0.4f, 0.1f, 0.9f, 0.5f, pt, 2.0f); </p>
<p> }<br>
  glDisable(GL_BLEND ); <br>
  glEnable(GL_DEPTH_TEST); <br>
  glDisable(GL_TEXTURE_2D); <br>
  }<br>
  }</p>
<p></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="tl"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="tc" width="100%"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="100%"></td>
    <td class="tr"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="l"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
      <td class="back3" valign="top" width="100%">好了,下面的函数用来绘制四种不同的光晕</td>
    <td class="r"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="bl"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="bc" width="100%"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="br"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<pre><span class="theme">//绘制Halo形的光晕</span><br>void glCamera::RenderHalo(GLfloat r, GLfloat g, GLfloat b, GLfloat a, glPoint p, GLfloat scale)<br>{<br>	glPoint q[4];<br>	<br>	q[0].x = (p.x - scale);											<br>	q[0].y = (p.y - scale);											<br>		<br>	q[1].x = (p.x - scale);											<br>	q[1].y = (p.y + scale);											<br>		<br>	q[2].x = (p.x + scale);											<br>	q[2].y = (p.y - scale);											<br>		<br>	q[3].x = (p.x + scale);											<br>	q[3].y = (p.y + scale);											<br>		<br>	glPushMatrix();													<br>	glTranslatef(p.x, p.y, p.z);									<br>	glRotatef(-m_HeadingDegrees, 0.0f, 1.0f, 0.0f);<br>	glRotatef(-m_PitchDegrees, 1.0f, 0.0f, 0.0f);<br>	glBindTexture(GL_TEXTURE_2D, m_HaloTexture);					<br>	glColor4f(r, g, b, a);											<br>	<br>	glBegin(GL_TRIANGLE_STRIP);										<br>		glTexCoord2f(0.0f, 0.0f);					<br>		glVertex2f(q[0].x, q[0].y);<br>		glTexCoord2f(0.0f, 1.0f);<br>		glVertex2f(q[1].x, q[1].y);<br>		glTexCoord2f(1.0f, 0.0f);<br>		glVertex2f(q[2].x, q[2].y);<br>		glTexCoord2f(1.0f, 1.0f);<br>		glVertex2f(q[3].x, q[3].y);<br>	glEnd();										<br>	glPopMatrix();													<br>}</pre>
<p><span class="theme">//绘制Gloew形的光晕</span><br>
  void glCamera::RenderGlow(GLfloat r, GLfloat g, GLfloat b, GLfloat a, glPoint 
  p, GLfloat scale)<br>
  {<br>
  glPoint q[4];<br>
  <br>
  q[0].x = (p.x - scale); <br>
  q[0].y = (p.y - scale); </p>
<p> q[1].x = (p.x - scale); <br>
  q[1].y = (p.y + scale); <br>
  <br>
  q[2].x = (p.x + scale); <br>
  q[2].y = (p.y - scale); <br>
  <br>
  q[3].x = (p.x + scale); <br>
  q[3].y = (p.y + scale); <br>
  <br>
  glPushMatrix(); <br>
  glTranslatef(p.x, p.y, p.z); <br>
  glRotatef(-m_HeadingDegrees, 0.0f, 1.0f, 0.0f);<br>
  glRotatef(-m_PitchDegrees, 1.0f, 0.0f, 0.0f);<br>
  glBindTexture(GL_TEXTURE_2D, m_GlowTexture); <br>
  glColor4f(r, g, b, a); <br>
  <br>
  glBegin(GL_TRIANGLE_STRIP); <br>
  glTexCoord2f(0.0f, 0.0f); <br>
  glVertex2f(q[0].x, q[0].y);<br>
  glTexCoord2f(0.0f, 1.0f);<br>
  glVertex2f(q[1].x, q[1].y);<br>
  glTexCoord2f(1.0f, 0.0f);<br>
  glVertex2f(q[2].x, q[2].y);<br>
  glTexCoord2f(1.0f, 1.0f);<br>
  glVertex2f(q[3].x, q[3].y);<br>
  glEnd(); <br>
  glPopMatrix(); <br>
  }</p>
<p><span class="theme">//绘制BigGlow形的光晕</span><br>
  void glCamera::RenderBigGlow(GLfloat r, GLfloat g, GLfloat b, GLfloat a, glPoint 
  p, GLfloat scale)<br>
  {<br>
  glPoint q[4];<br>
  <br>
  q[0].x = (p.x - scale); <br>
  q[0].y = (p.y - scale); <br>
  <br>
  q[1].x = (p.x - scale); <br>
  q[1].y = (p.y + scale); <br>
  <br>
  q[2].x = (p.x + scale); <br>
  q[2].y = (p.y - scale); <br>
  <br>
  q[3].x = (p.x + scale); <br>
  q[3].y = (p.y + scale); <br>
  <br>
  glPushMatrix(); <br>
  glTranslatef(p.x, p.y, p.z); <br>
  glRotatef(-m_HeadingDegrees, 0.0f, 1.0f, 0.0f);<br>
  glRotatef(-m_PitchDegrees, 1.0f, 0.0f, 0.0f);<br>
  glBindTexture(GL_TEXTURE_2D, m_BigGlowTexture); <br>
  glColor4f(r, g, b, a); <br>
  <br>
  glBegin(GL_TRIANGLE_STRIP); <br>
  glTexCoord2f(0.0f, 0.0f); <br>
  glVertex2f(q[0].x, q[0].y);<br>
  glTexCoord2f(0.0f, 1.0f);<br>
  glVertex2f(q[1].x, q[1].y);<br>
  glTexCoord2f(1.0f, 0.0f);<br>
  glVertex2f(q[2].x, q[2].y);<br>
  glTexCoord2f(1.0f, 1.0f);<br>
  glVertex2f(q[3].x, q[3].y);<br>
  glEnd(); <br>
  glPopMatrix(); <br>
  }</p>
<p><span class="theme">//绘制Streaks形的光晕</span><br>
  void glCamera::RenderStreaks(GLfloat r, GLfloat g, GLfloat b, GLfloat a, glPoint 
  p, GLfloat scale)<br>
  {<br>
  glPoint q[4];<br>
  <br>
  q[0].x = (p.x - scale); <br>
  q[0].y = (p.y - scale); <br>
  <br>
  q[1].x = (p.x - scale); <br>
  q[1].y = (p.y + scale); <br>
  <br>
  q[2].x = (p.x + scale); <br>
  q[2].y = (p.y - scale); <br>
  <br>
  q[3].x = (p.x + scale); <br>
  q[3].y = (p.y + scale); <br>
  <br>
  glPushMatrix(); <br>
  glTranslatef(p.x, p.y, p.z); <br>
  glRotatef(-m_HeadingDegrees, 0.0f, 1.0f, 0.0f);<br>
  glRotatef(-m_PitchDegrees, 1.0f, 0.0f, 0.0f);<br>
  glBindTexture(GL_TEXTURE_2D, m_StreakTexture); <br>
  glColor4f(r, g, b, a); <br>
  <br>
  glBegin(GL_TRIANGLE_STRIP); <br>
  glTexCoord2f(0.0f, 0.0f); <br>
  glVertex2f(q[0].x, q[0].y);<br>
  glTexCoord2f(0.0f, 1.0f);<br>
  glVertex2f(q[1].x, q[1].y);<br>
  glTexCoord2f(1.0f, 0.0f);<br>
  glVertex2f(q[2].x, q[2].y);<br>
  glTexCoord2f(1.0f, 1.0f);<br>
  glVertex2f(q[3].x, q[3].y);<br>
  glEnd(); <br>
  glPopMatrix(); <br>
  }<br>
</p>
<p></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="tl"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="tc" width="100%"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="100%"></td>
    <td class="tr"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="l"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
      <td class="back3" valign="top" width="100%"><p>你可以使用w,s,a,d变换摄像机的方向,1,2显示/关闭各种信息参数。C给摄像机一个固定的速度,X停止它。</p>
        <p>上面就是这个教程的全部了,所有的问题,评论和抱怨都欢迎。当然我不是第一个作这个效果的人,下面是其他方面相关的文章:<br>
          <a href="http://www.gamedev.net/reference/articles/article874.asp">http://www.gamedev.net/reference/articles/article874.asp</a><br>
          <a href="http://www.gamedev.net/reference/articles/article813.asp">http://www.gamedev.net/reference/articles/article813.asp</a><br>
          <a href="http://www.opengl.org/developers/code/mjktips/lensflare/">http://www.opengl.org/developers/code/mjktips/lensflare/</a><br>
          <a href="http://www.markmorley.com/opengl/frustumculling.html">http://www.markmorley.com/opengl/frustumculling.html</a><br>
          <a href="http://oss.sgi.com/projects/ogl-sample/registry/HP/occlusion_test.txt">http://oss.sgi.com/projects/ogl-sample/registry/HP/occlusion_test.txt</a><br>
          <a href="http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt">http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt</a> 
        </p>
<table border="1" width="100%">
  <tbody><tr>
    <td width="27%"><img src="Tutorial_44_files/logo%25203.jpg" align="middle" height="200" width="209"></td>
    <td width="73%">版权与使用声明:<br>
      我是个对学习和生活充满激情的普通男孩,在网络上我以DancingWind为昵称,我的联系方式是zhouwei02@mails.tsinghua.edu.cn,如果你有任何问题,都可以联系我。
      <p>引子<br>
网络是一个共享的资源,但我在自己的学习生涯中浪费大量的时间去搜索可用的资料,在现实生活中花费了大量的金钱和时间在书店中寻找资料,于是我给自己起了
个昵称DancingWind,其意义是想风一样从各个知识的站点中吸取成长的养料。在飘荡了多年之后,我决定把自己收集的资料整理为一个统一的资源库。</p>
      <p>版权声明<br>
所有DancingWind发表的内容,大多都来自共享的资源,所以我没有资格把它们据为己有,或声称自己为这些资源作出了一点贡献。故任何人都可以复
制,修改,重新发表,甚至以自己的名义发表,我都不会追究,但你在做以上事情的时候必须保证内容的完整性,给后来的人一个完整的教程。最后,任何人不能以
这些资料的任何部分,谋取任何形式的报酬。</p>
      <p>发展计划<br>
        在国外,很多资料都是很多人花费几年的时间慢慢积累起来的。如果任何人有兴趣与别人共享你的知识,我很欢迎你与我联系,但你必须同意我上面的声明。</p>
              <p>感谢<br>
                感谢我的母亲一直以来对我的支持和在生活上的照顾。<br>
                感谢我深爱的女友田芹,一直以来默默的在精神上和生活中对我的支持,她甚至把买衣服的钱都用来给我买书了,她真的是我见过的最好的女孩,希望我能带给她幸福。</p>
              <p>资源下载: <br>
                文档 <a href="http://www.owlei.com/DancingWind/Res/mht/NeHe%20OpenGL%20Chinese%20Course%2044.mht">网页格式</a> 
                <a href="http://www.owlei.com/DancingWind/Res/pdf/OpenGL_Nehe_Course_Tutorial_44.pdf">PDF格式</a><br>
                源码 <a href="http://www.owlei.com/DancingWind/Res/Src/44_Flare.rar">RAR格式</a></p></td>
  </tr>
</tbody></table>
        <font class="text">
        <table border="0" width="100%">
          <tbody>
            <tr> 
              <td align="left" width="50%"><b><font size="-1"><a href="http://www.owlei.com/DancingWind/Course/Tutorial_43.htm">&lt; 第43课</a></font></b></td>
              <td align="right" width="50%"><b><font size="-1"><a href="http://www.owlei.com/DancingWind/Course/Tutorial_45.htm">第45课 &gt;&nbsp;</a></font></b></td>
            </tr>
          </tbody>
        </table>
        </font> </td>
    <td class="r"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
  <tr>
    <td class="bl"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="bc" width="100%"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td>
    <td class="br"><img alt="" src="Tutorial_44_files/blank1.gif" height="28" width="28"></td></tr></tbody></table>
<pre>&nbsp;</pre>

</body></html>

⌨️ 快捷键说明

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