青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 聯系 ::  :: 管理
  163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

常用鏈接

留言簿(48)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 402531
  • 排名 - 59

最新評論

閱讀排行榜

評論排行榜

第一課中,我教您如何創建一個OpenGL窗口。這一課中,我將教您如何創建三角形和四邊形。我們講使用來創建GL_TRIANGLES一個三角形,GL_QUADS來創建一個四邊形。
   在第一課代碼的基礎上,我們只需在DrawGLScene()過程中增加代碼。下面我重寫整個過程。如果您計劃修改上節課的代碼,只需用下面的代碼覆蓋原來的DrawGLScene()就可以了。

  int DrawGLScene(GLvoid)                   // 此過程中包括所有的繪制代碼
  {
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// 清除屏幕及深度緩存
      glLoadIdentity();                 // 重置視口

   當您調用glLoadIdentity()之后,您實際上講當前點移到了屏幕中心,X坐標軸從左至右,Y坐標軸從下至上,Z坐標軸從里至外。OpenGL屏幕中心的坐標值是X和Y軸上的0.0f點。中心左面的坐標值是負值,右面是正值。移向屏幕頂端是正值,移向屏幕底端是負值。移入屏幕深處是負值,移出屏幕則是正值。
   glTranslatef(x, y, z)沿著X,Y和Z軸移動。根據前面的次序,下面的代碼沿著X軸左移1.5個單位,Y軸不動(0.0f),最后移入屏幕6.0f個單位。注意在glTranslatef(x, y, z)中當您移動的時候,您并不是相對屏幕中心移動,而是相對與當前所在的屏幕位置。

      glTranslatef(-1.5f,0.0f,-6.0f);          // 左移1.5單位,并移入屏幕6.0

   現在我們已經移到了屏幕的左半部分,并且將視圖推入屏幕背后足夠的距離以便我們可以看見全部的場景-創建三角形。glBegin(GL_TRIANGLES)的意思是開始繪制三角形,glEnd()告訴OpenGL三角形已經創建好了。通常您會需要畫3個頂點,可以使用GL_TRIANGLES。在絕大多數的顯卡上,繪制三角形是相當快速的。如果要畫四個頂點,使用GL_QUADS的話會更方便。但據我所知,絕大多數的顯卡都使用三角形來為對象著色。最后,如果您想要畫更多的頂點時,可以使用GL_POLYGON。
   本節的簡單示例中,我們只畫一個三角形。如果要畫第二個三角形的話,可以在這三點之后,再加三行代碼(3點)。所有六點代碼都應包含在glBegin(GL_TRIANGLES)和glEnd()之間。在他們之間再不會有多余的點出現,也就是說,glBegin(GL_TRIANGLES)和glEnd()之間的點都是以三點為一個集合的。這同樣適用于四邊形。如果您知道實在繪制四邊形的話,您必須在第一個四點之后,再加上四點為一個集合的點組。另一方面,多邊形可以由任意個頂點,glBegin(GL_POLYGON)不在乎glBegin(GL_TRIANGLES)和glEnd()之間有多少行代碼。glBegin之后的第一行設置了多邊形的第一個頂點,glVertex的第一個參數是X坐標,然后依次是Y坐標和Z坐標。第一個點是上頂點,然后是左下頂點和右下頂點。glEnd()告訴OpenGL沒有其他點了。這樣將顯示一個填充的三角形。
  譯者這里要注意的是存在兩種不同的坐標變換方式,glTranslatef(x,y,z)中的x,y,z是相對與您當前所在點的位移,但glVertex(x,y,z)是相對于glTranslatef(x,y,z)移動后的新原點的位移。因而這里可以認為glTranslate移動的是坐標原點,glVertex中的點是相對最新的坐標原點的坐標值。

      glBegin(GL_TRIANGLES);              // 繪制三角形
          glVertex3f( 0.0f, 1.0f, 0.0f);      // 上頂點
          glVertex3f(-1.0f,-1.0f, 0.0f);      // 左下
          glVertex3f( 1.0f,-1.0f, 0.0f);      // 右下
      glEnd();                     // 三角形繪制結束

   在屏幕的左半部分畫完三角形后,我們要移到右半部分來畫正方形。為此要再次使用glTranslate。這次右移,所以X坐標值為正值。因為前面左移了1.5個單位,這次要先向右移回屏幕中心(1.5個單位),再向右移動1.5個單位。總共要向右移3.0個單位。

      glTranslatef(3.0f,0.0f,0.0f);           // 右移3單位

   現在使用GL_QUADS繪制正方形。與繪制三角形的代碼相類似,畫四邊形也很簡單。唯一的區別是用GL_QUADS來替換了GL_TRIANGLES。并增加了一個點。我們使用順時針次序來畫正方形-左上-右上-右下-左下。采用順時針繪制的是對象的后表面。這就是說我們所看見的是正方形的背面。逆時針畫出來的正方形才是正面朝著我們的。現在這對您來說并不重要,但以后您必須知道。

      glBegin(GL_QUADS);                // 繪制正方形
          glVertex3f(-1.0f, 1.0f, 0.0f);      // 左上
          glVertex3f( 1.0f, 1.0f, 0.0f);      // 右上
          glVertex3f( 1.0f,-1.0f, 0.0f);     // 左下
          glVertex3f(-1.0f,-1.0f, 0.0f);      // 右下
      glEnd();                     // 正方形繪制結束
      return TRUE;                   // 繼續運行
  }

   最后換掉窗口模式下的標題內容。

              if (keys[VK_F1])        // F1鍵按下了么?
              {
                   keys[VK_F1]=FALSE;
   // 若是,使對應的Key數組中的值為 FALSE
                  KillGLWindow();     // 銷毀當前的窗口
                  fullscreen=!fullscreen; // 切換 全屏 / 窗口 模式
                   // 重建 OpenGL 窗口(修改)
                  if (!CreateGLWindow("NeHe’s First Polygon Tutorial",
                       640,480,16,fullscreen))
                   {
                       return 0;
    // 如果窗口未能創建,程序退出
                  }

  Markus Knauer注:在《OpenGL紅寶書:OpenGL學習的官方指南,第一版》(OpenGL Programming Guide: The Official Guide to Learning OpenGL, Release 1, J. Neider, T. Davis, M. Woo, Addison-Wesley, 1993)一書中清楚的解釋了NeHe所指的在OpenGL中移動的單位概念:“在OpenGL中真的有英寸和英里的區別嗎?答案是一句話?好揮小M甘雍推淥謀浠歡際俏薜ノ壞摹H綣胍眉粼?1.0到20.0米,英寸、公里等等之間的平面,在OpenGL中您無法做到。唯一的法則是您必須使用一致的度量單位。”
   在這一課中,我已試著盡量詳細的解釋與多邊形繪制有關的步驟。并創建了一個繪制三角形和正方形的OpenGL程序。如果您有什么意見或建議請給我電子郵件。如果您認為有什么不對或可以改進,請告訴我。我想做最好的OpenGL教程并對您的反饋感興趣。
posted on 2007-12-05 16:16 sdfasdf 閱讀(1179) 評論(1)  編輯 收藏 引用 所屬分類: OPENGL

Feedback

# re: NEHE的OPENGL教程 第二課 多邊形 2007-12-06 15:21 學海一人
謝謝你  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本一本久久a久久精品综合妖精| 狠狠色伊人亚洲综合网站色| 亚洲综合视频一区| 一区二区高清在线观看| 亚洲免费观看视频| 亚洲免费大片| 亚洲色在线视频| 亚洲一区二区三区精品视频| 翔田千里一区二区| 久久久av水蜜桃| 久久全国免费视频| 欧美成人小视频| 欧美精品网站| 国产精品日韩一区二区| 欧美性做爰毛片| 国产午夜精品全部视频在线播放| 一本一本久久a久久精品牛牛影视| 久久久久久久久久久久久久一区| 久久久久国色av免费看影院| 久久资源av| 亚洲精品视频免费| 午夜精品偷拍| 欧美经典一区二区三区| 国产精品夜夜夜一区二区三区尤| 亚洲专区一二三| 久久九九精品| 欧美涩涩视频| 国内一区二区三区| 亚洲无亚洲人成网站77777| 亚洲天堂成人| 欧美顶级少妇做爰| 亚洲视频免费| 久久久久一区二区| 欧美午夜精品久久久久免费视 | 久久久精品国产免大香伊 | 亚洲少妇中出一区| 久久视频这里只有精品| 欧美风情在线| 激情伊人五月天久久综合| 一区二区三区久久精品| 久久久91精品国产| 日韩一区二区精品葵司在线| 亚洲欧美日韩精品一区二区| 欧美成人一区二区三区| 国产资源精品在线观看| 亚洲欧美日韩综合一区| 亚洲经典视频在线观看| 欧美夜福利tv在线| 国产精品欧美在线| 中文亚洲字幕| 欧美激情一区二区三级高清视频| 亚洲免费伊人电影在线观看av| 欧美精品一区二区在线观看 | 欧美视频不卡| 亚洲激情电影中文字幕| 久久综合伊人| 久久久噜噜噜久久| 极品裸体白嫩激情啪啪国产精品| 香蕉尹人综合在线观看| 中日韩视频在线观看| 欧美日韩第一区| 久久久精品国产一区二区三区 | 亚洲视频网在线直播| 一区二区三区国产在线观看| 一本色道久久综合亚洲91| 亚洲精品男同| 欧美一区2区三区4区公司二百 | 久久午夜色播影院免费高清| 亚洲欧美日韩综合一区| 久久久久久久一区二区| 先锋亚洲精品| 欧美~级网站不卡| 亚洲精品社区| 久久精品国内一区二区三区| 久久蜜桃av一区精品变态类天堂| 美女精品一区| 一本久道久久综合中文字幕| 一本色道久久综合亚洲精品按摩| 久久激情视频免费观看| 亚洲大胆av| 日韩视频在线观看免费| 中文在线不卡视频| 亚洲欧美www| 亚洲国产欧美日韩| 亚洲视频自拍偷拍| 久久免费视频一区| 欧美亚洲专区| 黑人巨大精品欧美一区二区| 最新日韩av| 国产日韩综合| 免费成人性网站| 亚洲一区二区在线视频 | 狠狠色综合网| 久久er99精品| 亚洲精品中文字幕在线观看| 亚洲人成网站999久久久综合| 亚洲一区区二区| 99热精品在线观看| 亚洲网在线观看| 在线精品视频免费观看| 一本久道综合久久精品| 精品999在线播放| 一区二区三区精品视频| 黄色成人av在线| 一区二区免费在线观看| 亚洲第一毛片| 午夜免费日韩视频| 在线一区二区三区做爰视频网站| 久久成年人视频| 亚洲永久免费观看| 欧美大片免费观看在线观看网站推荐| 午夜伦理片一区| 欧美日韩成人网| 欧美xx69| 精品成人在线| 亚洲女人天堂av| 亚洲午夜激情网页| 欧美屁股在线| 亚洲国产精品美女| 在线成人小视频| 欧美亚洲一区二区三区| 亚洲欧美日韩视频一区| 欧美精品一区二区在线播放| 欧美成人免费小视频| 黄色欧美成人| 欧美一区二区三区播放老司机| 亚洲一级片在线看| 欧美日韩精品久久久| 亚洲黄色免费网站| 亚洲经典在线| 免费中文字幕日韩欧美| 蜜桃久久av一区| 亚洲成人在线免费| 久久婷婷蜜乳一本欲蜜臀| 久久嫩草精品久久久精品| 国产一区二区三区高清播放| 午夜久久99| 久久久久www| 国内视频一区| 久久久精品欧美丰满| 久久夜色精品国产欧美乱极品 | 欧美日本三级| 亚洲美女精品一区| 亚洲性视频网站| 国产精品日韩在线观看| 亚洲欧美日韩高清| 久久久精彩视频| 在线观看欧美日韩| 麻豆精品视频在线观看视频| 欧美国产一区二区| 在线视频欧美日韩精品| 午夜在线成人av| 免费不卡在线观看| 91久久嫩草影院一区二区| 日韩一级在线观看| 欧美视频精品一区| 西瓜成人精品人成网站| 老司机精品视频一区二区三区| 狠狠色综合播放一区二区| 免费欧美日韩| 99精品欧美一区二区三区综合在线 | 伊人色综合久久天天| 欧美一区在线看| 欧美黄色视屏| 亚洲影院污污.| 精品99一区二区| 欧美日韩国产电影| 亚洲欧美日本在线| 蜜臀91精品一区二区三区| 激情综合色综合久久| 欧美成人精品福利| 亚洲性视频h| 老巨人导航500精品| 亚洲精品在线观| 国产欧美日韩激情| 男男成人高潮片免费网站| 亚洲一区二区免费视频| 美日韩在线观看| 亚洲免费影视| 亚洲国产三级网| 国产精品综合色区在线观看| 美女视频黄 久久| 亚洲影院污污.| 亚洲黄一区二区| 久久久久久久性| 亚洲欧美中文日韩在线| 亚洲三级视频| 黄网动漫久久久| 国产精品免费在线| 欧美激情综合五月色丁香| 欧美一区二区视频网站| 亚洲视频观看| 亚洲美女精品成人在线视频| 欧美不卡视频一区| 久久久www成人免费精品| 亚洲欧美国产高清va在线播| 99re6热在线精品视频播放速度| 精品69视频一区二区三区| 国产亚洲欧美一区在线观看| 欧美日韩一区二区视频在线|