본문 바로가기
유니티 엔진

Global Illumination Quickstart (발번역 버전) 유니티5 글로벌 일루미네이션

by 대마왕J 2015. 3. 6.

거의 퇴고도 없는 순간 번역 수준이라 번역기 보다 조금 나은 레벨일겁니다 -_-

 

 

 

Unity now uses Enlighten real-time global illumination (GI) technology.

유니티는 이제 인라이튼이라고 하는 리얼타임 글로벌 일루미네이션 기술을 사용합니다.

 Enlighten by Geomerics is the industry’s most advanced dynamic lighting technology.

물체의 인라이튼은 업계의 최고 발전된 기술이죠

 It is the only product with proven ability to deliver real-time global illumination on today’s and tomorrow’s consoles and gaming platforms.

이것은 현시대와 차세대 기기, 플렛폼을 위한  글로벌 일루미네이션 기술임다

Enlighten gives you lightmaps, lightprobes and cubemaps that are updated in real-time during the game.

인라이튼은 라이트맵과 라이트 프로브, 큐브맵을 리얼 타임으로 업데이트 해 주죠 ( 주: 라이트 메스와 비슷)

This is achieved by only computing the bounced lighting, and, because this is generally low-frequency (smooth), it can be stored in low resolution lightmaps. When using the dynamic GI features the direct lighting and shadows are computed in real-time using the GPU.

이것은 오직 반사된 라이팅만 계산해 놓는데, 왜냐면 이것은 보통 낮은 정밀도인데.. 이것은 낮은 해상도의 라이트 맵에 저장되는데.

동적 GI를 사용할때 디렉셔널 라이트와 그림자는 리얼타임으로 GPU에서 계산되기 때문이다.

In order to prepare for real-time updates a precompute stage is necessary.

리얼 타임 업데이트를 위해서 미리 계산된 스테이지가 필요하다

 This means that the lighting bounces between static geometry only.

이것은 조명 반사가 스테틱 오브젝트 끼리만 계산된다는 말이다. (주: 라이트맵이니 당연하죠)

 Dynamic geometry such as characters are lit by using dynamically updated light probes. This means that light bounce from dynamic geometry unto static geometry is not supported.

캐릭터 같은 동적 오브젝트는 라이트 프로브로 업데이트된다. 이것은 즉 라이트 바운스 같은건 스테틱 라이트에나 적용되지 다이나믹 오브젝트에게는 적용되지 않는다는 것이다.

Enlighten also supports baking static lightmaps at high resolution comprising: direct lighting with shadows, indirect bounced lighting and ambient occlusion. This is similar to the previous lightmapping support (3.x, 4.x).

인라이튼은 고해상도의 스테틱 라이트맵을 만든다 : 다이렉트 라이트에 의 한 그림자, 바운스와 엠비언트 오클루전등.. 이것은 이전까지 쓰던 라이트맵과 같다..

You can pick and choose when to use the dynamic and/or baked features. This is simply done by marking the sources of the light appropriately. The integration seamlessly blends the dynamic and baked contributions.

당신은 다이나믹으로 할거냐 베이크 할거냐를 선택할 수 있다. 이것은 단순시 소스에서 라이트를 적절히 하기를 선택하는 것만으로 된다 (?) . 이 다이나믹과 구운 기능의 통합은 끊김이 없다.

Finally, Enlighten supports dynamic GI on mobile devices.

마지막으로, 인라이튼은 모바일 디바이스에서도 지원한다. (주: 헐 . 얼마나 무거운지 말해줘...)

GI workflow

We have moved away from the “bake button” mode and will provide workflows that are more interactive. We have the following workflows:

우리는 '베이크 버튼' 모드를 저-기로 보냈고 그리고 모든 과정을 인터렉티브 하게 제공할 것이다. 우리는 다음 워크 플로우를 따른다.

Iterative

인터렉티브

In this mode the Editor picks up all the scene changes and updates the precomputed data for dynamic GI and baked data automatically. Any change that will affect either dynamic or baked lighting triggers jobs to “repair” the data needed to show the current lighting setup.

이 모드에서 모든 에디터의 선택한 신들은 다이나믹 G가 미리 계산되고 업데이트 된다 자동으로. 모든 변화는 다이나믹이나 베이킹된 상태에서 이 라이팅 모드에서 수정된다.

Snapshot

스냅샷

