`
y150988451
  • 浏览: 197583 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

颜色使用 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,那么不管执行什么样的绘制操作,任何颜色缓存中任何像素的红色分量均不被改变。

分享到:
评论

相关推荐

    OpenGL 库函数汇总

    例如,`glColor3f` 使用浮点数来表示颜色的红、绿、蓝三个分量;而 `glColor3b` 使用有符号的字节型数据来表示同样的分量。颜色的值范围通常为 0.0 到 1.0(对于浮点数类型),或 0 到 255(对于字节型数据)。 - *...

    OpenGL 库函数汇总(中文分类)CHM

    alpha 透明度,指明当前新的 alpha 颜色值 ,只有在 glColor4 函数中带4个变量时才会指定此参数。 此外还包括: void glColor3bv(const GLbyte * v) void glColor3dv(const GLdoble * v) void glColor3fv(const ...

    OpenGL完全教程5

    例如,可以使用`glColor`函数来设置颜色。在绘制一个图元前,调用`glColor`函数即可为接下来要绘制的图元设置颜色。例如,下面的代码将会绘制一个红色的三角形: ```cpp glBegin(GL_TRIANGLES); glColor3ub(255, 0,...

    颜色旋转旋转

    - `glShadeModel(GL_FLAT)`:使用单一颜色为多边形着色,这种方式适合于希望每个面显示统一颜色的情况。 - `glShadeModel(GL_SMOOTH)`:根据多边形顶点的颜色值进行光滑插值,计算内部每点的颜色值,使得物体表面看...

    用opengl绘制一个旋转正方体.cpp

    //使用双缓存 使用深度缓存。 glutInitWindowSize(480, 480); glutCreateWindow("OpenGL颜色立方体"); glutReshapeFunc(reshape); //窗口改变的时候调用的函数 glutDisplayFunc(display); glutSpecialFunc...

    使用MFC绘制枫叶树叶

    与 `myleaf()` 不同的是,`myleaf2()` 使用了不同颜色的线段来模拟脉络的深浅变化,通过 `glColor3f()` 设置不同的黄色调。 总结起来,`myleaf()` 和 `myleaf2()` 通过MFC结合OpenGL,利用基本的几何形状和颜色设定...

    OPENGL实例文档

    `glClear`函数清空颜色缓冲区,`glBegin`和`glEnd`标志着顶点序列的开始和结束,`glShadeModel`设置明暗处理模式,`glColor3f`定义顶点颜色,`glVertex2f`定义顶点位置。 - `myReshape`函数处理窗口大小改变的事件...

    Nehe第3课颜色实例程序

    在这个实例中,Nehe会介绍如何设置顶点颜色、启用和禁用颜色混合,以及如何使用OpenGL的`glShadeModel()`函数来切换着色模式,`GL_SMOOTH`对应光滑着色,而`GL_FLAT`对应平面着色。 在学习这个实例时,开发者会接触...

    计算机图形学课程设计报告书.doc

    4. **颜色模型**:颜色模型是定义颜色的方式,实验中使用了OpenGL的glColor3f函数来设置颜色,通过GL_QUADS等函数绘制多边形,并使用颜色填充。 5. **纹理模型**:纹理贴图可以增强3D模型的表面细节,通过加载位图...

    基本光照、材质和纹理的应用与实现.rar

    熟悉使用MFC及OPENGL。 2、基本要求: 要求一:利用glShadeModel实现不同的明暗处理(GL_Smooth对应于Gourand明暗处理)。 要求二:利用glMaterial*定义材质属性。 要求三:利用glLight*定义光源属性。 要求四:理解...

    openGL基本图形

    我们使用 `glColor3f(r, g, b)` 函数来设定当前颜色,参数r、g、b分别代表红色、绿色和蓝色的分量,范围在0.0到1.0之间。 在OpenGL中,坐标系统是以屏幕中心为原点的,x轴向右,y轴向上,z轴指向观众。正负值表示...

    OpenGL 特效处理方法的实现及说明

    - `GL_SRC_COLOR`: 使用源颜色。 - `GL_ONE_MINUS_SRC_COLOR`: 1 减去源颜色。 - `GL_SRC_ALPHA`: 使用源 Alpha 值。 - `GL_ONE_MINUS_SRC_ALPHA`: 1 减去源 Alpha 值。 - `GL_DST_COLOR`: 使用目标颜色。 - `GL_ONE...

    OpenGL 常见函数功能查询

    **glColorMask**: 设置颜色写掩码。 - **功能描述**:控制颜色缓冲区写入时的掩码,可以分别控制红绿蓝阿尔法通道。 **glDepthMask**: 设置深度写掩码。 - **功能描述**:控制深度缓冲区写入时的掩码。 **...

    Delphi下OpenGL2d绘图之画线的方法

    - `glColor3f()`: 设置线条颜色,如`glColor3f(1, 0, 0)`设置为红色。 - `glVertex2f()`: 定义线条的顶点坐标,如`glVertex2f(50, 50)`定义一个位于(50, 50)位置的顶点。 以下是一个简单的Delphi代码示例,展示了...

    OpenGL 函数

    - **`glIndexMask`**与**`glColorMask`**:控制颜色和索引缓冲区的写入掩码。 - **`glDepthMask`**与**`glStencilMask`**:控制深度和模板缓冲区的写入掩码。 #### Alpha与模板测试 - **`glAlphaFunc`**:设置基于...

    opengl图形实例

    我们可以使用glShadeModel函数选择平滑着色或flat着色。平滑着色会使得球体表面颜色过渡自然,而flat着色则在每个三角面片上保持单一颜色。 最后,我们绘制球体。可以使用glDrawArrays或glDrawElements函数,传入...

    OpenGL编程轻松入门之一个简单的例子

    `glColor3f`定义顶点颜色,`glVertex2f`设置顶点坐标。`glFlush()`确保所有OpenGL命令立即执行,而不是延迟到后续操作。 `myReshape`函数是窗口重塑回调函数,当窗口尺寸改变时被调用。它使用`glViewport`设定视口...

    GL库函数 GL库函数 GL库函数 GL库函数 GL库函数

    `glColor`函数允许设定当前颜色,而`glColorPointer`则定义颜色数组,批量设置颜色信息。对于颜色索引模式,`glIndex`用于设置当前颜色索引,`glIndexPointer`定义颜色索引数组。`glColorTableEXT`和`...

    OpenGL常见函数表

    **`glColor`**:设置当前颜色。在绘制图形时,如果未指定其他颜色,则会使用此颜色。 **`glColorPointer`**:定义一个指向颜色数据的指针。这对于批量处理顶点颜色特别有用,可以减少每次调用时的参数重复。 **`...

Global site tag (gtag.js) - Google Analytics