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

2021-05-25 00:10:52 字數 1044 閱讀 8012

1. opengl中的顏色

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

glbegin(gl_********s);

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的光照模型包括以下幾個步驟:

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

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

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

啟用光照模型

OpenGL的基本概念

opengl的版本 os系統預設支援opengl es1.0 es2.0以及es3.0 3個版本,三者之間並不是簡單的版本公升級,設計理念甚至完全不同,在開發opengl專案前,需要根據業務需求選擇合適的版本。通過eaglcontext指定es版本號 eaglcontext mcontext eag...

顏色基本概念和顏色位移

顏色的基本概念 rgb中0x000000是黑色,0xffffff是白色 alpha當0x00時候是完全透明的,0xff是完全不透明的。顏色的深度,就是乙個畫素用多少位來表示,一般影象為8位深度,也就是2 8 256種顏色。如果影象深度為24位,那就是2 24 16777216種顏色稱之為真彩色。雖然...

cassandra入門基本概念

cassandra 開源分布式nosql資料庫系統 功能比dynamo 分布式的key value儲存系統 豐富主要特性 1.分布式 不是乙個資料庫,而是一堆資料庫節點共同構成的乙個分布式網路服務 2.模式靈活 可以在系統執行時隨意的新增或移除字段 cassandra集群中,包含結點,資料中心,集群...