Mode that allows freezing the current lightmapping state in the form of a snapshot. The snapshot data will live in the Assets folder and can be versioned.

이 모드는 이 라이트맵 상태에서 스냅삿으로 고정된다. 이 스냅샷 데이터는 어셋 폴더에 있을 것이고 버전관리된다 (주: 일반 라이트맵과 같은데 버전관리가 가능하다 라는 말로 보이네요 )

Prerequisites

전제 조건

 

Currently the following combinations of shaders and rendering paths work:

다음 쉐이더와 렌더 패스가 전제 조건이다

  • Standard shader and Deferred
  • 스텐다드 쉐이더와 디퍼드 렌더링
  • Surface shaders and:
    • Legacy Deferred (two pass)
    • Forward as long as fullforwardshadows surface param is explicitly used (see Writing Surface Shaders)
  • 서페이스 쉐이더와 :
    • 이전 방식의 디퍼드 (투패스)
    • 풀 포워드 쉐도우 서페이스 파라미터가 쓰인 포워드 쉐이딩

The Scene View Lighting mode is now serialized per project with the layout. Make sure that it’s turned on in the Scene View Control Bar (it’s the light icon).

씬 뷰 라이팅 모드는 이제 매 프로젝트 레이아웃에 연계됩니다. 이것은 씬 뷰 컨트롤 바에서 켤 수 있습니다. (이것은 라이트 아이콘 입니다)

Cookbook

Baked lightmaps

  • Use the Standard shader in the materials.
  • 메터리얼은 스텐다드 쉐이더를 이용하세요
  • Switch to the deferred rendering path in the Camera and/or Player Settings.
  • 디퍼드 렌더링 패스를 사용하세요  (주: 포워드에서도 되는데 왜 그러지???)
  • Open the Lighting window.
  • 라이트 윈도우를 여세요
  • Enable Continuous Baking.
  • 컨티뉴어스 베이킹을 켜주세요 (주: 안 켜고 수동 베이킹 해도 되긴 해요)
  • Switch to the Object tab.
  • 오브젝트 탭을 여세요
  • Select MeshRenderer’s you want to be lightmapped and mark them as Lightmap Static.
  • 라이트맵을 굽고 싶은 녀석은 라이트맵 스테틱을 켜주세요 (주: 걍 스테틱을 켜주세요)
  • Add a Light and enable shadows.
  • 라이트를 넣고 그림자를 켜주세요
  • Assign a Texture to the Emission slot in a material using the Standard shader.
  • 스텐다드 쉐이더의 에미션 슬롯에 텍스쳐를 적용하세요. (주: 에에???? .. 음 주변에 라이트 블리딩 기능이 이거에 많이 영향받는 것을 확인할 수는 있었습니다. )

Note: currently using the Standard shader doesn’t allow to switch to dynamic emission. To try it out you can use surface shaders with legacy deferred rendering path.

노트 : 지금 스텐다드 쉐이더를 쓰면 동적 에미션으로 바꿀 수 없습니다. 이걸 하려면 예전의 디퍼드 렌더링 패스의 서페이스 쉐이더를 사용하세요 (주: 다이나믹 발광 기능이 사용 불가능 하다는 말 이네요. 네온사인처럼 반짝인다던가 하는게 힘든듯..)

 

 

Dynamic lightmaps

동적 라이트맵

  • Change light’s Lightmapping mode from the default Static GI and Realtime to Dynamic GI.
  • 라이트의 라이트맵 모드는 기본 스테틱 GI 과 리얼타임에서, 다이나믹 GI로 바뀌었습니다.
  • Change Sky Light Color and Sky Light Intensity in the Lighting window.
  • 스카이 라이트 칼라와 스카이 라이트 인텐시티(강도) 를 라이트 윈도우에서 바꿔 주세요 (주: 없는데???)
    • Alternatively assign a skybox material in the slot.
    • 또는 슬롯에다가 스카이박스 메터리얼을 적용해 주세요

Note: skylight affects just the dynamic lightmaps and dynamic light probes.

Optimizing the precomputation stage

선 계산을 옵티마이즈 하기

 

The Enlighten precomputation stage is divided into two main stages: 1) Pre-compute, 2) Baking. The two stages use different texel densities (resolutions).

인라이튼의 선계산은 두 개의 메인 스테이지로 나뉩니다.

