共用方式為


glMaterialfv 函式

glMaterialfv函式會指定光源模型的材質參數。

語法

void WINAPI glMaterialfv(
         GLenum  face,
         GLenum  pname,
   const GLfloat *params
);

參數

正在更新的臉部或臉部。 必須是下列其中一項:GL_FRONT、GL_BACK或GL_FRONT和GL_BACK。

pname

正在更新之臉部或臉部的材質參數。 可以使用 glMaterialfv指定的參數,以及光源方程式的解譯,如下所示。

意義
GL_AMBIENT
params 參數包含四個浮點值,可指定材質的環境 RGBA 反映。 整數值會以線性方式對應,使最正面的可表示值對應至 1.0,而最負數的可表示值則對應至 -1.0。 浮點值會直接對應。 整數和浮點值都不會受到限制。 正面和反向材質的預設環境反射是 (0.2、0.2、0.2、1.0) 。
GL_DIFFUSE
params 參數包含四個浮點值,指定材質的擴散 RGBA 反射。 整數值會以線性方式對應,使最正面的可表示值對應至 1.0,而最負數的可表示值則對應至 -1.0。 浮點值會直接對應。 整數和浮點值都不會受到限制。 正面和反向材質的預設擴散反射是 (0.8、0.8、0.8、1.0) 。
GL_SPECULAR
params 參數包含四個浮點值,指定材質的反射 RGBA 反射。 整數值會以線性方式對應,使最正面的可表示值對應至 1.0,而最負數的可表示值則對應至 -1.0。 浮點值會直接對應。 整數和浮點值都不會受到限制。 正面和反向材質的預設反射是 (0.0、0.0、0.0、1.0) 。
GL_EMISSION
params 參數包含四個浮點值,可指定材質的 RGBA 發出光線強度。 整數值會以線性方式對應,使最正面的可表示值對應至 1.0,而最負數的可表示值則對應至 -1.0。 浮點值會直接對應。 整數和浮點值都不會受到限制。 正面和反向材質的預設發出強度是 (0.0、0.0、0.0、1.0) 。
GL_SHININESS
param參數是單一整數值,指定材質的 RGBA 反射指數。 整數值會直接對應。 只接受範圍 [0, 128] 中的值。 正面和反向材質的預設反射指數為 0。
GL_AMBIENT_AND_DIFFUSE
相當於使用相同的參數值呼叫 glMaterial 兩次,一次具有GL_AMBIENT,一次搭配 GL_DIFFUSE。
GL_COLOR_INDEXES
params 參數包含三個浮點值,指定環境、擴散和反射光源的色彩索引。 這三個值和GL_SHININESS是色彩索引模式光源方程式所使用的唯一材質值。 如需色彩索引光源的討論,請參閱 glLightModel

params

將設定參數GL_SHININESS的值。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_ENUM
臉部pname不是可接受的值。
GL_INVALID_VALUE
指定了超出 [0, 128] 範圍的反射指數。

備註

glMaterialfv函式會將值指派給材質參數。 有兩組相符的材質參數。 其中一個 是前端 集合,用於在啟用雙面光源時 (著色點、線條、點陣圖和所有多邊形 (,或只) 啟用雙) 面光源時 (的正面多邊形。 唯有啟用雙面光源時,才會使用另一組 反向多邊形來著色反向多邊形。 如需有關一面和雙面光源計算的詳細資訊,請參閱 glLightModel

glMaterialfv函式採用三個引數。 第一個 臉部會指定是否要修改GL_FRONT材質、GL_BACK材質或兩個GL_FRONT_AND_BACK材質。 第二個 pname會指定要修改一或兩個集合中數個參數的哪一個。 第三 個 參數會指定將指派給指定參數的值。

材質參數用於選擇性套用至每個頂點的光源方程式。 此方程式會在 glLightModel中討論。

材質參數可以隨時更新。 特別是 ,glMaterialfv 可以在 glBegin 的呼叫與 glEnd的對應呼叫之間呼叫。 不過,如果每個頂點只有單一材質參數要變更, glColorMaterial 會優先于 glMaterialfv

下列函式會擷 取 glMaterialfv的相關資訊:

glGetMaterial

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glColorMaterial

glLight

glLightModel