Version: 2020.1
리니어 워크플로 또는 감마 워크플로
리니어 텍스처 작업

리니어 렌더링이 있는 감마 텍스처

Unity 에디터는 기존의 감마 색 공간뿐 아니라 리니어 색 공간에서도 함께 작업할 수 있습니다. 텍스처가 감마 색 공간에 있는 경우에도 리니어 색 공간에서 작업하실 수 있습니다.

추가 정보는 다음의 문서를 참조하십시오.

참고 텍스처가 리니어 색 공간에 있을 경우 sRGB 샘플링을 비활성화해야 합니다. 추가 정보는 리니어 텍스처에 있는 문서를 참조하십시오.

리니어 렌더링은 렌더링 된 씬을 새로운 모습으로 바꿔 놓습니다. 프로젝트를 감마 공간에 적합하도록 작업 했다면 이를 리니어 렌더링으로 변경할 경우 적합하지 않은 결과로 보입니다. 이런 점 때문에 감마 렌더링에서 리니어 렌더링으로 변경할 경우 프로젝트를 이전과 같은 좋은 모습으로 유지하기 위해 미세 조정하는 데는 상당한 시간이 걸릴 수 있습니다. 하지만 변경할 경우 결국에는 지속적이고 사실적인 렌더링이 가능하기 때문에 시간을 들일만 한 가치가 있습니다. 이 과정은 텍스처, 머터리얼과 광원을 미세 조정해야 할 필요가 있습니다.

라이트매핑

The lighting calculations in the lightmapper are always done in linear space (see documentation on the Lighting Window for more information). The lightmaps are always stored in gamma space. This means that the lightmap textures are identical no matter whether you’re in gamma or linear color space.

리니어 색 공간에 있을 경우 텍스처를 샘플링하면 텍스처 샘플이 감마 공간에서 리니어 공간으로 전환됩니다. 감마 색 공간에 있을 경우에는 전환이 필요하지 않습니다. 따라서 색 공간 설정을 변경할 경우에는 라이트맵을 반드시 리베이크해야 합니다. Unity의 조명이 자동 베이크(기본값)로 설정돼 있을 경우 자동으로 리베이크 됩니다.

라이트맵 임포트

Unity가 생성한 라이트맵 EXR 파일에 있는 데이터는 리니어 공간에 있습니다. 임포트하는 동안 해당 데이터는 감마 공간으로 전환됩니다. 외부 라이트매퍼에서 라이트맵을 가져올 때 라이트맵을 텍스처 임포터텍스처 타입(Texture Type): 라이트맵(Lightmap) 으로 표시하시기 바랍니다. 이렇게 설정할 경우 sRGB 샘플링이 임포트에서 바이패스 됩니다.

리니어가 지원되는 플랫폼

리니어 렌더링은 모든 플랫폼에서 지원되지 않습니다. 이 기능을 지원하는 빌드 대상은 다음과 같습니다.

  • Windows, Mac OS X, Linux (스탠드얼론)
  • Xbox One
  • PlayStation 4
  • Android
  • iOS
  • WebGL

해당 디바이스에서 리니어 렌더링을 지원하지 않을 경우 감마로 폴백할 수 없습니다. 이런 경우 플레이어는 종료됩니다. QualitySettings.activeColorSpace를 참조하여 스크립트에서 사용중인 색 공간을 확인할 수 있습니다.

Android에서 리니어 렌더링을 이용할 경우 최소 OpenGL ES 3.0 그래픽스 API 및 Android 4.3 이상이어야 합니다.

iOS에서 리니어 렌더링을 이용할 경우 Metal 그래픽스 API가 필수입니다.

WebGL에서 리니어 렌더링을 이용할 경우 최소 WebGL 2.0 그래픽스 API가 필요합니다.

최소 요구 사항이 충족되지 않으면 에디터가 플레이어 빌드를 제한하고 알림을 띄웁니다. 이는 사용자 기기에서 게임이 잘못 렌더링 되어 디지털 스토어로 배포되는 것을 막기 위함입니다.

Unity 에디터는 잘못 렌더링되는 게임의 플레이어를 빌드하는 것을 제한합니다
Unity 에디터는 잘못 렌더링되는 게임의 플레이어를 빌드하는 것을 제한합니다

리니어 색 공간 및 HDR

리니어 색 공간에서 HDR을 사용할 때 렌더링은 플로팅 포인트 버퍼에 수행합니다. 이러한 버퍼는 버퍼에 액세스 될 때마다 감마 공간 또는 리니어 색 공간으로 전환될 필요가 없을 만큼 충분히 정밀합니다. 즉, 리니어 모드에서 렌더링할 때 사용되는 프레임 버퍼는 리니어 공간에 저장된다는 의미입니다. 따라서 모든 블렌딩 및 포스트 프로세스 효과는 리니어 공간에서 내부적으로 수행됩니다. 백버퍼를 최종적으로 작성할 때 감마 보정이 적용됩니다.

리니어 색 공간 및 비HDR

리니어 색상 공간 사용이 가능하고 HDR 사용은 가능하지 않을 경우 sRGB 읽기와 작성을 지원하는 특수한 프레임 버퍼 타입이 사용됩니다(읽을 시에는 감마에서 리니어로, 작성 시에는 리니어에서 감마로 전환). 프레임 버퍼가 블렌딩에 사용되거나 텍스처로 바운드 될 경우 해당 값은 사용되기 전에 리니어 공간으로 전환됩니다. 이러한 버퍼가 작성될 경우 작성되는 값은 리니어 공간에서 감마 공간으로 전환됩니다. 리니어 모드와 비HDR 모드에서 렌더링하는 경우, 모든 포스트 프로세스 효과의 소스와 타겟 버퍼는 sRGB 읽기, 쓰기가 가능하도록 생성되어 포스트 프로세싱과 포스트 프로세스 블렌딩이 리니어 공간에서 이뤄집니다.


  • 2017–06–19 페이지 수정됨

  • 2017.2에서 WebGL에서의 리니어 렌더링 추가됨 NewIn20172

리니어 워크플로 또는 감마 워크플로
리니어 텍스처 작업