1. 프리 컴퓨트(선 계산) 2. 베이킹 (굽기) 이 두 개의 스테이지는 서로 다른 텍셀 밀도(해상도) 를 가집니다.  

The precompute resolution needs to be low so it can be updated quickly, usually a texel per meter is sufficient. This is fine as it only contains bounced light, which is low frequency.

프리컴퓨트 해상도는 업데이트를 빨리 할 수 있도록 작을 필요가 있습니다. 보통 1미터당 1 텍셀이 대충 효율적입니다. 이것은 바운스 라이트 정도를 포함하기에 괜찮은 정도입니다. 이것은 정밀도가 작습니다.

The baked resolution needs to be higher as it also contains (shadowed) direct lighting, which is high frequency.

베이크 해상도는 디렉션 라이팅을 포함해서 높은 정밀도를 가질 필요가 있다.  

However, the indirect component of the baked lightmaps uses an upsampled version of the dynamic output (the low resolution textures). So one of the more important things to get right is the precompute and baked resolutions.

그러나 베이크드 라이트맵의 인다이렉트 컴포넌트는 보통 다이나믹 아웃풋의 업셈플링 버전이다. (작은 해상도의 텍스쳐) . 그래서 중요한 것은 프리컴퓨터와 베이크 해상도를 제대로 맞춰야 한다.

In order for the stages to be fast and lean you need to do the following things:

이 스테이지를 빠르게 하기 위해 다음을 따르시오 :

  • Set the global Realtime Resolution.
  • 글로벌 리얼타임 해상도를 셋팅할것
  • Set the global Baked Resolution.
  • 글로벌 베이킹 해상도를 설정할것
  • Set per instance Scale in Lightmap.
  • 라이트맵에서 인스터스 해상도를 각각 설정하시오
  • Make sure your UVs are laid out nicely with as few charts as possible.
  • 가능하면 UV가 적은 차트 (차트? ) 로 적용되어 있는지 확인하시오
  • Detail geometry, such as foliage and debris, should not be marked Lightmap Static. Such instances should be lit with light probes instead. In a later release we will add a simpler way to light such props.
  • 디테일 오브젝트, 수풀이나 잡동사니처럼.. 그런 것들은 라이트맵 스테틱을 적용하지 마시오 . 이것들은 대신 라이트 프로브를 사용하시지요. 다음 릴리즈에서 우리는 이런 프랍들에 쉽게 라이트를 적용할 방법을 추가할 겁니다.

A chart is another term for a UV island, so a set of UVs that are connected with edges (directly or indirectly).

차트는 다른 UV 섬을 말합니다. 그러니 UV는 경계선을 붙이십시오 (직접 혹은 비 직접으로)

Visualisations

보기

 

Different GI specific visualisations are available via the dropdown in the upper left corner of the scene view.

씬 뷰의 왼쪽 위 메뉴에서 GI 뷰를 볼 수 있습니다.

Textured

Shows the scene fully lit.

씬이 전부 라이팅 된 걸 보죠

 

 

 

Lightmap Resolution

라이트맵 해상도

 

Shows fully lit scene with baking resolution overlaid on top. Note: because of the modes below, this mode is superfluous and will be removed.

베이킹 해상도가 위에 덮여진 풀 라이트 이미지를 보시죠 : 

아래 모드들 때문에 이 모드는 불필요하고, 제거될 겁니다. (주: 이 메뉴얼 조차 베타군요)

GI - Albedo*

GI - Albedo

 

Shows the albedo used in the calculation of the dynamic GI.

다이나믹 GI에서 알베도를 사용하고 있는 것을 보여줍니다 (주: 안보이던데...그냥 흑백이던데...)

 

 

 

 

GI - Emissive*

Shows the emissiveness used in the calculation of the dynamic GI.

다이나믹 GI에서 에미시브를 사용하고 있는 것을 보여줍니다.

 

 

GI - Charts*

Shows the optimized UV layout used in the calculation of the dynamic GI. It is automatically generated by the precompute. It is available as soon as the Instance precompute stage is completed.

다이나믹 Gi를 사용하기 위해 최적화된 UV 레이아웃을 보여줍니다. 이것은 자동으로 프리컴퓨트때 만들어집니다. 이것은 곧 가능해 질겁니다. 인스턴스 프리컴퓨트 스테이지가 완료되었을 때...

 

GI - Irradiance*

Shows the indirect lighting only (the contents of dynamic lightmaps).

