Version: 2022.2
언어: 한국어
Unity 5.3으로 업그레이드
Unity 5.0으로 업그레이드

Unity 5.2으로 업그레이드

전역 조명

0–1 공간을 채우지 않는 (더 작거나 더 큰) 베이크된 UV의 UV 패킹이 수정되었습니다. 이에 따라 언래핑한 오브젝트가 0–1 공간을 채우지 않고 경계가 정사각형이 아닌 경우 각 오브젝트에 할당된 해상도가 훨씬 더 안정성으로 작동합니다. 베이크된 라이트맵 인스턴스에서 해상도를 검토하십시오.

셰이더 배리언트 스트리핑은 실시간 라이트맵을 위해 수정되었습니다. 이제 각 라이트맵 모드(비방향성, 방향성, 방향성 스페큘러) 배리언트를 베이크드 및 실시간 GI에 대해 독립적으로 선택할 수 있습니다. 이전에 Graphics 창에서 특정 라이트맵 모드 배리언트를 선택한 경우 설정을 검토하여 해당 모드가 실시간 라이트맵에 대해 동작하는지 확인하십시오.

반사 스케일(bounce scale)이 임의 값인 0.7에서 1.0으로 변경되었습니다. 반사는 알베도와 바운스 스케일의 곱입니다. 아티스트는 사실적인 알베도 값을 설정해야 합니다. (가장 밝은 비금속 머티리얼은 값이 0.9인 눈입니다.) Unity 에디터의 PBS 레퍼런스는 다음과 같습니다. http://forum.unity3d.com/threads/official–5–0-pbr-calibration-charts.289416/

물리적으로 올바른 알베도를 작성해야 하므로 스케일을 1에 가깝게 설정하는 것이 합리적입니다. 이미 알베도 값을 메타 패스에서 고정하므로, 반사 스케일(bounce scale)은 1.0f이어야 합니다.

알베도를 고정하지 않고 커스텀 메타 패스에서 1.0으로 설정하는 것을 선택하면 씬에서 빛이 폭발하는 것처럼 보일 수 있습니다.

셰이더

“Fixed Function” 스타일 셰이더(SetTexture, Lighting On 등을 사용하는 셰이더)는 이제 내부에서 셰이더 임포트 시간에 실제 셰이더로 변환됩니다. 장점은 이제 셰이더가 모든 플랫폼에서 작동하고(과거에는 콘솔에서 작동하지 않았음), 더 일정하게 작동한다는 것입니다. 또한 비효율과 관련된 여러 코드와 고정 함수도 런타임 시점에서 제거되어 렌더링도 약간 더 빨라집니다. 단점은 new Material(fixedFunctionShaderString)을 사용하여 고정 함수 셰이더를 생성하면 더 이상 효과가 없다는 것입니다. 이 생성자는 Unity 5.1에서 지원이 중단되었고, 이제 5.2에서는 실제로 이 생성자를 고정 함수 셰이더에 사용할 수 없습니다.

반사 프로브

향후에 “스크린 공간 반사” 효과를 허용하기 위해 디퍼드 셰어딩 사용 시에 반사 프로브가 렌더링되는 방법을 변경했습니다. 간단히 말해, 디퍼드 셰이딩에서 반사 프로브는 이제 오브젝트당 기준이 아닌 픽셀당 기준입니다.

현재 동작(오브젝트당 반사 프로브, 경우에 따라 큰 오브젝트 간에 거친 반사 전환을 방지하기 어려울 수 있음)과 픽셀당 반사 프로브(전환이 훨씬 덜 보이고 오브젝트 경계가 아닌 프로브 경계에서 수행됨) 비교:

과거(5.0, 5.1)

  • 반사 프로브는 G버퍼 패스 중에 포워드 렌더링과 정확히 똑같은 방법으로 샘플링됩니다. 라이트 프로브, 라이트맵 및 발광 머티리얼 부분과 함께 “이미션” 버퍼에 작성됩니다.

  • 따라서 반사 프로브를 오브젝트당 한 개(프로브 블렌딩이 켜진 경우 두 개)씩 얻습니다.

  • 반사가 이미션/라이트맵과 함께 동일한 버퍼에 있으므로 SSRR을 “올바르게” 수행하기 어렵습니다. SSRR은 자체적으로 반사를 제공하고 그럴 수 없는 경우 반사 프로브를 대신 사용하지만, “이미션 버퍼” 컬러의 어느 부분이 반사 프로브에서 비롯되는 것인지 모릅니다.

현재(5.2)

  • 디퍼드 셰이딩을 사용하는 경우 G버퍼 패스 중에 반사 프로브를 샘플링하지 않습니다.

  • 그 대신 G버퍼가 완료된 후 반사 프로브를 화면 공간에 상자로 그리고, 반사 정보를 별도의 렌더 타겟에 출력하는 별도의 “디퍼드 반사” 패스를 만듭니다.

  • [향후에 SSRR 효과는 이 별도의 반사 버퍼를 사용하게 됩니다.]

  • 반사 버퍼와 이미션 버퍼를 마지막에 합칩니다.

