颜色使用 glShadeModel,glColor,glColorMask

1. glShadeModel 选择平面明暗模式或光滑明暗模式

C语言描述

void glShadeModel( GLenum mode )

参数

mode 指定表示明暗模式的符号值,可以选择GL_FLAT(平面明暗模式)和GL_SMOOTH光滑明暗模式),缺省值为GL_SMOOTH

说明

OpenGL图元需要进行明暗处理,处理得模式可以为平面明暗模式或光滑(Gouraud着色)明暗模式。光滑明暗模式时,多边形各个内部点的颜色是根据各顶点指定的颜色来插值得到的,这意味着两个顶点之间的颜色是从一顶点的颜色渐变到另一顶点的颜色。对于平面明暗模式,整个图元区域的颜色就是最后一个顶点指定的颜色,唯一例外的是GL_POLYGON,这是整个区域的颜色是第一个顶点所指定的颜色。但要注意,如果激活了光照,计算到的顶点颜色都是光照后的结果颜色,若光照关闭,计算到的颜色就是指定顶点时的当前颜色。


2. glColor 设置当前颜色

C语言描述

void glcolor3b(GLbyte redGLbyte greenGLbyte blue);

void glcolor3d(GLdouble redGLdouble greenGLdouble blue);

void glcolor3f(GLfloat redGLfloat greenGLfloat blue);

void glcolor3i(GLint redGLint greenGLint blue);

void glcolor3s(GLshort redGLshort greenGLshort blue);

void glcolor3ub(GLubyte redGLubyte greenGLubyte blue);

void glcolor3ui(GLuint redGLuint greenGLuint blue);

void glcolor3us(GLushort redGLushort greenGLushort blue);

void glcolor4b(GLbyte redGLbyte greenGLbyte blueGLbyte alpha);

void glcolor4d(GLdouble redGLdouble greenGLdouble blueGLdouble alpha);

void glcolor4f(GLfloat redGLfloat greenGLfloat blueGLfloat alpha);

void glcolor4i(GLint redGLint greenGLint blueGLint alpha);

void glcolor4s(GLshort redGLshort greenGLshort blueGLshort alpha);

void glcolor4ub(GLubyte redGLubyte greenGLubyte blueGLubyte alpha);

void glcolor4ui(GLuint redGLuint greenGLuint blueGLuint alpha);

   void glcolor4us(GLushort redGLushort greenGLushort blueGLushort alpha);

void glcolor3bv(const GLbyte *v);

void glcolor3dv(const GLdouble *v);

void glcolor3fv(const GLfloat *v);

void glcolor3iv(const GLint *v);

void glcolor3sv(const GLshort *v);

void glcolor3ubv(const GLubyte *v);

void glcolor3uiv(const GLuint *v);

void glcolor3usv(const GLushort *v);

void glcolor4bv(const GLbyte *v);

void glcolor4dv(const GLdouble *v);

void glcolor4fv(const GLfloat *v);

void glcolor4iv(const GLint *v);

void glcolor4sv(const GLshort *v);

void glcolor4ubv(const GLubyte *v);

void glcolor4uiv(const GLuint *v);

   void glcolor4usv(const GLushort *v);

参数

redgreen, blue 指定当前颜色中的红、绿和蓝色成分。

alpha 指定颜色中的α成分。只有在glColor4函数带4个变量时才指定此参数。

*v 指定一个指向包含红、绿、蓝和alpha值的数组指针。

说明

本函数通过指定红、绿、蓝的颜色成分来设置当前的颜色,同时部分函数可以接受α成分。每个成分亮度的表示范围是从零(0.0)到全光强(1.0),当指定了非浮点类型时,该类型从0到最大值的表示法与浮点类型范围的0.01.0相映射。


3. glColorMask 激活或关闭帧缓存颜色分量的写操作

C语言描述

void glColorMask(GLboolean redGLboolean greenGLboolean blueGLboolean alpha)

参数

    redgreenbluealpha 指定红、绿、蓝和α成分是否可以修改。

说明

本函数指定是否可以将单个的颜色分量写入帧缓存。例如,若redGL_FALSE,那么不管执行什么样的绘制操作,任何颜色缓存中任何像素的红色分量均不被改变。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值