광희 (주 : 빛이 반사되어 색이 번짐 : 칼라 블리딩) 만 봅니다. 다이나믹 라이트맵의 컨텐츠입니다)

GI - Directional*

Shows directional information matching the irradiance. Note: not used in the current Alpha.

광희와 매칭되는 다이렉트 인포메이션을 보여줍니다.  : 현재의 알파에서는 사용하지 않습니다 (?)

GI - Systems*

The precompute stage will automatically subdivide the scene into systems based on proximity and settings. This is mainly done to allow multithreading and optimizations in the precompute. This visualization shows the systems with different colors.

프리컴퓨트 스테이지는 자동으로 근접함 셋팅에 의해 씬을 분리합니다. 이것은 주로 멀티쓰레딩 연산에서 프리컴퓨트 연산할때 최적화를 위해서 만들어 놓은 것입니다. 이건 뭐 색으로 다르게 보이죠.

GI - Clustering (Advanced)

The GI algorithm uses a clustering of the geometry in the scene as input to the dynamic indirect lighting calculation. The clustering provides the light environment for all light that is not directly emitted from a light source. Each cluster acts as an indirect emitter emitting a single light intensity and color. Too large clusters will result in light/shadow bleeding and too small clusters slow down the precompute. This visulization shows how the geometry has been clustered by assigning a different color to each cluster.

GI 알고리즘은 씬의 지오메트리를 클러스터링 하여 다이나믹 인다이렉트 라이트 계산에 사용합니다. (주: GI 계산에 사용한다는 말임) 이 클러스터링은  직접 빛으로 부터 방출되지 않는 모든 환경 라이트를 제공합니다. 각 클러스터는 하나의 라이트 강도와 칼라를 방출하는 일을 합니다. 너무 큰 클러스터는 라이트나 그림자의 블리딩 (번짐) 을 나타나게 할테고 너무 작은건 프리컴퓨트가 느려질 겁니다. 이것은 각 클러스터마다 다른 색상을 줍니다. (주: 지금 버전 엔진에는 없잖아 -_-)

 

 

GI - Lit Clustering (Advanced)

As above but colors the clusters with the lighting they currently emit.

위의 방출 조명 클러스터와 같지만 그걸 라이팅으로 보여줍니다 (주: 어딨냐니까)

GI - Static Lightmap*

Shows the baked lightmaps only.

라이트맵만 보여줍니다.

 

*) When an object is selected a 2D view showing the respective texture is displayed and a wireframe rendering of the UVs of the selected instance is overlaid on top. It shows the system (see GI - Systems) the object belongs to. The resolution overlay can be toggled via Show Resolution in the Lightmap Display window (visible when the Lightmapping window is open).

 

 

Light probes

라이트 프로브

 

The workflow for placing light probes is the same as in Light Probes docs. Light probes contain only dynamic lighting (lights marked as Dynamic GI, skylight and emissive materials marked dynamic).

Note: baked light probes are in the works.

라이트 프로브 워크플로우는 라이트 프로브 문서와 같다. 라이트 프로브는 다이나믹 라이트만을 가진다 (주: GI 된 것들이 구워지지는 않는다는 말인듯)

(다이나믹 GI로 마킹된 것들, 스카이라이트와 다이나믹 셋팅이 된 에미시브 라이팅)

Light settings

라이트 셋팅

  • “Realtime” with indirect scale set to 0 : all lighting is realtime, same as the old “Realtime Only”.
  • "리얼타임" 에 인다이렉트 스케일이 0인 것 : 모든 라이트는 리얼타임이다. 예전의 리얼타임 only와 같다.
  • “Realtime” with indirect scale greater than 0 : direct lighting realtime, indirect in dynamic lightmaps and light probes.
  • "리얼타임"에 인다이렉트 스케일이 0 이상인 것 : 모든 라이트는 리얼타임이고, 다이나믹 라이트맵과 라이트 프로브에 인다이렉트 라이브로 적용된다 
  • “Mixed” : direct lighting and indirect in baked lightmaps, dynamic objects still lit by that light, same as the old “Auto”.
  • "혼합" 다이렉트 라이팅과 인다이렉트 라이팅이 라이트맵에 베이킹되고, 다이나믹 오브젝트는 여전히 라이트의 영향을 받습니다.  옛날 "오토" 와 같습니다.
  • “Baked” : direct lighting and indirect in baked lightmaps, the light skipped early when preparing data for culling, does not affect any dynamic objects and is never available in uniforms holding light data for an object.
  • "구워짐" 디렉션 라이트와 인다이렉션 라이트가 라이트맵에 베이킹 됩니다. 라이트는 데이터 준비시에 컬링을 위해 일찍 스킵되며, 다이나믹 오브젝트를 위해 사용되지 않습니다