이것은 무엇을 의미할까요? (아래 내용은 모두 디퍼드 셰이딩에만 해당됨)

  • 반사 프로브는 더 이상 오브젝트당 기준이 아니고, 사실상 픽셀당 기준입니다. 여러 반사 프로브에 영향을 받는 큰 오브젝트가 있으면 더 쉽습니다.
    • 또한 프로브에는 프로브 주위의 공간이 다른 프로브에 블렌딩하는 데 얼마나 사용되는지 정의하는 “블렌드 거리”도 있습니다.
    • 작은 프로브는 큰 프로브를 “오버라이드”합니다.
  • 반사 프로브 렌더러 플래그(프로브 블렌딩 등)는 무시되고, 모든 것이 반사 프로브에 동일하게 영향을 받습니다. (이제 화면 공간에서 이 동작이 수행되기 때문입니다.) 디퍼드 셰이딩에서 “receive shadows” 플래그가 무시되는 방법과 매우 유사합니다.

  • 디퍼드 셰이딩을 수행하는 커스텀 작성 셰이더는 대부분 계속 작동할 것입니다. (최악의 경우 검은색 반사 큐브맵을 샘플링할 것입니다.) 셰이더에서 아주 기이한 작업을 수행하는 경우 5.2에서 디퍼드 셰이딩과 함께 작동하려면 업데이트해야 할 수 있습니다.
    • 커스텀 디퍼드 셰이딩 라이트 패스 셰이더(커스텀 BRDF 등 포함)를 사용하는 경우 동일한 BRDF가 반사 프로브에 적용된 커스텀 디퍼드 반사 셰이더도 사용하는 것이 좋습니다.

슈리켄

파티클은 이제 월드 공간에서 생성되므로 커스텀 버텍스 셰이더를 업데이트해야 할 수 있습니다. 이 변경 사항은 VR에서 각 눈 사이의 파티클 버퍼를 재사용할 수 있도록 하기 위해 적용되었습니다.

메시 파티클은 이제 Texture Sheet Animation 모듈을 지원합니다. 기존 효과에 이 모듈이 실수로 활성화되지 않았는지 확인하는 것이 좋습니다. 그렇지 않으면 동작이 바뀔 수 있습니다.

Limit Velocity over Lifetime 모듈의 Dampen 파라미터는 프레임 속도가 높을수록 효과가 더 강했습니다. 이 문제는 해결되어 게임의 타겟이 30fps인 경우 이전 효과는 이 변경 사항에 영향을 받지 않습니다. 하지만 게임의 타겟 FPS가 다른 경우 다음 공식을 사용하여 Dampen 값을 업데이트하여 5.2에서 효과가 바뀌지 않도록 할 수 있습니다.

newDampen = 1.0f - pow(1.0f - oldDampen, targetFPS / 30.0f);

그래픽스(기타 항목)

Material.CopyPropertiesFromMaterial은 이제 셰이더 키워드와 렌더 대기열도 복사합니다. 이 두 항목이 복사되지 않아야 하는 경우 코드를 변경해야 합니다.

이제 SpeedTree 머티리얼을 다시 생성해야 합니다. SpeedTree 내장 셰이더에 변경 사항이 적용되었기 때문입니다. 이 작업은 프로젝트에서 SpeedTree 프리팹을 선택하고 “Apply & Generate Materials” 버튼을 눌러 수행할 수 있습니다. 이 작업을 수행하면 생성된 머티리얼 에셋에 적용한 커스마이제이션(있는 경우)을 덮어씁니다.

UI

5.2에서는 텍스트 및 노멀 UI 요소 렌더링에 사용되는 셰이더를 합쳤습니다. 하지만 32비트 포맷의 수동 폰트 텍스처를 지정하면 컬러 채널이 유지된다는 부작용이 있습니다. 이 부작용으로 인해 텍스처 채널이 검은색이면 이전에는 (알파만 봤기 때문에) 텍스트가 흰색이었지만 이제는 텍스트가 검은색이 됩니다. 커스텀 텍스처를 폰트에 사용하려면 다음 작업 중 하나를 수행하십시오.

  1. 텍스처 임포트 포맷을 A8로 변경합니다. 그러면 알파 컴포넌트만 유지되고 Unity 에디터가 기본적으로 흰색 텍스트를 생성합니다.
  2. Unity 에디터가 텍스트를 렌더링할 때 사용할 텍스처의 컬러를 하나 이상 지정합니다.

멀티플레이어

프로젝트 ID가 처리되는 방법이 Unity 5.2에서 변경되었습니다. 이제 프로젝트가 자동으로 등록되어 ID를 어디에든 수동으로 입력할 필요가 없습니다. 서비스 창에 (오른쪽 상단 모서리에 있는 클라우드 아이콘으로 여는) 멀티플레이어 패널이 있고 이 패널에서 웹사이트의 프로젝트로 직접 연결되는 딥 링크를 찾을 수 있습니다(대시보드로 이동). 멀티플레이어 설정이 설정된 경우 여기에 표시됩니다.

Unity 5.3으로 업그레이드
Unity 5.0으로 업그레이드