UE4 computing lightmap UV mapping in SpeedTree
2015-09-07 18:30
337 查看
Computing Lightmap UV Coordinates
In order to use static lighting (Lightmass) in UE4 you must compute a set of unwrapped UV coordinates for the model. This UV mapping is referred to as the lightmap for the model. Getting a good lightmap is one part science and one part art. The following stepsdetail how to go about computing lightmap UV mapping in SpeedTree.
Modeler lightmap and density on the left, lightmapped model in UE4 on the right
Step 1: Switch to lightmap density rendering mode
Using the “Render” toolbar button switch the rendering mode to “Lightmap density”. Your display should look like the one in the image below.This visualization shows how well your lightmap resolution is distributed across your model and is intended to closely match the same visualization mode in UE4 (“Show→Lightmap density”). Green sections of the model represent ideal density. Blue indicates that
the lightmap resolution is too low and may show artifacts when the lightmap is built in UE4. Red indicates the lightmap resolution is too high and is being wasted on that geometry.
The lightmap itself is rendered in the lower left hand corner. Select part of the model to see where it is represented in the lightmap. You can also select triangles in the lightmap to see which part of the model they come from. You want to use as much of the
lightmap as possible, with big sections of the model getting big sections of the lightmap. More on how to achieve that later.
Note: The units of the model matter in the visualization. Select the “Tree” generator and edit “Lightmap:Scale” to scale the model by the same amount you will in UE4 when you import it. The default value here matches the default value of the
importer.
Note: You can change how large the lightmap is rendered in the viewport by editing the corresponding property in the “Window properties”.
Step 2: Pick a lightmap resolution
The resolution of the lightmap is dependent on your project's requirements and the complexity of the tree. The goal is to use the lowest possible lightmap resolution that gives you adequate coverage given the model's placement in your scene.Set the target lightmap resolution by selecting the “Tree” generator and editing the “Lightmap:Resolution” property. It may be possible that the model is too complex to fit in the resolution you've chosen. If so, you'll get a warning in the output window and
the resolution will be bumped to the smallest resolution that will give each node in the model at least one texel in the lightmap while maintaining the one texel border necessary to prevent rendering artifacts.
The property “Lightmap:Display multiplier” will show the lightmap density for resolutions the same or larger than the target resolution. Use this option to pack the uvs into a smaller resolution map and preview what larger resolution maps would look like with
that packing. This approach allows you to pack the lightmap uvs into a small space (as may be required for applications such as painted instances) and still experiment with higher resolutions.
Step 3: Tune the lightmap
Once you've picked a resolution the next step is to tune how the lightmap is distributed across the model to make sure the parts of the model that need the most density have it. In general, you'll want the most density in the trunk, low branches, and roots.This is the area most often seen by the player and the most prone to obvious artifacts if the density is too low. Leaves often have to have comparitively low density to fit the model in a reasonably small lightmap.
Use a combination of the following tools to tune the lightmap density distribution:
Reset. Select “Tools→Reset lightmap” to set all lightmap scalars to 1.0 except the leaves. They are set to 0.0 so that each leaf gets exactly one texel and no more to start
with (we'll up that later).
Material Scales. Each material has a property called “Unwrap scale”. Increase or decrease this value to change the relative size of each piece of geometry that uses this material
(very useful for caps).
Generator/Node Scales. Each generator/node combination that can house geometry has a “Lightmap:Scale” property. Change this value to change the size of the selected object's
space in the lightmap. The distribution curve on branches can be used to shift the distribution of lightmap space on the object itself (without changing the actual lightmap area used). This curve is used to counteract the fact that branch lightmap density
naturally increases near the tip as the geometry narrows but uses the same texture space.
Lightmap Resolution. If you just can't make it work well in the resolution you've selected, you may need to bump it up by selecting a higher resolution like you did in Step
2. The layout will drastically change so you may need to do a reset and start over if it comes to this.
Note: You can go into node editing mode and scale
up individual branches, fronds, and leaves to tackle particularly troublesome areas.
Best Practice: Keep the leaves at zero until the branches are good. Then scale up the leaves to fill in all of the empty space.
Our algorithm aggressively tries to fit everything in the resolution you've selected. If you scale once component up so large that not everything will fit, the algorithm will adjust and change sizes to make it fit. If this happens you may suddenly lose density
where it was fine before. This effect can be counteracted by lowering the scale you just edited to get it back in range.
Step 4: Pick the lightmap resolution in UE4
When you import the model in UE4 it will have a default lightmap resolution of 128 like all static meshes. Select the mesh asset and enter the ligthmap resolution you used here. When you build lighting in UE4, you should have amazing results on some of thehardest types of geometry to lightmap!
相关文章推荐
- 正反方向传值及打地鼠游戏的实现
- quick-cocos2d-x基于源码加密打包功能的更新策略(3)
- iOS如何把所有页面状态栏的字体颜色都设置为白色
- iOS7自定义视图控制器过渡2-手势交互过渡
- quick-cocos2d-x基于源码加密打包功能的更新策略(2)
- quick-cocos2d-x基于源码加密打包功能的更新策略(1)
- AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
- iPhone系统版本号-iPhone App版本号
- 微信公众账号第三方平台全网发布源码(java)- 实战测试通过
- android程序启动画面之Splash总结
- Android SDK开发包国内下载地址
- Android 之 下拉框(Spinner)的使用
- android状态栏一体化(改变状态栏的背景颜色)开源工程推荐
- CoreMotion框架-iOS设备的核心运动
- cocos2d-x 用cocos code IDE 打包android mac
- Android Universal Image Loader 学习笔记(三)
- ios-获取当前正在显示的ViewController
- android activity 生命周期
- 如何打开APP在应用市场中对应的的activity页面---Android拓展篇
- ios学习笔记(3)