메뉴얼/언리얼 메뉴얼

(펌)[메터리얼]뒤틀린 리플렉션 만들기

darkgilin 2011. 7. 1. 15:58

 

DistortedReflectionContent.zip

출처: http://udn.epicgames.com/Three/DevelopmentKitGemsCreatingDistortedReflectionKR.html

뒤틀린 리플렉션 만들기


UDK 2011년 4월 버전으로 최종 테스팅.
문서 변경내역: James Tan 작성. 홍성진 번역.

 

개요


머티리얼에 현실감을 더하기 위해 가끔 강하거나 묘한 리플렉션이 필요할 때가 있습니다. 퍼포먼스를 이유로, 스태틱 큐브 맵을 오프라인에서 만든 다음 실시간에서 사용하여 이펙트를 끌어낼 수 있습니다. 무어의 법칙에 따른 결과 이제, 실시간 리플렉션을 생성하는 데 사용할 수 있는 파워가 머티리얼에 사용할 수 있는 것보다 훨씬 많아지게 되었습니다. 거울, 대리석, 메탈과 같이 현실에서 반사성을 띄는 것을 쉽게 만들 수 있게 되었습니다.

 

렌더 타겟


렌더 타겟은 화면 밖에 렌더되는 뷰포트입니다. 말하자면 월드의 시야를 나타내나, 화면상에는 표시되지 않습니다. 머티리얼에서 아주 유용하게 사용할 수 있고, 그 후 머티리얼 에디터에서 렌더 타겟을 원하는 식으로 변경할 수 있게 됩니다.

 

렌더 타겟 만들기

렌더 타겟 생성은 콘텐츠 브라우저에서 우클릭 한 번, 그런 다음 "New TextureRenderTarget2D" 를 선택하면 끝입니다.

01_CreatingRenderTarget.jpg

패키지 이름, 옵션으로 그룹과 이름 입력입니다. 이 예제에서는 렌더 타겟 을 별도의 패키지가 아닌 맵 안에 저장하기로 했습니다. 렌더 타겟은 보통 특정 맵에서만 사용되니 겸사겸사 입니다. 물론 어떤 식이든 상관은 없습니다. 렌더 타겟 2D 조정을 위해 트윅할 수 있는 파라미터가 있습니다.

02_SetPackageGroupName.jpg

 

  • Format - RenderTarget2D 의 포맷
    • A8R8G8B8 - 8 비트 RGBA, 값은 0 과 255 사이에서만 가능
    • G8 - 8 비트 회색조, 값은 0 과 255 사이에서만 가능
    • FloatRGB - Float RGB, 값은 부동 소수점 수 가능
  • Height - RenderTarget2D 의 높이. 작을수록 퍼포먼스에는 좋습니다.
  • Width - RenderTarget2D 의 폭. 작을수록 퍼포먼스에는 좋습니다.

콘텐츠 브라우저에서 RenderTarget2D 에 더블클릭하면 파라미터를 조금 더 조절할 수 있습니다.

04_RenderTargetParameters.jpg

 

  • Address X X 주소 - 0.f 에서 1.f 밖에서 샘플을 뽑을 때 어떤 픽셀을 반환시킬지 조절하는 파라미터입니다.
  • Address Y Y 주소 - 0.f 에서 1.f 밖에서 샘플을 뽑을 때 어떤 픽셀을 반환시킬지 조절하는 파라미터입니다.
  • Force Linear Gamma 선형 감마 강제 - 이 렌더 타겟에 (감마 보정의 한 형태인) 선형 감마 스페이스를 사용하려면 참으로 설정하십시오.
  • Needs Two Copies 사본 둘 필요 - 씬 자체 내에서 렌더 타겟을 사용하는 경우 거짓으로 설정하십시오. 메모리 절약에 도움이 됩니다. 렌더 타겟이 다른 목적으로 사용되는 화면 밖 버퍼인 경우, 사본을 둘 유지해야 합니다.
  • Render once 한번 렌더 - 렌더 타겟을 한 번만 렌더해야 하는 경우 참으로 설정하십시오. 절대 바뀌지 않는 씬 캡처에 좋습니다.
  • Target Gamma 타겟 감마 - 렌더 타겟 텍스처의 감마를 조절할 수 있습니다.
  • Force PVRTC4 PVRTC4 강제 - 렌더 타겟은 iOS 에 지원되지 않기에 사용되지 않습니다.

 

관련 토픽

 

씬 캡처 리플랙션 만들기


콘텐츠 브라우저의 액터 클래스 탭으로 가서 Scene Capture Reflect Actor 를 찾습니다.

03_SelectSceneCaptureReflectActor.jpg

Scene Capture Reflect Actor 를 놓으려는 곳에 우클릭합니다. 리플렉션 진원지로 하려는 곳에 놓으십시오.

