1.
glShadeModel :选择平面明暗模式或光滑明暗模式
C语言描述
void
glShadeModel( GLenum mode )
参数
mode
指定表示明暗模式的符号值,可以选择GL_FLAT(平面明暗模式)和GL_SMOOTH(光滑明暗模式),缺省值为GL_SMOOTH。
说明
OpenGL图元需要进行明暗处理,处理得模式可以为平面明暗模式或光滑(Gouraud着色)明暗模式。光滑明暗模式时,多边形各个内部点的颜色是根据各顶点指定的颜色来插值得到的,这意味着两个顶点之间的颜色是从一顶点的颜色渐变到另一顶点的颜色。对于平面明暗模式,整个图元区域的颜色就是最后一个顶点指定的颜色,唯一例外的是GL_POLYGON,这是整个区域的颜色是第一个顶点所指定的颜色。但要注意,如果激活了光照,计算到的顶点颜色都是光照后的结果颜色,若光照关闭,计算到的颜色就是指定顶点时的当前颜色。
2.
glColor :设置当前颜色
C语言描述
void
glcolor3b(GLbyte red,GLbyte
green,GLbyte blue);
void
glcolor3d(GLdouble red,GLdouble
green,GLdouble blue);
void
glcolor3f(GLfloat red,GLfloat
green,GLfloat blue);
void
glcolor3i(GLint red,GLint
green,GLint blue);
void
glcolor3s(GLshort red,GLshort
green,GLshort blue);
void
glcolor3ub(GLubyte red,GLubyte
green,GLubyte blue);
void
glcolor3ui(GLuint red,GLuint
green,GLuint blue);
void
glcolor3us(GLushort red,GLushort
green,GLushort blue);
void
glcolor4b(GLbyte red,GLbyte
green,GLbyte blue,GLbyte
alpha);
void
glcolor4d(GLdouble red,GLdouble
green,GLdouble
blue,GLdouble alpha);
void
glcolor4f(GLfloat red,GLfloat
green,GLfloat
blue,GLfloat alpha);
void
glcolor4i(GLint red,GLint
green,GLint blue,GLint
alpha);
void
glcolor4s(GLshort red,GLshort
green,GLshort
blue,GLshort alpha);
void
glcolor4ub(GLubyte red,GLubyte
green,GLubyte
blue,GLubyte alpha);
void
glcolor4ui(GLuint red,GLuint
green,GLuint blue,GLuint
alpha);
void
glcolor4us(GLushort red,GLushort
green,GLushort
blue,GLushort 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);
参数
red,green,
blue 指定当前颜色中的红、绿和蓝色成分。
alpha
指定颜色中的α成分。只有在glColor4函数带4个变量时才指定此参数。
*v
指定一个指向包含红、绿、蓝和alpha值的数组指针。
说明
本函数通过指定红、绿、蓝的颜色成分来设置当前的颜色,同时部分函数可以接受α成分。每个成分亮度的表示范围是从零(0.0)到全光强(1.0),当指定了非浮点类型时,该类型从0到最大值的表示法与浮点类型范围的0.0到1.0相映射。
3.
glColorMask :激活或关闭帧缓存颜色分量的写操作
C语言描述
void
glColorMask(GLboolean red,GLboolean
green,GLboolean
blue,GLboolean alpha)
参数
red,green,blue,alpha
指定红、绿、蓝和α成分是否可以修改。
说明
本函数指定是否可以将单个的颜色分量写入帧缓存。例如,若red为GL_FALSE,那么不管执行什么样的绘制操作,任何颜色缓存中任何像素的红色分量均不被改变。
分享到:
相关推荐
例如,`glColor3f` 使用浮点数来表示颜色的红、绿、蓝三个分量;而 `glColor3b` 使用有符号的字节型数据来表示同样的分量。颜色的值范围通常为 0.0 到 1.0(对于浮点数类型),或 0 到 255(对于字节型数据)。 - *...
alpha 透明度,指明当前新的 alpha 颜色值 ,只有在 glColor4 函数中带4个变量时才会指定此参数。 此外还包括: void glColor3bv(const GLbyte * v) void glColor3dv(const GLdoble * v) void glColor3fv(const ...
例如,可以使用`glColor`函数来设置颜色。在绘制一个图元前,调用`glColor`函数即可为接下来要绘制的图元设置颜色。例如,下面的代码将会绘制一个红色的三角形: ```cpp glBegin(GL_TRIANGLES); glColor3ub(255, 0,...
- `glShadeModel(GL_FLAT)`:使用单一颜色为多边形着色,这种方式适合于希望每个面显示统一颜色的情况。 - `glShadeModel(GL_SMOOTH)`:根据多边形顶点的颜色值进行光滑插值,计算内部每点的颜色值,使得物体表面看...
//使用双缓存 使用深度缓存。 glutInitWindowSize(480, 480); glutCreateWindow("OpenGL颜色立方体"); glutReshapeFunc(reshape); //窗口改变的时候调用的函数 glutDisplayFunc(display); glutSpecialFunc...
与 `myleaf()` 不同的是,`myleaf2()` 使用了不同颜色的线段来模拟脉络的深浅变化,通过 `glColor3f()` 设置不同的黄色调。 总结起来,`myleaf()` 和 `myleaf2()` 通过MFC结合OpenGL,利用基本的几何形状和颜色设定...
`glClear`函数清空颜色缓冲区,`glBegin`和`glEnd`标志着顶点序列的开始和结束,`glShadeModel`设置明暗处理模式,`glColor3f`定义顶点颜色,`glVertex2f`定义顶点位置。 - `myReshape`函数处理窗口大小改变的事件...
在这个实例中,Nehe会介绍如何设置顶点颜色、启用和禁用颜色混合,以及如何使用OpenGL的`glShadeModel()`函数来切换着色模式,`GL_SMOOTH`对应光滑着色,而`GL_FLAT`对应平面着色。 在学习这个实例时,开发者会接触...
4. **颜色模型**:颜色模型是定义颜色的方式,实验中使用了OpenGL的glColor3f函数来设置颜色,通过GL_QUADS等函数绘制多边形,并使用颜色填充。 5. **纹理模型**:纹理贴图可以增强3D模型的表面细节,通过加载位图...
熟悉使用MFC及OPENGL。 2、基本要求: 要求一:利用glShadeModel实现不同的明暗处理(GL_Smooth对应于Gourand明暗处理)。 要求二:利用glMaterial*定义材质属性。 要求三:利用glLight*定义光源属性。 要求四:理解...
我们使用 `glColor3f(r, g, b)` 函数来设定当前颜色,参数r、g、b分别代表红色、绿色和蓝色的分量,范围在0.0到1.0之间。 在OpenGL中,坐标系统是以屏幕中心为原点的,x轴向右,y轴向上,z轴指向观众。正负值表示...
- `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...
**glColorMask**: 设置颜色写掩码。 - **功能描述**:控制颜色缓冲区写入时的掩码,可以分别控制红绿蓝阿尔法通道。 **glDepthMask**: 设置深度写掩码。 - **功能描述**:控制深度缓冲区写入时的掩码。 **...
- `glColor3f()`: 设置线条颜色,如`glColor3f(1, 0, 0)`设置为红色。 - `glVertex2f()`: 定义线条的顶点坐标,如`glVertex2f(50, 50)`定义一个位于(50, 50)位置的顶点。 以下是一个简单的Delphi代码示例,展示了...
- **`glIndexMask`**与**`glColorMask`**:控制颜色和索引缓冲区的写入掩码。 - **`glDepthMask`**与**`glStencilMask`**:控制深度和模板缓冲区的写入掩码。 #### Alpha与模板测试 - **`glAlphaFunc`**:设置基于...
我们可以使用glShadeModel函数选择平滑着色或flat着色。平滑着色会使得球体表面颜色过渡自然,而flat着色则在每个三角面片上保持单一颜色。 最后,我们绘制球体。可以使用glDrawArrays或glDrawElements函数,传入...
`glColor3f`定义顶点颜色,`glVertex2f`设置顶点坐标。`glFlush()`确保所有OpenGL命令立即执行,而不是延迟到后续操作。 `myReshape`函数是窗口重塑回调函数,当窗口尺寸改变时被调用。它使用`glViewport`设定视口...
`glColor`函数允许设定当前颜色,而`glColorPointer`则定义颜色数组,批量设置颜色信息。对于颜色索引模式,`glIndex`用于设置当前颜色索引,`glIndexPointer`定义颜色索引数组。`glColorTableEXT`和`...
**`glColor`**:设置当前颜色。在绘制图形时,如果未指定其他颜色,则会使用此颜色。 **`glColorPointer`**:定义一个指向颜色数据的指针。这对于批量处理顶点颜色特别有用,可以减少每次调用时的参数重复。 **`...