游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3280|回复: 7

如何产生金属材质、玻璃材质等..

[复制链接]

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2007-6-13 12:24:00 | 显示全部楼层 |阅读模式
谁知道这些设置的具体参数,给贴一份看看,谢谢了

我是建了一个模型,想通过设置灯光&材质实现特殊物件效果

谢谢高手!

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2007-6-13 12:53:00 | 显示全部楼层

Re: 如何产生金属材质、玻璃材质等..


我要问的就是材质和光照设哪些数,能使得模型渲染出来像玻璃、像金属...

(不贴纹理!)

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-13 12:55:00 | 显示全部楼层

Re: 如何产生金属材质、玻璃材质等..

GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);

效果请看附件DEMO。
按X,Y,Z可以绕轴旋转。

sf_2007613125528.rar

19.53 KB, 下载次数:

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2007-6-13 13:17:00 | 显示全部楼层

Re: Re: 如何产生金属材质、玻璃材质等..

snhun: Re: 如何产生金属材质、玻璃材质等..

GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specul...


很漂亮啊^_^
opengl实现的?能贴代码给我看看吧?谢谢

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-14 02:04:00 | 显示全部楼层

Re:如何产生金属材质、玻璃材质等..

//设置光源
        glEnable(GL_LIGHT0);
        glEnable(GL_LIGHTING);

        GLfloat ambient[4]={1.0f,1.0f,1.0f,1.0f};//设置环境光
        glLightfv(GL_LIGHT0,GL_AMBIENT,ambient);

        GLfloat diffuse[4]={1.0f,1.0f,1.0f,1.0f};//设置反射光
        glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse);

        GLfloat specular[4]={1.0f,1.0f,1.0f,1.0f};//设置镜面光
        glLightfv(GL_LIGHT0,GL_SPECULAR,specular);

        GLfloat position[4]={0.0f,0.0f,-3.0f,1.0f};
        glLightfv(GL_LIGHT0,GL_POSITION,position);//设置光源坐标
/*
        GLfloat spot_direction[4]={0.0f,0.0f,-1.0f};//聚光
        glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spot_direction);
        glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,8.0f);
        glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,90.0f);

        glLightf(GL_LIGHT0,GL_CONSTANT_ATTENUATION,0.0f);//光照衰件因子常量c
        glLightf(GL_LIGHT0,GL_LINEAR_ATTENUATION,0.0f);//光照衰件因子常量l
        glLightf(GL_LIGHT0,GL_QUADRATIC_ATTENUATION,1.0f);//光照衰件因子常量q, light=1(c + ld + qdd)
*/
//设置材质
        GLfloat maanbient[]={0.2f,0.2f,0.2f,1.0f};
        GLfloat madiffuse[]={0.5f,0.5f,0.5f,1.0f};
        GLfloat maspecular[]={1.0f,1.0f,1.0f,1.0f};
        GLfloat maemi[4]={0.0f,0.0f,0.0f,1.0f};//幅射

        glMaterialfv(GL_FRONT,GL_AMBIENT,maanbient);
        glMaterialfv(GL_FRONT,GL_DIFFUSE,madiffuse);
        glMaterialfv(GL_FRONT,GL_SPECULAR,maspecular);
        glMaterialf(GL_FRONT,GL_SHININESS,128.0f);//亮度
        glMaterialfv(GL_FRONT,GL_EMISSION,maemi);//幅射

//光照模型
        GLfloat mma[4]={0.3f,0.3f,0.3f,0.3f};
        glLightModelfv(GL_LIGHT_MODEL_AMBIENT,mma);

        glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);

//自动法线
        glEnable(GL_AUTO_NORMAL);
        glEnable(GL_NORMALIZE);

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2007-6-14 08:48:00 | 显示全部楼层

Re:如何产生金属材质、玻璃材质等..

http://www.azure.com.cn/article.asp?id=121


Material Types

Material
GL_AMBIENT
GL_DIFFUSE
GL_SPECULAR
GL_SHININESS

Brass
(0.329412, 0.223529, 0.027451, 1.0)
(0.780392, 0.568627, 0.113725, 1.0)
(0.992157, 0.941176, 0.807843, 1.0)
27.8974

