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

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

常用鏈接

留言簿(48)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 401642
  • 排名 - 59

最新評論

閱讀排行榜

評論排行榜

在上節課的內容上作些擴展,我們現在開始生成真正的3D對象,而不是象前兩節課中那樣3D世界中的2D對象。我們給三角形增加一個左側面,一個右側面,一個后側面來生成一個金字塔(四棱錐)。給正方形增加左、右、上、下及背面生成一個立方體。
   我們混合金字塔上的顏色,創建一個平滑著色的對象。給立方體的每一面則來個不同的顏色。

  int DrawGLScene(GLvoid)                  // 此過程中包括所有的繪制代碼
  {
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// 清除屏幕及深度緩存
      glLoadIdentity();                 // 重置模型觀察矩陣
      glTranslatef(-1.5f,0.0f,-6.0f);          // 左移 1.5 單位,并移入屏幕 6.0

      glRotatef(rtri,0.0f,1.0f,0.0f);          // 繞Y軸旋轉金字塔

      glBegin(GL_TRIANGLES);               // 開始繪制金字塔的各個面

   有些人可能早已在上節課中的代碼上嘗試自行創建3D對象了。但經常有人來信問我:“我的對象怎么不會繞著其自身的軸旋轉?看起來總是在滿屏亂轉。”要讓您的對象繞自身的軸旋轉,您必須讓對象的中心坐標總是(0.0f,0,0f,0,0f)。
   下面的代碼創建一個繞者其中心軸旋轉的金字塔。金字塔的上頂點離中心一個單位,底面離中心也是一個單位。上頂點在底面的投影位于底面的中心。
   注意所有的面 — 三角形都是逆時針次序繪制的。這點十分重要,在以后的課程中我會作出解釋。現在,您只需明白要么都逆時針,要么都順時針,但永遠不要將兩種次序混在一起,除非您有足夠的理由必須這么做。
我們開始畫金字塔的前側面。因為所有的面都共享上頂點,我們將這點在所有的三角形中都設置為紅色。底邊上的兩個頂點的顏色則是互斥的。前側面的左下頂點是 綠色的,右下頂點是藍色的。這樣相鄰右側面的左下頂點是藍色的,右下頂點是綠色的。這樣四邊形的底面上的點的顏色都是間隔排列的。

          glColor3f(1.0f,0.0f,0.0f);         // 紅色
          glVertex3f( 0.0f, 1.0f, 0.0f);       // 三角形的上頂點 (前側面)
          glColor3f(0.0f,1.0f,0.0f);         // 綠色
          glVertex3f(-1.0f,-1.0f, 1.0f);       // 三角形的左下頂點 (前側面)
          glColor3f(0.0f,0.0f,1.0f);         // 藍色
          glVertex3f( 1.0f,-1.0f, 1.0f);       // 三角形的右下頂點 (前側面)

   現在繪制右側面。注意其底邊上的兩個頂點的X坐標位于中心右側的一個單位處。頂點則位于Y軸上的一單位處,且Z坐標正好處于底邊的兩頂點的Z坐標中心。右側面從上頂點開始向外側傾斜至底邊上。
   這次的左下頂點用藍色繪制,以保持與前側面的右下頂點的一致。藍色將從這個角向金字塔的前側面和右側面擴展并與其他顏色混合。
   還應注意到后面的三個側面和前側面處于同一個glBegin(GL_TRIANGLES)和glEnd()語句中間。因為我們是通過三角形來構造這個金字塔的。OpenGL知道每三個點構成一個三角形。當它畫完一個三角形之后,如果還有余下的點出現,它就以為新的三角形要開始繪制了。OpenGL在這里并不會將四點畫成一個四邊形,而是假定新的三角形開始了。所以千萬不要無意中增加任何多余的點。
   現在是后側面。再次切換顏色。左下頂點又回到綠色,因為后側面與右側面共享這個角。

          glColor3f(1.0f,0.0f,0.0f);         // 紅色
          glVertex3f( 0.0f, 1.0f, 0.0f);       // 三角形的上頂點 (后側面)
          glColor3f(0.0f,1.0f,0.0f);         // 綠色
          glVertex3f( 1.0f,-1.0f, -1.0f);      // 三角形的左下頂點 (后側面)
          glColor3f(0.0f,0.0f,1.0f);         // 藍色
          glVertex3f(-1.0f,-1.0f, -1.0f);      // 三角形的右下頂點 (后側面)

   最后畫左側面。又要切換顏色。左下頂點是藍色,與后側面的右下頂點相同。右下頂點是藍色,與前側面的左下頂點相同。
   到這里金字塔就畫完了。因為金字塔只繞著Y軸旋轉,我們永遠都看不見底面,因而沒有必要添加底面。如果您覺得有經驗了,嘗試增加底面(正方形),并將金字塔繞X軸旋轉來看看您是否作對了。確保底面四個頂點的顏色與側面的顏色相匹配。

          glColor3f(1.0f,0.0f,0.0f);         // 紅色
          glVertex3f( 0.0f, 1.0f, 0.0f);       // 三角形的上頂點 (左側面)
          glColor3f(0.0f,0.0f,1.0f);         // 藍色
          glVertex3f(-1.0f,-1.0f,-1.0f);       // 三角形的左下頂點 (左側面)
          glColor3f(0.0f,1.0f,0.0f);         // 綠色
          glVertex3f(-1.0f,-1.0f, 1.0f);       // 三角形的右下頂點 (左側面)
      glEnd();                      //金字塔繪制結束

   接下來開始畫立方體。他由六個四邊形組成。所有的四邊形都以逆時針次序繪制。就是說先畫右上角,然后左上角、左下角、最后右下角。您也許認為畫立方體的背面的時候這個次序看起來好像順時針,但別忘了我們從立方體的背后看背面的時候,與您現在所想的正好相反。(譯者:您是從立方體的外面來觀察立方體的)。
   注意到這次我們將立方體移地更遠離屏幕了。因為立方體的大小要比金字塔大,同樣移入6個單位時,立方體看起來要大的多。這是透視的緣故。越遠的對象看起來越小。

      glLoadIdentity();
       glTranslatef(1.5f,0.0f,-7.0f);
           // 先右移再移入屏幕
      glRotatef(rquad,1.0f,1.0f,1.0f);          // 在XYZ軸上旋轉立方體
      glBegin(GL_QUADS);                 // 開始繪制立方體

   先畫立方體的頂面。從中心上移一單位,注意Y坐標始終為一單位,表示這個四邊形與Z軸平行。先畫右上頂點,向右一單位,再屏幕向里一單位。然后左上頂點,向左一單位,再屏幕向里一單位。然后是靠近觀察者的左下和右下頂點。就是屏幕往外一單位。

          glColor3f(0.0f,1.0f,0.0f);         // 顏色改為藍色
?         ?glVertex3f( 1.0f, 1.0f,-1.0f);       // 四邊形的右上頂點 (頂面)
          glVertex3f(-1.0f, 1.0f,-1.0f);       // 四邊形的左上頂點 (頂面)
          glVertex3f(-1.0f, 1.0f, 1.0f);       // 四邊形的左下頂點 (頂面)
          glVertex3f( 1.0f, 1.0f, 1.0f);       // 四邊形的右下頂點 (頂面)

   底面的畫法和頂面十分類似。只是Y坐標變成了-1。如果我們從立方體的下面來看立方體的話,您會注意到右上角離觀察者最近,因此我們先畫離觀察者最近的頂點。然后是左上頂點最后才是屏幕里面的左下和右下頂點。
   如果您真的不在乎繪制多邊形的次序(順時針或者逆時針)的話,您可以直接拷貝頂面的代碼,將Y坐標從1改成-1,也能夠工作。但一旦您進入象紋理映射這樣的領域時,忽略繪制次序會導致十分怪異的結果。

          glColor3f(1.0f,0.5f,0.0f);         // 顏色改成橙色
          glVertex3f( 1.0f,-1.0f, 1.0f);       // 四邊形的右上頂點(底面)
          glVertex3f(-1.0f,-1.0f, 1.0f);       // 四邊形的左上頂點(底面)
          glVertex3f(-1.0f,-1.0f,-1.0f);       // 四邊形的左下頂點(底面)
          glVertex3f( 1.0f,-1.0f,-1.0f);       // 四邊形的右下頂點(底面)

   接著畫立方體的前面。保持Z坐標為一單位,前面正對著我們。

          glColor3f(1.0f,0.0f,0.0f);         // 顏色改成紅色
          glVertex3f( 1.0f, 1.0f, 1.0f);       // 四邊形的右上頂點(前面)
          glVertex3f(-1.0f, 1.0f, 1.0f);       // 四邊形的左上頂點(前面)
          glVertex3f(-1.0f,-1.0f, 1.0f);       // 四邊形的左下頂點(前面)
          glVertex3f( 1.0f,-1.0f, 1.0f);       // 四邊形的右下頂點(前面)

   立方體后面的繪制方法與前面類似。只是位于屏幕的里面。注意Z坐標現在保持-1不變。

          glColor3f(1.0f,1.0f,0.0f);         // 顏色改成黃色
          glVertex3f( 1.0f,-1.0f,-1.0f);       // 四邊形的右上頂點(后面)
          glVertex3f(-1.0f,-1.0f,-1.0f);       // 四邊形的左上頂點(后面)
          glVertex3f(-1.0f, 1.0f,-1.0f);       // 四邊形的左下頂點(后面)
          glVertex3f( 1.0f, 1.0f,-1.0f);       // 四邊形的右下頂點(后面)

   還剩兩個面就完成了。您會注意到總有一個坐標保持不變。這一次換成了X坐標。因為我們在畫左側面。

          glColor3f(0.0f,0.0f,1.0f);         // 顏色改成藍色
          glVertex3f(-1.0f, 1.0f, 1.0f);       // 四邊形的右上頂點(左面)
          glVertex3f(-1.0f, 1.0f,-1.0f);       // 四邊形的左上頂點(左面)
          glVertex3f(-1.0f,-1.0f,-1.0f);       // 四邊形的左下頂點(左面)
          glVertex3f(-1.0f,-1.0f, 1.0f);       // 四邊形的右下頂點(左面)

   立方體的最后一個面了。X坐標保持為一單位。逆時針繪制。您愿意的話,留著這個面不畫也可以,這樣就是一個盒子。
   或者您要是有興趣可以改變立方體所有頂點的色彩值,象金字塔那樣混合顏色。您會看見一個非常漂亮的彩色立方體,各種顏色在它的各個表面流淌。

          glColor3f(1.0f,0.0f,1.0f);        // 顏色改成紫羅蘭色
          glVertex3f( 1.0f, 1.0f,-1.0f);      // 四邊形的右上頂點(右面)
          glVertex3f( 1.0f, 1.0f, 1.0f);      // 四邊形的左上頂點(右面)
          glVertex3f( 1.0f,-1.0f, 1.0f);      // 四邊形的左下頂點(右面)
          glVertex3f( 1.0f,-1.0f,-1.0f);      // 四邊形的右下頂點(右面)
      glEnd();                     // 立方體繪制結束

      rtri+=0.2f;                    // 增加三角形的旋轉變量(新增)
      rquad-=0.15f;                   // 減少四邊形的旋轉變量(新增)
      return TRUE;                   // 繼續運行
  }

