游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2751|回复: 4

小鸟求助~~关于OpenGL中Blinn-Phong的问题

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-10-27 13:53:00 | 显示全部楼层 |阅读模式
小弟初学OpenGL不久,最近在做一个东西的时候遇到一些问题,请教各位达人:)

我现在做的工作是:
               1.从模型文件中读出所有三角形面片的顶点坐标
               2.通过顶点坐标计算出三角形面片的法线
               3.再通过每个三角形面片的法线求出每个顶点的法线
               4.绘制

基本思路就是(从网上找到的:P)
        Loop1:
        foreach triangle
          n = computeNormalofTri(triangle);
      for i = 0 to 2
         triangle.point.normal += n;


        Loop2:
        foreach point
              Normalize( point.normal);

       附上绘制代码:
           for(m=0;m<triangle_loop.size();m++)
        {       
                glBegin(GL_TRIANGLES);
                for(n=0;n<3;n++)
                {
                        //规范化法线
                        triangle_loop[m].p[n].VertexNormal = Normalize(triangle_loop[m].p[n].VertexNormal);
                       
                        //设置法线
                        glNormal3f(triangle_loop[m].p[n].VertexNormal.x,
                                       triangle_loop[m].p[n].VertexNormal.y,
                                       triangle_loop[m].p[n].VertexNormal.z);
                        //绘制点
                        glVertex3f((float)triangle_loop[m].p[n].x,(float)triangle_loop[m].p[n].y,(float)triangle_loop[m].p[n].z);
                }
                glEnd();
        }

但是绘制出来的效果不是很满意阿。。。。。如附件中的图片(总之就是有很强的鳞片状的感觉),我希望
能够做出平滑的光照效果。

       几点说明:1.我已经开启了glShadeModel(GL_SMOOTH);
                 2.法线已经正确的单位化过了

       我的问题就是:
                1.小弟在网上看到有人说OpenGL默认实现了Blinn-Phong,那我这样做OpenGL会替我为法线先插值再进行
                  光照计算么?(我估计不是吧。。效果这么烂)

                2.需要我们自己来对法线插值么?怎么做?(我在网上找了,好像没有找到,至于一些图形学
                  的书籍,上面也只有理论上的做法),希望做过的或者有经验的朋友指导一下 :)
                 
                3.我这个问题需要用shading language来做么?(小弟只是大概了解过,没有学过)

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-10-27 14:31:00 | 显示全部楼层

Re:小鸟求助~~关于OpenGL中Blinn-Phong的问题

你得到这样的画面,不是很正常吗?
你想要什么?
你是不是想要更加“柔和”的?

修改材质吧!
把“环境光”和“反射光”调高,把“镜面反射光”调低或调零。

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2010-10-27 15:02:00 | 显示全部楼层

Re:小鸟求助~~关于OpenGL中Blinn-Phong的问题

把specular调低的确可以柔和一些,但是表面"鳞片"状的样子还是存在..我刚刚试了一下
不知道有什么办法可以解决这个问题呢?
万分感谢!

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2010-10-27 22:56:00 | 显示全部楼层

Re:小鸟求助~~关于OpenGL中Blinn-Phong的问题

shader

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2010-10-28 13:06:00 | 显示全部楼层

Re:小鸟求助~~关于OpenGL中Blinn-Phong的问题

想问一下除了用Shader没有其他的办法了么?
十分感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 08:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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