3월, 2023의 게시물 표시

Unreal Engine : 프레넬과 선형보간법

이미지
 Fresnel 프레넬 계수  빛이 어떤 매질에서 다른 매질로 향할 때 모두 반사되거나 모두 투영되지 않고 빛의 일부는 반사되고 일부는 투영된다.  굴절률과 입사각이 주어질때 프레넬 방정식을 이용하면 입사하는 빛에 대한 반사율을  알려준다. 수학은 아니겠지... 엔진에서 시뮬레이션 해보겠습니다. 프레넬 노드는 카메라 시점으로 물체의 정면과 측면에 따라 0~1의 값을 출력해 줍니다. '구'로 설명하자면 정면은 0, 측면은 1입니다. 설명을 위해 베이스 컬러에 연결해 보면 가운데는0, 외곽은 1이기 때문에 이러한 형태로 보입니다. 해당 부분을 투명도가 있는 물체에 적용해 보겠습니다. 셰이더의 블랜드 모드는 Translucent 라이팅모드는  Surface TranslucencyVolume 프레넬 노드는 오파시티에 연결해 줍니다. 짜잔 외곽만 남았습니다. 굴절에도 프레넬을 적용하여 보겠습니다. 굴절률만 넣으면 다소 어색함이 있기 때문입니다. 왜 에에? 왜? 빛의 굴절은 입사각에 따라 각도가 달라집니다. 오호.. 우선 수치만 넣어보죠 입사각과  상관없이 굴절률이 일정하게 들어갑니다.  그럼 입사각에 따라 굴절률을 다르게 표현하려면 어찌해야할까요 ? Fresnel와 Linearinterpolate 이 필요합니다. 철자가 너무 길고 어려워.. 프레넬과 선형보간이 필요합니다. 선형 보간이란? 선형 보간법은 1차원 직선상에서 두 점의 값이 주어졌을 때  그 사이의 값을 추정하기 위해 직선 거리에 따라 선형적으로 계산(비례식)하는 방법이다. C의 X 좌표가 주어졌을때 보관법을 이용하여 Y좌표를 알아 낼 수 있다.  C의 X가5일때 Y는? 2  --- 5 --- 7 5는 2와 7 사이의 60% 1과 4 사이의 60%는? 2.8 (1 + 3x0.6) 아무튼 적용해 봅시다. 프레넬에서 적용된 0~1의 값은 1~1.33으로 치환되어 굴절에 입력됩니다. 꽤 근사합니다.    ...

Unreal Engine: Space Design

이미지
  이미지 출처 https://www.ignant.com/2021/10/20/from-retro-to-contemporary-the-stunning-interior-spaces-of-cgi-artist-benjamin-guedj/ 배경 제작을 위해 텍스쳐가 필요하기 때문에 메가 스캔을 이용합니다. 언리얼 5 부터는 엔진안에 브릿지가 연결되어 있습니다. 스캔기반의 고품질의 텍스쳐와 에셋을 프로젝트에 사용할수 있습니다. 우선 오늘은 텍스쳐를 다운 받아 사용해 봅니다. 욕실 이미지의 바닥에 필요한 텍스쳐를 찾아봅니다. 비슷한 이미지를 다운로드 합니다. 다운로드후 ADD를 누르면 프로젝트 안으로 Import 됩니다. 머터리얼까지 만들어져 있습니다.  지오 메트리 브러쉬로 구조를 만들어 봅니다.  브러쉬 크기와 타입이 중요합니다. Addtive: 메쉬를 더합니다. Subtractive: 메쉬를 뺍니다. 지오메트리 브러쉬는 각면의 UV를 조정할수 있습니다. 머터리얼 파라미터  Albedo Tint : 색상을 더합니다. Max Roughness : 최대 거칠기 수치 Min Roughness : 최소 거칠기 수치 Normal Strength : 노멀 텍츠쳐의 최대 강도

Unreal Engine : cube stage

이미지
 물리 기반 렌더링 표면의 재질의 따른 빛의 반사가 물리적으로 어떻게 이루어지는지  시뮬레이션하여 컴퓨터 그래픽으로 표현하는 기법 가산 혼합 (빛의 물리적 이론) 정반사와 난반사 Specular Reflection, Diffuse Reflection 표면이 매끄러우면 정반사, 표면이 거칠면 난반사가 잘 일어 납니다. 금속은 스펙큘러 Color를 가지고 있고 비금속은 고유의 Specular Color가 없습니다. 프레넬 큐브를 쌓아서 픽셀 아트를 해봅니다.  스페이스 인베이더(1978) 스태틱 메시는 아래 큐브를 사용하였습니다. 머터리얼은 새로 만들어 줍니다. 물리기반셰이더의 기본은 베이스 컬러, 메탈릭, 러프니스입니다. 백터로 컬러를 입력합니다. 러프니스, 메탈릭의 값을 상수로 연결해 줍니다. 각종 값을 간단히 변경하여 사용하기 위해 인스턴스 머터리얼을 만들어 줍니다. 인스턴스 머터리얼을 만듭니다. 인스턴스 머터리얼을 클릭하면 노드를 보여주지 않고  각종 파라미터를 설정할수 있도록 해줍니다. 공간을 연출하기 위해 벽을 높히고 천장을 만들어 줍니다. 밖에서 들어오는 빛과 안쪽 색상을 일부 변경해줍니다. 분위기를 위해 빛나는 물체도 하나 만들어 줍니다. 발광체를 만들기 위해 재질에 이미시브를 더해줍니다. 자동 노출 기능을 추가하기 위해  포스트프로세스 볼륨의 노출값을 수정해 줍니다.