游戏开发论坛

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

有关如何用引擎的光来模拟上、中、下、晚上等效果

[复制链接]

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
发表于 2011-8-8 13:11:00 | 显示全部楼层 |阅读模式
[em17]

   要做个用NeL引擎的光照系统来做一个能表现上午、中午、下午、傍晚、晚上的效果的小程序。。。


我不知道该如何下手~~~求大侠讲解下采用哪种方法或者原理来模拟这种变化的光照效果(应该还会涉及到很多参数问题吧),那个引擎的光照系统感觉根OPENGL这些都差不多,只是封装了一层而已。。。



[em4] [em4]强烈求解~~~或者给点什么建议

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-8 14:37:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

求解释啊~~~~

    大概说下也好啊,我的想法是:写一个时间类(game_time)来获取delta time,然后给光的的参数设置为变量,然后根据时间来实现变化。。。。

但是我这样貌似效果不明显啊,求程序大侠的解释。。。

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-8-8 20:29:00 | 显示全部楼层

Re: 有关如何用引擎的光来模拟上、中、下、晚上等效果

夜晚的效果可以用FOG把雾的颜色设置为接近黑色,就会有黑夜的感觉。其他时间段,我认为可以用一个较亮的点光源模拟太阳,再配合FOG来实现。未亲测,慎用。

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-9 11:36:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

我试试

0

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2011-8-10 21:32:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

一般是分开渲染的,场景白天一种贴图,晚上一种贴图。

因为渲场景light map计算量比较大,一般是离线的。

如果要做到场景实时渲染,算法对显卡要求比较高,而且实现起来很有难度。

所以放弃吧别想了。。

不过如果不是写实系的可以用ambient light, fog, 天空唬弄下。虽然效果不会太好

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-11 10:13:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

我遇到一个问题是:我把一天划分为:Day DayToNight Night NightToDay几个阶段,但是不想按系统时间来变换,如何写一个自己世界的时间来监控呢?   比如:我的               
                RealDayLength = 300;
                NumHours = 24;
                NightTransitionStartHour = 19;
                NightTransitionEndHour = 21;
                DuskRatio = 0.5;
                DawnTransitionStartHour = 5;
                DawnTransitionEndHour = 7;
                MaxNumColorSteps = 128;
一天就是=300秒=5分钟。。

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2011-8-11 16:50:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

const int DAY = 300000;
float ambient = sinf( (GetTickCount()%DAY)/float(DAY)  * 3.14159265358979323846f * 2 );

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-11 16:57:00 | 显示全部楼层

Re: Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

ZombieMKII: Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

const int DAY = 300000;
float ambient = sinf( (GetTickCount()%DAY)/float(DAY)  * 3.14159265358979...


俺试试

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-11 17:05:00 | 显示全部楼层

Re:有关如何用引擎的光来模拟上、中、下、晚上等效果

这个获取的abient,就是变化的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 13:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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