游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3756|回复: 8

问:如何在在有材质的模型上面加颜色

[复制链接]

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-4-21 11:19:00 | 显示全部楼层 |阅读模式
在opengl三维显示中,我通过三角片构建了头脑模型,然后加上
材质色和光照.头显示材质色和光照的RGB乘积.
    现在的问题是,我想显示每个三角片的本身颜色,不用材质颜色
但又不想屏蔽光照,有办法么???
    或者变通一种方式:
    我的目的是在头脑的活动区域颜色显示和非活动区域中区别开
来(已知活动区三角片的索引号),即是所谓的三维地形图显示.
    有弟兄知道吗,麻烦指点...
    具体怎么做啊??????
   
下面就是想要的结果~
sf_2006421111831.jpg

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-21 11:23:00 | 显示全部楼层

Re: 问:如何在在有材质的模型上面加颜色

晕,一次只能帖一张图?

这是我加了材质和光照以后的效果,已经全部覆盖了模型中
三角片本身的颜色。。。
sf_2006421112239.jpg

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-21 11:32:00 | 显示全部楼层

Re: 问:如何在在有材质的模型上面加颜色

晕,上个图帖错了,是下面着个图。。

上面的图就是我关闭光照后,头模型显示了每个三角片本身的颜色,
但是没有实体感,因此不够美观。

所以
我的目的是在具有实体感的三维模型中加入一些信号
变换的颜色,使看起来更美观。。

请各位高手帮帮忙~
sf_2006421113148.jpg

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-21 12:49:00 | 显示全部楼层

Re:问:如何在在有材质的模型上面加颜色

没人么?????????

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-21 15:16:00 | 显示全部楼层

Re:问:如何在在有材质的模型上面加颜色

我晕哦,人气不旺哇?

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-21 15:21:00 | 显示全部楼层

Re:问:如何在在有材质的模型上面加颜色

我要疯了,没有人来看。。。。
郁闷。。。。。。。。。。。

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-24 10:32:00 | 显示全部楼层

Re:问:如何在在有材质的模型上面加颜色

没人回答说。。。

1

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-4-28 10:47:00 | 显示全部楼层

Re:问:如何在在有材质的模型上面加颜色

疯了,没人响应啊???

5

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2006-4-29 10:21:00 | 显示全部楼层

Re: 问:如何在在有材质的模型上面加颜色

可以为特殊的面片改变材质属性
glPushAttrib(GL_LIGHTING_BIT);
    glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, shinness );
    glMaterialfv(GL_FRONT, GL_EMISSION, emission);
    draw_the_special_triangle();
glPopAttrib();
ambient....等是你需要的颜色分量数组。用glPushAttrib(GL_LIGHTING_BIT); glPopAttrib();为了保存当前的材质属性,画完特殊的面片后就会恢复原来的材质属性,对其他部分没有影响。

或者你可以只更改某一颜色分量,就可以达到更改面片颜色的目的,可以这样:
glColorMaterial(GL_FRONT, GL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glColor3f(0.2, 0.5, 0.8);           //你要修改的分量就变成这个值
/* draw some objects here */
glColor3f(0.9, 0.0, 0.2);           //你要修改的分量就变成这个值
/* draw other objects here */
glDisable(GL_COLOR_MATERIAL);
一般来说diffuse值的改变对物体颜色的影响最大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 08:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表