posted on 2007-12-10 11:38 sdfasdf 閱讀(691) 評論(0)  編輯 收藏 引用 所屬分類: OPENGL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品另类一区| 性久久久久久| 欧美日韩精品在线观看| 美女露胸一区二区三区| 久久久999精品视频| 性做久久久久久| 久久精品麻豆| 欧美mv日韩mv亚洲| 欧美日韩亚洲国产精品| 国产精品激情电影| 国产一区二区三区四区在线观看| 国产综合香蕉五月婷在线| 在线免费观看日本欧美| 亚洲精品无人区| 午夜久久资源| 欧美刺激性大交免费视频| 亚洲精品国久久99热| 91久久精品一区二区三区| 久久这里有精品视频| 性欧美xxxx大乳国产app| 久久亚洲二区| 亚洲美女黄色| 久久丁香综合五月国产三级网站| 麻豆精品在线播放| 国产精品国产三级国产专播品爱网| 国产一区二区0| 日韩一级视频免费观看在线| 欧美在线免费播放| 亚洲激情综合| 久久精品99国产精品酒店日本| 欧美大片免费观看在线观看网站推荐 | 欧美精品久久久久久久免费观看| 欧美日韩亚洲综合在线| 国语自产精品视频在线看抢先版结局| 日韩视频免费观看高清在线视频| 欧美一区二区三区婷婷月色| 欧美激情精品久久久久| 午夜精品久久久| 欧美日韩在线直播| 在线观看日韩av先锋影音电影院| 亚洲欧美日韩一区在线| 久久先锋影音av| 亚洲精品黄网在线观看| 亚洲一区国产视频| 久久亚洲一区二区三区四区| 欧美巨乳波霸| 国产午夜精品美女视频明星a级 | 国产有码在线一区二区视频| 亚洲区国产区| 欧美一区二区视频在线| 欧美电影专区| 亚洲欧美另类在线观看| 欧美**字幕| 国产日本欧美一区二区三区在线 | 加勒比av一区二区| 99亚洲视频| 另类av导航| 一本色道久久综合亚洲精品不| 欧美一区二区私人影院日本 | 亚洲国产精彩中文乱码av在线播放| 日韩一级大片| 免费观看不卡av| 国产一区视频网站| 一区二区三区精品在线| 久久蜜桃精品| 久久电影一区| 亚洲国产日韩欧美在线图片| 老司机一区二区三区| 久久精品视频网| 久久日韩粉嫩一区二区三区 | 午夜在线视频一区二区区别| 亚洲精品美女91| 欧美一站二站| 午夜精品视频在线观看一区二区| 国产精品亚洲综合色区韩国| 欧美一区二区性| 欧美一区免费| 亚洲福利在线视频| 亚洲精品久久久久久久久久久久 | 午夜一区在线| 欧美在线视频日韩| 亚洲国产精品黑人久久久 | 久久黄金**| 久久久91精品国产一区二区三区| 亚洲娇小video精品| 亚洲另类在线一区| 国产婷婷一区二区| 亚洲福利一区| 国产精品亚洲综合久久| 久久久一区二区三区| 蘑菇福利视频一区播放| 亚洲一级网站| 久久久久久欧美| 一区二区三区精品视频| 欧美一区二区三区免费观看| 亚洲人体一区| 欧美一区二区三区喷汁尤物| 日韩一区二区精品葵司在线| 亚洲欧美日韩综合国产aⅴ| 亚洲国产毛片完整版| 在线综合视频| 亚洲精品一二| 欧美一区精品| 亚洲一区二区三区在线视频| 久久精品一区二区三区中文字幕| 亚洲视频欧洲视频| 久久综合伊人| 久久黄金**| 欧美日韩成人综合在线一区二区| 久久国产婷婷国产香蕉| 欧美日韩视频免费播放| 欧美国产高潮xxxx1819| 国产欧美精品日韩区二区麻豆天美| 欧美激情视频在线播放| 国产伪娘ts一区| 一区二区三区日韩精品视频| 亚洲经典三级| 久久精品亚洲一区二区| 午夜一区二区三区不卡视频| 欧美日韩精品免费在线观看视频| 免费影视亚洲| 国产亚洲综合性久久久影院| 亚洲视频视频在线| 在线一区二区视频| 欧美黑人一区二区三区| 国产精品99久久久久久久女警 | 国产精品日韩精品| 日韩一区二区精品视频| 亚洲国产三级网| 久久久久成人精品| 久久久久久九九九九| 国产农村妇女精品| 亚洲一级片在线观看| 亚洲视频在线观看网站| 欧美日韩国产美女| 亚洲精品一级| 亚洲天堂av图片| 欧美性猛片xxxx免费看久爱| 日韩亚洲欧美精品| 亚洲一区二区三区免费视频 | 久久综合久久综合九色| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品毛片一区二区三区| 亚洲在线观看视频| 久久精品欧美| 狠狠色丁香婷婷综合影院| 欧美在线一级视频| 欧美成人一区在线| 亚洲欧洲精品一区二区精品久久久| 欧美gay视频激情| 亚洲日本激情| 亚洲图片欧美日产| 国产精品初高中精品久久| 亚洲欧美日产图| 麻豆精品视频在线| 日韩一级精品| 国产欧美一区二区精品性色| 久久精品中文| 99国产精品久久久久久久久久| 性做久久久久久| 136国产福利精品导航| 欧美日韩第一页| 欧美一区二区啪啪| 亚洲精品国产精品国自产观看浪潮| 亚洲少妇在线| 激情婷婷欧美| 欧美午夜激情小视频| 久久国产精品久久精品国产| 亚洲韩国日本中文字幕| 亚洲免费在线观看视频| 精品动漫av| 国产精品二区在线观看| 久久久精品动漫| 一本久久综合| 欧美大片一区二区三区| 亚洲欧美日韩精品在线| 亚洲国产网站| 国产亚洲一本大道中文在线| 欧美精品福利| 久久久女女女女999久久| 亚洲视频免费观看| 亚洲国产激情| 蜜臀久久久99精品久久久久久| 亚洲一级片在线观看| 亚洲国产综合91精品麻豆| 国产欧美日韩精品一区| 欧美激情中文字幕乱码免费| 欧美亚洲一区二区在线| 日韩亚洲欧美成人| 亚洲成在线观看| 久久一区免费| 欧美淫片网站| 亚洲深夜av| 欧美肥婆在线| 美女视频黄a大片欧美| 亚洲一区二区三区视频播放| 91久久香蕉国产日韩欧美9色| 国产精品视频xxx| 欧美日韩三区| 欧美日韩国产电影|