游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5137|回复: 11

请问问使用 per-vertex lighting 后,为什么物体还看上去不平滑

[复制链接]

21

主题

125

帖子

135

积分

注册会员

Rank: 2

积分
135
QQ
发表于 2006-3-19 12:59:00 | 显示全部楼层 |阅读模式
请问问使用 per-vertex lighting 后,为什么物体还看上去不平滑.

[VP]-----------------------------------
attribute vec4 position;
attribute vec3 normal;

varying vec4 color;

void main(void)
{
  vec3 P = vec3(gl_ModelViewMatrix * position);
  vec3 L = normalize((gl_LightSource[0].position.xyz)-P);

  vec3 N = normalize(gl_NormalMatrix * normal);
  vec3 E = normalize(-P);
  vec3 H = normalize(E+L);

  vec4 Idiff = vec4(0.7, 0.7, 0.7, 0.7) * max(dot(N,L), 0.0);
  vec4 Ispec = vec4(0.7, 0.7, 0.7, 0.7) * pow(max(dot(N,H),0.0), 32);
  
  color =  gl_FrontLightModelProduct.sceneColor + Idiff + Ispec;

  gl_Position = gl_ModelViewProjectionMatrix * position;
}

[FP]--------------------------------------
varying vec4 color;
void main (void)
{
       gl_FragColor= color;
}

我试使用glShadeModel(GL_SMOOTH);,但图片看上去就不平滑,请大家指点一下.



sf_200631912594.jpg

0

主题

65

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2006-3-19 13:27:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

法线没有做好

21

主题

125

帖子

135

积分

注册会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2006-3-19 13:56:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

谢谢你的提示,我现在知道问题的关键所在了,主要是由于我使用了三角形的法线,正确是要使用顶点的法线.
但我这里有个问题,顶点法线怎么能计算出来呢???
能不能说说关键的步骤,非常感谢!!!

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2006-3-19 16:19:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

把所有该点所连接的三角形的法线相加就好了

21

主题

125

帖子

135

积分

注册会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2006-3-19 22:06:00 | 显示全部楼层

Re: 请问问使用 per-vertex lighting 后,为什么物体还看上去不

哈哈,我终于完成了想要的功能.
其实我不是因为顶点法线不会求出来,而是我求了出来用得不当.嗯嗯

在这里捕捉我完成功能的图给大家看看.
[em20] [em2]
sf_200631922542.jpg

21

主题

125

帖子

135

积分

注册会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2006-3-19 22:06:00 | 显示全部楼层

Re: 请问问使用 per-vertex lighting 后,为什么物体还看上去不

-.-!
sf_200631922614.jpg

8

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2006-3-20 10:16:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

什么是  gloos map???

谢谢!

21

主题

125

帖子

135

积分

注册会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2006-3-20 15:17:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

哈哈,不小心打错了,其实是: gloss map

gloss map 意思就是光泽贴图,它会使物体表面发出高光.那么就具有金属感.感觉
还有一中是 Specular Map 反射贴图,他们一起使用的话,那么就是高光反射贴图 .

Doom 3又加入Specular Map. 与Gloss Map,来调整物体的表面各. 处不同的反射程度, 进而提升整个质. 感。

有兴趣的朋友交流一下.
QQ: 444163200
MSN:GreenLitchi@163.com
Email:GreenLitchi@163.com

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-3-21 09:10:00 | 显示全部楼层

答案

“但我这里有个问题,顶点法线怎么能计算出来呢???”

答案是:
glNormal3f(x,y,z);//x,y,z就是球上的一个顶点的x,y,z。

11

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2006-8-21 01:23:00 | 显示全部楼层

Re:请问问使用 per-vertex lighting 后,为什么物体还看上去不

法线给的不对
计算正确的法线就是一个点邻接面的面法线的平均
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 04:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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