游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5561|回复: 12

雾的bug怎么解决

[复制链接]

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
发表于 2012-3-17 15:22:00 | 显示全部楼层 |阅读模式
被屏幕切了一半的三角形总是变成雾的最深颜色,就是图片下面白色的地方,
修改为:GL_NICEST - 对每个像素执行雾效计算(效果好)也一样.
有什么办法,哥哥教教我?

GLfloat fogColor[4]= {0.76f, 0.82f, 8.5f, 1.0f};        // 雾的颜色设为白色       
glFogi(GL_FOG_MODE, GL_LINEAR);        // 设置雾气的模式
glFogfv(GL_FOG_COLOR, fogColor);            // 设置雾的颜色
glFogf(GL_FOG_DENSITY, 1.0f);            // 设置雾的密度
glHint(GL_FOG_HINT, GL_NICEST);            // 设置系统如何计算雾气
glFogf(GL_FOG_START, 0.995f);
glFogf(GL_FOG_END,1.0f);








33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

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

Re:雾的bug怎么解决

- -!
由于你的模型的部分区域(画面中缺的那个三角形哈)在近裁切面之前了,所以进PIXCEL SHADER的时候直接被着色器干掉了,就少了这一块咯(你就直接看到底色了)
cullmode = none
估计可以,不能保证正确
另外的办法么,就把地形模型做细点
当然也可以改摄像机的投影矩阵 把zn改成0.001什么滴,
喵喵,每一种方法都是有代价的

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
 楼主| 发表于 2012-3-20 17:40:00 | 显示全部楼层

Re:雾的bug怎么解决

哦,谢谢,你神人啊,我都试试,弄出来就告诉你.
不过我想这样的问题肯定每个人都会遇到的,怎么网上没人提这个问题呢.

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
 楼主| 发表于 2012-3-20 19:24:00 | 显示全部楼层

Re:雾的bug怎么解决

我试过了,我想应该不对。
我想应该是两边都有雾,屏幕往里有雾--那是对的
              但是屏幕往外也有雾---问题就在这里

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2012-3-20 21:05:00 | 显示全部楼层

Re:雾的bug怎么解决

GL固定管线
好古朴啊
估计这里没几个人还记得这个了

nehe有一课讲雾的 lz可以搞来看看效果 对对参数

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
 楼主| 发表于 2012-3-20 21:17:00 | 显示全部楼层

Re:雾的bug怎么解决

大哥能这么说,很明显就是高手了,我想你一定知道为什么!快教教我不古朴的怎么做?

nehe的两个雾的课我都看了,我还是看不出我问题在那里。
但是有个疑问,为什么我的最远和最近距离必须是0.0到1.0才能正常控制雾:
glFogf(GL_FOG_START, 0.995f);
glFogf(GL_FOG_END,1.0f);
别人的例子都可以是不是0.0f到1.0f之间

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2012-3-21 12:22:00 | 显示全部楼层

Re:雾的bug怎么解决

高手不敢 古朴亦好

在处理雾时 顶点应在视空间的
但看前描述  你的顶点已经在投影空间了
近处顶点z为负 雾函数一减它就出最大值



95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
 楼主| 发表于 2012-3-21 16:04:00 | 显示全部楼层

Re:雾的bug怎么解决

在您的提示下已经解决了,是我一直都搞错了,这样写才对
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(65.0f,g_S.Aspect,1.0f,1000);       
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
我之前写成这样了
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();       
           glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        gluPerspective(65.0f,g_S.Aspect,1.0f,1000);
       

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
 楼主| 发表于 2012-3-21 16:41:00 | 显示全部楼层

Re: Re:雾的bug怎么解决

既然问题解决了,就发几个图来庆祝一下,一向我都很低调的,今天高兴了就晒图吧.
所有地形随机生成的,树也是随机种的,同一个地点种的永远都一样。只需要大自然造化中,选取合适的地点,添加上特殊物品即可.

为了测试效果,界面都隐藏了,装备栏属性等都暂时隐藏.












33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2012-3-21 17:16:00 | 显示全部楼层

Re:雾的bug怎么解决

固定管线也能用骨骼动画?
喵喵,偶从一开始就放弃固定管线了,所以真的很惊异能做出这样的效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-25 16:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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