材质的颜色

这篇博客介绍了OpenGL中材质颜色在无光照和有光照模型下的表现。在无光照模型中,颜色直接由glColor*函数设置;而在有光照模型下,材质颜色受到光源和glMaterial*()设置的影响。启用GL_COLOR_MATERIAL后,光照模型会根据glColor*()设定的颜色调整。文章探讨了glColorMaterial()函数的参数设置,包括face和mode的不同选项。
部署运行你感兴趣的模型镜像

在OpenGL的绘制中,我们一般会给绘制物体加上颜色,根据场景的不同,有几下几种方法:

1. 无光照

在无光照模型下,是最简单的一种情形,在这种情况下,直接使用glColor*函数来设置每个顶点的颜色,这种方法简单直接。

2.有光照

在有光照的模型下,模型的颜色受以下几方面的影响:光源的颜色属性 ,以及通过glMaterial*()设置的材质的属性。同时glColor*()命令将失去作用。但是我们可以用glEnable(GL_COLOR_MATERIAL)

如果调用了glEnable(GL_COLOR_MATERIAL),那么就会使光照模型中的几种光根据glColor*()中的指定确定颜色:void glColorMaterial(GLenum face, GLenum mode);其中face的取值GL_FRONT, GL_BACK与GL_FRONT_AND_BACK(默认值)mode的取值为GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR与GL_AMBIENT_AND_DIFFUSE(默认值)

例如:

glEnable(GL_COLOR_MATERIAL); 
glColorMaterial(GL_FRONT, GL_DIFFUSE); 
/* now glColor* changes diffuse reflection */ 
glColor3f(0.2, 0.5, 0.8); 
/* draw some objects here */
glColorMaterial(GL_FRONT, GL_SPECULAR); 
/* glColor* no longer changes diffuse reflection */ 
/* now glColor* changes specular reflection */ 
glColor3f(0.9, 0.0, 0.2); 
/* draw other objects here */ 
glDisable(GL_COLOR_MATERIAL);



您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值