opengl 指定着色模型

OpenGL允许为同一多边形的不同顶点指定不同的颜色。例如:
#include <math.h>
const GLdouble Pi = 3.1415926536;
void myDisplay(void)
{
     int i;
     // glShadeModel(GL_FLAT);
     glClear(GL_COLOR_BUFFER_BIT);
     glBegin(GL_TRIANGLE_FAN);
     glColor3f(1.0f, 1.0f, 1.0f);
     glVertex2f(0.0f, 0.0f);
     for(i=0; i<=8; ++i)
     {
         glColor3f(i&0x04, i&0x02, i&0x01);
         glVertex2f(cos(i*Pi/4), sin(i*Pi/4));
     }
     glEnd();
     glFlush();
}
在默认情况下,OpenGL会计算两点顶点之间的其它点,并为它们填上“合适”的颜色,使相邻的点的颜色值都比较接近。如果使用的是RGB模式,看起来就具有渐变的效果。如果是使用颜色索引模式,则其相邻点的索引值是接近的,如果将颜色表中接近的项设置成接近的颜色,则看起来也是渐变的效果。但如果颜色表中接近的项颜色却差距很大,则看起来可能是很奇怪的效果。
使用glShadeModel函数可以关闭这种计算,如果顶点的颜色不同,则将顶点之间的其它点全部设置为与某一个点相同。(直线以后指定的点的颜色为准,而多边形将以任意顶点的颜色为准,由实现决定。)为了避免这个不确定性,尽量在多边形中使用同一种颜色。
glShadeModel的使用方法:
glShadeModel(GL_SMOOTH);    // 平滑方式,这也是默认方式
glShadeModel(GL_FLAT);      // 单色方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenGL是一个图形渲染库,它提供了一组函数和工具来创建和渲染2D和3D图形。在使用OpenGL绘制3D模型时,可以使用.obj文件格式来描述模型的几何信息和纹理坐标。 要在OpenGL中绘制.obj模型,需要进行以下步骤: 1. 解析.obj文件:使用文件读取操作打开.obj文件,并逐行读取文件内容。解析文件的每一行,提取顶点坐标、法线向量、纹理坐标等信息,并将其存储在对应的数据结构中,如顶点数组、法线数组、纹理坐标数组等。 2. 创建顶点缓冲对象(VBO):使用OpenGL的VBO机制,将顶点数据存储在显存中,以提高渲染性能。通过调用glGenBuffers、glBindBuffer和glBufferData等函数,创建和绑定VBO,并将解析得到的顶点数据传递给VBO。 3. 创建顶点数组对象(VAO):使用OpenGL的VAO机制,将顶点属性与VBO进行关联。通过调用glGenVertexArrays、glBindVertexArray、glVertexAttribPointer和glEnableVertexAttribArray等函数,创建和绑定VAO,并指定顶点属性的格式和位置。 4. 绘制模型:在渲染循环中,通过调用glDrawArrays或glDrawElements等函数,使用VAO和VBO绘制模型。可以使用不同的着色器程序来实现光照、纹理等效果。 这只是一个简单的概述,具体实现过程需要根据你的具体需求和使用的编程语言进行调整。你可以参考OpenGL的文档和示例代码,以及相关的教程和资料来详细了解如何在OpenGL中绘制.obj模型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值