시작해요언리얼 2024.2주차 - 라이팅 sunsky
런쳐 샘플에서 건축시각화인테리어 렌더링을 열어보면
라이트정보를 텍스쳐로 만들어 저장하는 방법 라이트 프로브가 있어 다이나믹오브젝트의 처리를 해준다.
이런걸 라이트매스라고 한다. 사양에 비해 높은 퀄리티가 가능하지만 빌드타임이 최소 몇시간 이상 걸린다.
건축용이기 때문에 이런 기술이 가능하다. 미리 베이크했기 때문에 시간의 변화나 다이나믹 배경에는 부적합하다.
Archivis_RT를 열어보면 리얼타임 레이트레이싱이 적용되어 있다.
원래 광원에서 무한대의 광자가 오브젝트에 부딪치고 다시 반사된 광자가 다른 오브젝트를 비추는데 이런 연쇄작용을 계산하기는 어려움으로 레이트레이싱을 사용한다. 이건 최종렌더링 화면화소 하나하나에서 광자를 발사해 정해진 회수만큼 오브젝트에 반사되 최종 광원에 도착하는 것만 실 반영한다. 반사 굴절 그림자 스펙큘러반사등 레스터라이즈방식에서는 불가능한것이 가능하다. 실시간 글로벌이루미네이션은 하여간 어렵다.
언리얼은 5.0부터 루멘이라는 라이팅 시스템을 채용했는데 레이트레이싱 레스터라이징방식의 장점을 채택한 GI 시스템이다. 나나이트와 상호작용하고 하드웨어 없이도 소프트웨어방식으로도 작용한다.
단 루멘은 실시간이라 퀄리티의 한계가 있어 오프라인이라도 상관없다면 패스트레이싱 방식을 사용할수도 있다.
프로젝트세팅의 렌더링에 가서 하드웨어 레이트레이싱을 켜고
라이팅포함에서 패스트레이싱을 켜면된다. 정반사및 난반사를 모두계산하기 때문에 실시간은 불가능하나 퀄리티는 올라간다. 아래는 시간이 지날수록 좋와진다. 실시간으로사용할수 없다.
코스틱효과도 가능하다.
다시패스트레이싱을 끄고 LSU2024_interior를 로딩해서 해도 되지만 ResultFolder의 DayFin 레벨을 열고 기본맵으로 지정해주면 언리얼에디터를 런칭시 자동으로 열린다.
창(Window)에서 레벨을 크릭하고
서브레벨을 골라 추가해주고 퍼시스턴트레벨을 클릭한다 그래야 추가되는 변경사항이 메인에 저장된다.
레벨을 움직여 보면 오브젝트들이 반짝반짝하는데 루멘의 퀄리티가 너무 높아서 조명반영이 느려져서 그렇다 이걸 제작동안은 낮춰주자
연습을 위해 아웃라이너의 라이트폴더안의 모든 라이트를 지워주자. 그런데 아직도 밝다 자체발관하는 이미시브 머터리얼 때문이다.
TV를 선택해서 엘리먼트1의 폴더를 열어다 엘리먼트2의 화살표를 눌러주면 1의 머터리얼이 2에 적용되면서 이머시브가 꺼진다.
이번에는 머터리얼 엘리먼트1의 그림을 더블클릭해 Emissive를 0으로 해서 꺼준다.
커텐과 창문도 불투명한걸 표현하기 위해 Emissive를 사용하고 있어 0으로 해준다
밖을보면 아직 밝은데 빛의 확산이 순환적으로 일어나서 그런데 Exterior를 눈을 껏다 다시켜면된다.
실내 노트북이 너무 밝아졌는데 이건 포스트프로세스볼륨의 오토익스포즈가 켜져있어서 그렇다. Manual로 하면 꺼지지만 MinEv100을 올려주면 어두워진다. 오토를 끄는건 안좋다.
조명을 달아주면 상대적인 컨트라스트가 줄어들어 노트북의 밝기가 줄어든다. 디렉셔널 라이트를 추가하고 모빌리티를 무버블로 바꾸자 스카이라이트도 추가하고 무버블로하고 스카이애트머스피어를 추가하면 빨간색 에러가 사라진다.스카이에트머스피어는 공기와 같은 산란매체이고 이걸라이트로 표현하는게 스카이라이트라 같이 사용해야한다.
Ctrl+L을 클릭하면 기즈모가 나오는데 이걸로 디렉셔널 라이트의 방향을 컨트롤할수 있다.
액터매치툴바에서 익스포넨셜하이트포그를 추가하고 디테일에서 볼류메트릭포그를 클릭한다.
그럼 뿌였게 되는데 시작거리를 2000으로 해서 카메라에서 2000부터 포그를 생성해서 화면을 깨끗하게 한다.멀리서 안개가 보인다.
그런데 아직도 노트북이 밝다. 이건 실내조명이 아직 너무 어두워서 그렇다. 포스트프레세스볼륨의 오토익스포즈를 매뉴얼로하면 어둡다.
Directional Light가 10룩스가 기본값인데 실제 태양의 밝기가 120,000으로 올려준다. 그럼 노트북이 제대로 된다.
태양의 밝기의 변화는 대기의 산란된 스카이라이트가 밝아진다. 스카이라이트의 월드영향을 켜보면 약간 파래지는데이건 스카이라이트는 산란하면서 파랗게 되기 때문이다.
좀더 강조하기 위해서는 포스트프로세스볼륨의 루멘메뉴의 스카이라이트누스를 켜고 0.02정도로 자연스럽게 파랗게 해준다.
액터배치에서 볼류메트리클라우드를 추가하면 쉐이더를 준비하느라 기다리면 구름이 생긴다.
좀 다른 구름을 만들려면 플러그인 볼류메트릭을 추가하고 컨텐츠브라우저 오른쪽 톱니바퀴를 누르고 엔진콘텐츠 플러그인콘텐츠표시를 켜주자
다음 폴더에 BP_Cloud_Mask로 시작하는 블루프린트가 2개 있다.
방금 추가했던 볼류메트릭클라우드를 아웃라이너에서 선택하고 클라우드머터리얼을 M_VolumetricColoud_03_MultipleProfile로 변경하자. 그럼 구름이 없어지고
아까 2개의 블루프린트를 레벨에 배치하면 껌껌해지는데 아이콘이 너무 커서 그렇다
BP_CloudMask를 선택하고 위치를 높혀주면
이후 사이즈 밀도 알파등을 변경하거나 카피도 가능하다
다음은 지금까지 추가했던 라이트를 다 지워주고
플러그인에서 Sun Position Calculator를 추가해주자. 액터배치에서 Sunsky를 추가해주자
디테일을 보면 날자 시간으로 시뮬레이션 할 수 있다. 저녁신을 연출하기 위해서는 시간을 19시로 바꾸고
포스트프로세싱볼륨의 Exposure의 Min EV100을 10으로 높이면 어두워진다. 4정도 돌리자
이제 밤라이트를 설정해보자 스포트라이트를 추가해보자. Intensity를 200으로 해서 밝게해준다.
방금 넣은 라이트를 지워주고 기존 레벨의 등에 라이트를 달아주겠다.
컴텐츠브라우저에 BP_SpotLight 액터를 만들고 블루프린트이 컴포넌트 추가를 눌러주면 방금 선택한 등기구를 선택할수 있다.
스포라이트를 추가해주고 위치와 회전으로 아래방향을 맞춰주고 강도를 200으로 한다.
레벨이 어두워서 안보이면 라이팅을 언릿으로 바꿔주고 레벨에서 바꿀등기구를 다 선택하던지 아웃라이너에서 선택해도 된다.
우클릭후 선택된 액터를 다음으로 교체하면 한방에 바꿀수 있다.
그런데 라이트 위치가 전구 안으로 들어가서 밖으로 빛이 안나온다. 전구메시를 선택하고 라이트매스 세팅의 그림자드리우기를 선택하면 된다.
이러면 밝아진다. 그런데 전구는 까맣다. 전구 머터리얼의 이미시브를 크게해주면 밝아진다.
그런데 레벨의 배경이 어른거리는데 루멘이 어두을때 이미시브머터리얼 때문에 생기는 현상이라 직접광원을 쓰던가 포스트프로세스볼륨에서 파이널게더퀄리티를 5정도 크게해주는게 좋다. 어두운 환경에서이미시브 재질을 안사용하는게 좋다.
일부어두운 면을 위해 포인트라이트를 추가하고 어둡게하고 그림자를 없애는 처리를 하는경우가 있는데 좋은 방법이 아니다 차라리 전등(스포트라이트)을 추가해야 한다.
주간은 디렉셔널라이트와 스카이라이트로 제어하지, 라이트가 많아지면 제어가 안된다.
쇼파와 러그에 이상한 데칼같은게 있는데 이건 나나이트와 폴백메시가 일치하지 않아서 그렇다.
콘솔명령에서 다음명령어 뒤에 1을 넣으면 없어진다. 폴백메시를 사용하지 않는다.
메뉴 도움말 콘솔변수명령어로 검색해 사용하거나
콘솔창의 명령어뒤 ?를 추가하면 도움말이 로그에 나온다
LOD 설정을 만져 점도 세밀한 표현을 해도 된다. offset -2를 해줘도 좋와지는데 min값을 -5로 설정후 offset을 -5로 할수도 있다.
이래도 안되면 해당 메시의 나나이트를 끄거나 레이트레이스쉐도우를 끈다. 버추얼텍스쳐새도우를 사용한다.
라이트가 많은경우 퀄리티가 낮은 버추얼텍스쳐쉐도우도 상관없다.
콘솔명령은 저장이 안되므로 프로젝트 컨피그내 DefaultEngine파일을 열어 콘솔명령을 오버라이드 할수 있다.
다음 항목 밑에 위의 명령어를 넣는데 한칸대신 =를 사용하자