您的位置:首页 > 移动开发 > Unity3D

Advanced Global Illumination in Unity 5 - Unite Europe 2015

2015-10-07 15:21 387 查看
Advanced Global Illumination in Unity 5 - Unite Europe 2015

(KASPER STOMRM)

BakedGI

Lightmaps and light probes

Precomputedrealtime GI

Lightmaps and light probes

Bakedand realtime reflection probes

Those3 components can freely be combined.

Whatdoes precomputed realtime GI mean?

Freelychange all light properties in the player

ADD/remove lights

Change light properties

Freelymodify material reflectance and emission properties of static geometry (Metashader pass)

Freelychange the environment lighting

Lightingworkflow

Hashingand caching

Filebased

Hashinputs and compute missing outputs

Robust

General

Easyto distribute

Cacheable

Async

Allowsfor “Auto mode” and “snapshot mode”

LightmappingModes

Performance

Shading performance

Memory footprint

Non-Directional

Flat disuse

Tex0: diffuse response

Fast

Lowest memory footprint

Good for mobile

Directional

Normalmapped diffuse

Tex0:diffuseresponse

Tex1:directionality(fixed 4)

Dominant light direction

Length= directionality

Rebalancing coefficient

Combineddirectionality for direct and in direct

Relativelyfast, twice the memory

Directionalspecular

Diffuseand specular

Both normalmapped

Tex0:intensity

Tex1:directionality(fixed3)

Dominant light direction

Length = directionality

Metapass

Customshader pass using the GPU

Decouplethe albedo and emissive Enlighten uses, from the regular shader passes

Modifyalbedo (material reflectance)

Changeemission of static geometry

Additiveloading of lighting data

Bakinglighting data can be done in two ways

Separately (separate levels , no sharedlighting)

Together (multiple levels can affect eachother

Preview available in the Unity 5.2 alpha

Enlightenupgrade from 2.22 to 3.02

Performanceimprovements

New feature:real-time transparency

Remove objects at runtime

Destruction , frosted windows, doors etc.

Improvedcubemaps

Probelit objects currently not visible to Enlighten

Enlighten 3.0 includes all immovable objectsin clustering

Which means they can act as emitters!

Bestpractices

Set arealtime resolution that makes sense for you scene

Use thefast emissive API (DynamicGI .SetEmissive)

Add acustom meta pass to change bounce lighting and emission without affection theregular shader passes.

Add glowby attaching lights to dynamic objects

Use emissivesurfaces as area lights.

AdamSimonar

NVYVE工作室发布了第一人称恐怖游戏《帕梅拉(P.A.M.E.L.A.)》

Geometryimport and setup

As you’remodelling/designing ,try to plan what needs to be pre-computed vs using lightprobes.

Generally,only large architectural elements should be set as static (use namingconventions such as _LMS to denote pre_computed geometry.

Keepin mind each object’s desired effect on the scene; in the below example, thegreen tubes are physically very small ,but have a large impact on the scene’slighting so they were set as static.

Performanceand material tips

For object that need to have emission updatedat runtime, make sure to keep them as separate meshes that can use a flat colorvs. complex texture map for emission updates

Use dynamicGI.SetEmissive rather thanDynamicGI.UpdateMaterials whenever possible for better performance

Updatinglighting and materials is the expensive part and can incur big GPU spikes onlarge scenes

Don’t set unnecessary lights as dynamic, e.g.enemy player flashlights

Stayroughly within physically based values when creating materials

Overly bright or dark materials can produceincorrect ,odd looking GI
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: