社区
游戏开发
帖子详情
有自己生成LIGHTMAP的吗?
littlepig_2002
2004-08-16 09:28:09
多边形上的光照值是在3D空间中生成的吗? 如何将3D空间中生成的光照值映射到LIGHTMAP中? 多少个多边形共用一个LIGHTMAP? 有没有相关的文章?
...全文
447
10
打赏
收藏
有自己生成LIGHTMAP的吗?
多边形上的光照值是在3D空间中生成的吗? 如何将3D空间中生成的光照值映射到LIGHTMAP中? 多少个多边形共用一个LIGHTMAP? 有没有相关的文章?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
铜戈
2004-08-19
打赏
举报
回复
littlepig_2002(小朱) :
是得,我实现了一个lightmap生成器,如果说纯粹的研究技术前后共花了1个多月得时间吧。但是如果包括其他部分,比如引擎的和lightmap相关的基础设施,编辑器等等。最终可以实用的版本共花了4个月左右的时间。这还不包括后来的测试和维护。不过这是我第一次做lightmapper。如果以前有过相关经验,可能花的时间会少些。
bopengbopeng
2004-08-19
打赏
举报
回复
lightmap一般都是用radiosity生成的。
ajn_sailing
2004-08-17
打赏
举报
回复
up
寻开心
2004-08-16
打赏
举报
回复
常用的lightmap都是预先计算好的。
要自己计算lightmap就比较麻烦,需要使用类似光线跟踪或者是辐射度的算法按照光照计算的模式来生成的。
寻开心
2004-08-16
打赏
举报
回复
以前测试的时候,做过一个简单的
光线跟踪算法本身并不复杂
它是可以设计成为并行模式的算法的
光线跟踪的速度受场景复杂程度影响很大,因为要不段进行相交计算,反射,折射,光照等计算,这些都很耗时间。
速度的快慢还要受代码优化程度的影响,直线和各种曲线,曲面,包围盒等等相交的快速计算公式的优化很重要,直接影响到速度
光线跟踪理论上再写论文的机会不大,因为已经发展了几十年,是非常成熟的技术了。
lightmap技术本来就是预先计算的光照效果图替代实时渲染的效果的手段,lightmap图生成的精度和速度是多方面因素决定,也不一定很慢,看复杂程度了。
大多数是不会实时计算的,但是不是说就不能进行实时计算,看具体的需求了。
littlepig_2002
2004-08-16
打赏
举报
回复
楼上的老兄实现了自己的光照图生成器了吗? 大概用了多长时间?
有没有写过光线跟踪论文的老兄, 用了多长时间.
铜戈
2004-08-16
打赏
举报
回复
happy__888([顾问团]寻开心):
lightmap没有实时算的,都是预计算然后使用的。所以效率对最终游戏来说效率主要是由lightmap大小,lightmap量来决定的,还有就是使用了lightmap会增加传输率,因为原来模型很多共享顶点的三角形需要复制共享顶点。
另外max的Render To texture是生成lightmap的一个很不错的办法,不过也有它的限制,他生成的贴图对于最终渲染来说不一定是最优的,很可能浪费很多的贴图空间,所以国外有很多引擎都是自己计算lightmap的。不过这个要看具体需要,能使用是最好的办法。
littlepig_2002(小朱):
没错
一般使用了lightmap就不太会使用phone 等局部光照的算法了,因为反正是预计算,一般都是用效果更好的全局光照算法,如辐射度。raytracer的化据我所知至少max里面的算法是视角相关的,不能用来渲染lightmap,不知道有没有其他的视角无关的光线跟踪算法。辐射度是使用的最多的生成lightmap的算法了。
如果你是第一次接触lightmap不妨试试用max来生成lightmap。不然就准备投入大量的精力和时间来做一个自己的lightmapper吧。
littlepig_2002
2004-08-16
打赏
举报
回复
不错.
是不是3D中生成表面上一个点的颜色值使用图形学中介绍的算法. 比如像PHONG, 光线跟踪之类的? 只不过生成LIGHTMAP是将这些计算出来的光照值存放TEXTURE中?
寻开心
2004-08-16
打赏
举报
回复
还有一个办法,是可以利用max6建模,同时在其中指定光照,利用max的特性,可以把渲染效果作为贴图输出成为lightmap贴图,实质上就是关闭d3d的光照计算,直接用max渲染出来的效果来使用了。
无论是光线跟踪还是辐射度算法,生成光照贴图的计算量都是非常庞大的,不是实时游戏或者是程序的有效手段。
铜戈
2004-08-16
打赏
举报
回复
是的,是在3D空间中计算出来的。一般是将贴图的一个象素映射到3D空间中计算它的光照,而不是反过来。
自己计算lightmap最困难的步骤其实就在从uv空间转换到世界空间,还有就是生成的每个多边形的lightmap的pack问题。
第一个问题的相关文章还是不少的
这里有一篇介绍的比较详细
http://www.flipcode.com/articles/article_lightmapping.shtml
delphi3d上还有一篇介绍辐射度渲染lightmap的文章,这片文章同时也介绍了如何uv-》world的转换算法和原理,讲的比较简洁。
http://www.flipcode.com/articles/article_lightmapping.shtml
关于第二个问题,目前我只看到一篇文章,他使用类似2维空间bsp的方法来将生成的lightmap紧凑的拼在一张贴图上(或者几张)
http://www.blackpawn.com/texts/lightmaps/default.html
Light
map
shader (glsl)
用于
生成
light
map
的shader,用glsl编写
Unity3D之
Light
map
入门
一个比较基础的烘培,但有别于U3D内部烘焙。
light
map
_interior_test:three.js光照贴图内部测试
一个简单的three.js演示场景,其中测试了使用插件
Light
map
per在Blender中
生成
的光照贴图。 通过对环境地图进行盒子投影,可以实现地面反射。 环境地图也是在Blender中
生成
的。 场景和纹理使用gltfpack和basicu压缩。...
辐射度光照图
生成
器for open scene graph DEMO 代码
辐射度
生成
器,包括示例代码和面向open scene graph的动态链接库
Urho3D-
Light
map
:基于Hugo Elias的辐射度的Urho3D光照图
生成
器
基于Hugo Elias的辐射性的Urho3D光照图
生成
器。 与您遇到的典型的Hugo实现不同,此实现经过简化并使用蛮力像素处理方法,并使用半球而不是半立方体。 使用Urho3D的技术,间接照明过程非常Swift,默认场景在约5秒钟内...
游戏开发
8,304
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章