OpenGL基本概念入門4——顏色、光照和材質1

來源:互聯網
上載者:User

1. OpenGL中的顏色

    在未使用光照系統的前提下,我們可以直接為圖元指定顏色。在傳入頂點之前調用glColor函數,就可以為即將指定的頂點設定顏色。例如:

    glBegin(GL_TRIANGLES);
      glColor3ub(255,0,0);
      glVertex3f(0,1,0);
      glVertex3f(1,0,1);
      glVertex3f(1,1,0);    
    glEnd();

    將繪製一個紅色的三角形。在繪製圖元時,OpenGL會自動將圖元的第一個頂點的顏色作為整個圖元的顏色。但有些時候,你可能希望為一個圖元的各個頂點指定不同的顏色,使它們自然過度,就像圖5.1-1那樣。

    這時,我們需要在繪製圖元之前調用如下函數:

    glShadeModel(GL_SMOOTH);

    讓OpenGL對頂點之間的顏色進行平滑過度。你可以把參數改為GL_FLAT,禁止OpenGL對頂點進行平滑過度。

2 OpenGL 光照模效果的原理

OpenGL的光照模型是用來類比現實生活中的光照的。它根據頂點的法線向量和光源的位置決定頂點的明暗程度,根據頂點的材質和光源中三原色的成分來決定物體將表現出怎樣的顏色。

值得一提的是材質。OpenGL中的材質並非我們平常所說的組成物體的元素(如木材、金屬材質),而是指一個物體對不同顏色的光的反射和吸收程度。比如,在光照系統中,如果一個物體表現為紅色,則是因為這個物體吸收了從光源放射出來的綠色和藍色光,而將絕大多數紅色的光反射了出來。正因如此,一旦你開啟了光照系統,就要通過指定物體的材質來決定這個物體是什麼顏色。既然這樣,你可能會想到怎樣表現類似金屬、玻璃等物質質感,但這些除了要使用光照系統並為它們指定合適的材質外,還要使用紋理貼圖來表現質感。

    使用OpenGL的光照模型包括以下幾個步驟:

·   設定光源的種類、位置和方向(對於平行光源)

·   為每個圖元的每個頂點指定它的法線向量

·   為各個圖元指定它的材質

啟用光照模型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.