Runtime

The Enlighten runtime is running asynchronously and whenever new lighting data is ready it is updated.

인라이튼 런타임은 비동기적으로 실행되고 새로운 라이팅 데이터가 업데이트 되면 업데이트 합니다.

Changes to lights marked as “Dynamic GI” and skylight changes are picked up automatically. Material updates (such as albedo and emissive changes to materials) can be triggered via the DynamicGI API.

라이트를 '다이나믹 GI' 로 바꾸고 스카이라이트가 자동으로 선택되면 메터리얼은 업데이트 됩니다. (메터리얼의 알베도와 에미션이 바뀌듯) 이것은 다이나믹 GI API에 의 해 발동될 수 있습니다.

The reason for material changes not being picked up automatically at runtime is that tracking this data is currently expensive. We are looking into ways to make it cheap and automatic.

메터리얼 체인지가 자동으로 런터임에 데이터를 트랙킹해서 업데이트 하지 않는 이유는 여전히 비싸기 때문입니다. 우리는 이걸 싸고 자동으로 하는 방법을 찾고 있습니다.

Known issues

Issues with existing features:

아직 기능에 이슈로 남아 있는 것들입니다.

  • Some combinations of shaders and rendering paths are not functional (see Prerequisites).
  • 어떤 쉐이더와 렌더링 패스 조합은 작동되지 않습니다. (전제 조건을 참조하세요)
  • Bleeding albedo/emissive.
  • 알베도와 에미시브의 블리딩
  • Library/GiCache is never purged, so might need to be cleared manually.
  • 라이브러리 / GI 캐쉬는 제거되지 않습니다. 그래서 이것은 수동으로 제거해야 합니다 (주: 어떻게?) 
  • Scale In Lightmap equal 0 not fully respected (the instance should not get lightmaps, just influence the surroundings).
  • 라이트맵 스케일을 0으로 하는건 아직 완전히 적용안됨 ( 인스턴스가 라이트맵을 받지 말아야 하며, 단지 주변 영향을끼치게 하는 것)
  • Emission from the Standard shader is only baked.
    스텐다드 쉐이더의 에미션은 베이킹만을 위한 것이다 (주: 헐. 그럼 후처리 안먹음? )
  • Skybox needs to use the RenderFX/Skybox shader and the textures used need to have Read/Write Enabled.
    스카이박스는 렌더FX의 스카이박스 쉐이더를 필요로 하고 텍스쳐는 리드/ 라이트 인에이블 옵션을 필요로 합니다
  • Emissive is clamped at 1.0f.
    에미시브는 1.0에서 짤립니다 (주: 그보다 더 크게 했을때 라이트 블리딩 되는거랑 색 변하는건 뭐냐)

Limitations

Not yet implemented features:

아직 개발되지 않은 기능입니다.

  • Terrain support.
    터레인 안됨 (주: 엌ㅋㅋㅋㅋㅋㅋㅋ)
  • Baked probes.
    프로브 베이크 (주: 응?????)
  • Baked environment lighting.
    인바이론먼트 라이팅을 베이킹하기
  • Baked area lights.
    에리어 라이트 베이킹
  • Baked transparency.
    반투명 베이킹
  • Baked cookies.
    쿠키 베이킹 (주: 엌ㅋㅋㅋㅋ)
  • Dynamic cubemaps.
    다이나믹 큐브맵
  • Skinned Mesh Renderers support.
    스킨드 메쉬 렌더러 서포트 (주: 캐릭터 안됨????)
  • Additive scene loading.
    추가적인 씬 로딩
  • Cache Server for GI data sharing.
    GI 데이터 공유를 위한 캐쉬 서버
  • Dynamic visibility for point and spot lights (direct lighting for GI is not shadowed). This limitation does not affect baking.
    포인트와 스팟 라이트를 위한 실시간 보기 (GI를 위한 다이나믹 라이팅은 아직 그림자지지 않음). 이 한계는 베이킹에 영향을 끼치지 못합니다.

 

반응형

댓글