Bronze
(0.2125, 0.1275, 0.054, 1.0)
(0.714, 0.4284, 0.18144, 1.0)
(0.393548, 0.271906, 0.166721, 1.0)
25.6

Polished Bronze
(0.25, 0.148, 0.06475, 1.0)
(0.4, 0.2368, 0.1036, 1.0)
(0.774597, 0.458561, 0.200621, 1.0)
76.8

Chrome
(0.25, 0.25, 0.25, 1.0)
(0.4, 0.4, 0.4, 1.0)
(0.774597, 0.774597, 0.774597, 1.0)
76.8

Copper
(0.19125, 0.0735, 0.0225, 1.0)
(0.7038, 0.27048, 0.0828, 1.0)
(0.256777, 0.137622, 0.086014, 1.0)
12.8

Polished Copper
(0.2295, 0.08825, 0.0275, 1.0)
(0.5508, 0.2118, 0.066, 1.0)
(0.580594, 0.223257, 0.0695701, 1.0)
51.2

Gold
(0.24725, 0.1995, 0.0745, 1.0)
(0.75164, 0.60648, 0.22648, 1.0)
(0.628281, 0.555802, 0.366065, 1.0)
51.2

Polished Gold
(0.24725, 0.2245, 0.0645, 1.0)
(0.34615, 0.3143, 0.0903, 1.0)
(0.797357, 0.723991, 0.208006, 1.0)
83.2

Pewter
(0.105882, 0.058824, 0.113725, 1.0)
(0.427451, 0.470588, 0.541176, 1.0)
(0.333333, 0.333333, 0.521569, 1.0)
9.84615

Silver
(0.19225, 0.19225, 0.19225, 1.0)
(0.50754, 0.50754, 0.50754, 1.0)
(0.508273, 0.508273, 0.508273, 1.0)
51.2

Polished Silver
(0.23125, 0.23125, 0.23125, 1.0)
(0.2775, 0.2775, 0.2775, 1.0)
(0.773911, 0.773911, 0.773911, 1.0)
89.6

Emerald
(0.0215, 0.1745, 0.0215, 0.55)
(0.07568, 0.61424, 0.07568, 0.55)
(0.633, 0.727811, 0.633, 0.55)
76.8

Jade
(0.135, 0.2225, 0.1575, 0.95)
(0.54, 0.89, 0.63, 0.95)
(0.316228, 0.316228, 0.316228, 0.95)
12.8

Obsidian
(0.05375, 0.05, 0.06625, 0.82)
(0.18275, 0.17, 0.22525, 0.82)
(0.332741, 0.328634, 0.346435, 0.82)
38.4

Pearl
(0.25, 0.20725, 0.20725, 0.922)
(1.0, 0.829, 0.829, 0.922)
(0.296648, 0.296648, 0.296648, 0.922)
11.264

Ruby
(0.1745, 0.01175, 0.01175, 0.55)
(0.61424, 0.04136, 0.04136, 0.55)
(0.727811, 0.626959, 0.626959, 0.55)
76.8

Turquoise
(0.1, 0.18725, 0.1745, 0.8)
(0.396, 0.74151, 0.69102, 0.8)
(0.297254, 0.30829, 0.306678, 0.8)
12.8

Black Plastic
(0.0, 0.0, 0.0, 1.0)
(0.01, 0.01, 0.01, 1.0)
(0.50, 0.50, 0.50, 1.0)
32.0

Black Rubber
(0.02, 0.02, 0.02, 1.0)
(0.01, 0.01, 0.01, 1.0)
(0.4, 0.4, 0.4, 1.0)
10.0

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2007-6-14 16:34:00 | 显示全部楼层

Re: Re:如何产生金属材质、玻璃材质等..

谢谢!

snhun: Re:如何产生金属材质、玻璃材质等..

//设置光源
        glEnable(GL_LIGHT0);
        glEnable(GL_LIGHTING);

        GLfloat ambient[4]={1.0f,1.0f,1.0f,1....

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2007-6-14 16:35:00 | 显示全部楼层

Re: Re:如何产生金属材质、玻璃材质等..

谢谢

Devil: Re:如何产生金属材质、玻璃材质等..

http://www.azure.com.cn/article.asp?id=121


Material Types

Material
GL_AMBIENT
GL_DIFFUSE
...

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 03:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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