05_AddSceneCaptureReflectActor.jpg

 

씬 캡처 리플렉션 프로퍼티 설정하기

SceneCaptureReflectActor 는 단지 SceneCaptureReflectComponent 에 대한 그릇일 뿐입니다.

06_SceneCaptureReflectActorProperties.jpg

 

  • Texture Target 텍스처 타겟 - 씬 캡처를 렌더할 RenderTarget2D 입니다.
  • Scale FOV FOV 스케일 - FOV 스케일입니다.
  • Enabled 켜짐 - 씬 캡처가 켜졌는지 입니다.
  • Enable Post Process 포스트 프로세스 켜기 - 이 씬 캡처에 포스트 프로세스를 켤지 입니다.
  • Enable Fog 포그 켜기 - 이 씬 캡처에 포그가 켜졌는지 입니다.
  • Clear Color 색 지우기 - 씬 캡처를 렌더하기 전 RenderTarget2D 를 지울 색입니다.
  • View Mode 뷰 모드 SceneCapView_LitNoShadows - 씬을 라이팅포함 모드로 렌더하나, 그림자는 생략합니다. SceneCapView_Lit - 씬을 라이팅포함 모드로 렌더합니다. SceneCapView_Unlit - 씬을 라이팅제외 모드로 렌더합니다. SceneCapView_Wire - 씬을 와이어프레임 모드로 렌더합니다.
  • Scene LOD 씬 LOD - 씬 캡처시 사용할 씬의 LOD 레벨을 조절할 수 있습니다.
  • Frame Rate 프레임율 - 이 씬 캡처를 업데이트하기 위한 프레임율입니다.
  • Post Process 포스트 프로세스 - 이 씬 캡처에 사용할 포스트 프로세스 체인입니다.
  • Use Main Scene Post Process Settings 메인 씬 포스트 프로세스 세팅 사용 - 씬 캡처가 다소 동일하도록 씬 포스트 프로세싱 세팅을 사용합니다.
  • Skip Update If Texture Users Occluded 텍스처를 사용하는 것이 가려지면 업데이트 생략 - 머티리얼, 액터가 현재 뷰에 있지 않으면 이 씬 캡처 업데이트를 생략합니다.
  • Skip Update If Owner Occluded 오너가 가려지면 업데이트 생략 - 컴포넌트의 오너가 현재 뷰에 있지 않으면 이 씬 캡처 업데이트를 생략합니다.
  • Max Update Dist 최대 업데이트 거리 - 카메라가 이 값보다 멀리 있으면 이 씬 캡처의 업데이트를 생략합니다.
  • Max View Distance Override 최대 뷰 거리 덮어쓰기 - 리플렉션에서 원거리 오브젝트를 컬링할 때 사용합니다.
  • Skip Rendering Depth Prepass 뎁스 프리패스 렌더링 생략 - 씬 캡처 렌더링시 뎁스 프리패스를 생략합니다. 씬 캡처가 작다면 뎁스 프리패스를 생략하는 쪽이 더 비쌉니다. (CPU 비용 vs GPU 비용)
  • Max Streaming Update Dist 최대 스트리밍 업데이트 거리 - 오너와 뷰어의 거리가 이 유닛 이상 떨어져 있으면 씬 캡처에 대한 스트리밍 텍스처 업데이트를 생략합니다.

 

거울 만들기


머티리얼은 꽤 간단합니다. 제대로 설정해 줘야 하는 것은 라이트매스 스위치 뿐입니다. 라이트매스가 실행되면 렌더 타겟을 사용할 이유가 없어지는데, 카메라 뷰에 의존하기 때문입니다. 그렇기에 라이트매스 스위치 없이는 잘못된 디퓨즈 컬러가 (보통 밝은 녹색이) 사용됩니다. 이 문제를 고치려면 빛을 좀 더 적절히 반사시킬 수 있게끔, 라이트매스가 상수를 참조하도록 해야 합니다.

 

미러 머티리얼 레이아웃

07_MirrorMaterialLayoutThumb.jpg

08_MirrorExample.jpg

 

대리석 만들기


대리석 머티리얼을 만드는 한 가지 방법은, 디퓨즈 텍스처와 리플렉션을 선형 보간하는 것입니다.

 

대리석 머티리얼 레이아웃

09_MarbleFloorMaterialLayoutThumb.jpg

10_MarbleFloorExample.jpg

 

뒤틀린 메탈 만들기


리플렉션을 뒤틀려면 노멀맵을 사용하여 UV 좌표를 오프셋시키기면 됩니다.

 

뒤틀린 메탈 머티리얼 레이아웃

11_DistortedReflectionMaterialLayoutThumb.jpg

12_DistortedReflectionExample.jpg

DistortedReflectionContent.zip
2.0MB