목록게임/그래픽 프로그래밍 (16)
센로그

요번 학기의 마지막 수업~ PBR. lighting(8장)에서 언급했었다. PBR은 언리얼 엔진 안에서 숨쉬듯이 나옴. 사실 PBR이 일상에 녹아들기 시작한지 10년정도 밖에 안됐음 그만큼 최신트렌드니까 공부해놓으면 좋당 ◆ Phsically Based Rendering (PBR) - Introduction 빛과 material의 물리적인 특성을 시뮬레이션함으로써 렌더링하는 방법. => 보다 정확하고 현실적인 렌더링 아웃풋을 낸다 ■ Phong lighting vs PBR ㆍPhong은 고전적인 method다. Ad-hoc(주먹 구구식의) model, 즉 적당히 잘 동작하게 만든 모델이었음. 그래서 light가 어떻게 material과 interaction하는지도 대충 만들어놨다. 반사광의 양을 ambi..

◆ Shadow Realistic한 scene을 만들기 위해선 Shadow가 무조건 필요하다! 그림을 보자. (a)는 그림자가 없기 때문에, 공중에 있는지 바닥에 있는지 알기 어렵고 위화감이 느껴진다. 반면 그림자가 있는 (b)의 경우 object가 어디에 놓여있는지를 무의식중에 굉장히 빠른 속도로 느낄 수 있다. 그런데.. 그림자 계산하기가 상당히 쉽지 않다고 한다. 왤까? GPU 파이프라인 같은 경우, 정점을 쭉 놓고 한번에 병렬 처리한다고 했었다. 그런데 그림자라는 건, 나한테 오는 빛을 다른 누군가 막은 것임. 그러면, 나한테 오는 빛을 '누가 막았는지'에 대한 정보가 필요해짐. 오브젝트간 참조가 필요하다는 뜻! => 근데 GPU는 병렬 처리 한다며? 그럼 참조 못하잖아! => 특수한 방법으로 이..

◆ Skeleton bone들이 개별적으로 움직이는 걸 관절체(articulated body)라고 함. 관절체를 중심으로 움직이는 구조를 skeleton이라고 함. 캐릭터에 애니메이션을 적용하기 위해서, 보통 skeleton 구조를 사용한다. (skeletal animation) mesh가 skeleton 뼈대를 기준으로, 뼈대와 '함께' 움직이도록 구현하는 것임. ■ Rigging (a)의 경우 default pose의 mesh이고, (b)는 3ds Max에서 제공하는, biped라고 하는 기본 skeleton이다. 이 둘이 안 맞으니까, 잘 조정해서 skeleton과 mesh를 맞춰줘야 할 것이다! 이 과정을 리깅(Rigging)이라고 함. (c) skeleton이 너무 복잡하면 수정을 통해 조정해준..

◆ Bumpy surface 벽돌 벽이나, 포장 도로는 우둘투둘한 표면(Bumpy surface)임. == 우둘투둘한 곳에 vertex가 존재한다는 의미. 당연히 전부 고해상도로 렌더링하면, 현실과 비슷해 보일것임 ㅇㅇ 그러나, 너무 비쌈. 렌더링을 위해, data bus를 통해 CPU => GPU로 데이터 전송을 하고, GPU 파이프라인 내에서 처리를 하게 됨. 이때 vertex 개수가 많을수록 한번에 넘어가야 하는 데이터 개수와, Gpu내에서 처리해야 하는 데이터 양이 많아짐 => 우둘투둘한 표면에 대한 고해상도 폴리곤 메쉬를 처리하기 어려워짐!! 더보기 ※ GPU에 올려놓고 연산 처리하는 과정 : 사실 이 과정은 GPU 성능에 따라 빠르게 할라면 빠르게 할 수 있으니까 괜찮다 치자. 반면 CPU =..

화면상 오브젝트 조작에 관한 이야기 ◆ Object Picking 우리는 손가락 터치이나, 마우스 클릭을 통해 해당 물체를 선택하기를 원함. 클릭된 위치의 좌표 (x_s, y_s)를 반환하고, 이로부터 물체를 선택해서 그 물체에 대한 조작을 할 수 있도록 ㅇㅇ 이를 위한 기본적인 아이디어는, Ray를 쏘자! 가 된다. 스크린의 점으로부터 z축에 ray를 쏘면, 충돌하는 물체들이 있을 수 있음 그중 가장 처음으로 충돌하는 물체를 선택하자~ 하는 아이디어 근데, 그럼 어디서 찾아줘야 하나? screen space에서 찾아주면 되나? ㄴㄴ. 결국 screen space는 렌더링 끝낸 결과물이라, 어떤 오브젝트와 충돌하는지 판단하고 처리를 해주기가 힘듦 따라서 screen space ray를 object spa..

◆ Euler Transform euler angle을 사용해 변환하는 과정 더보기 ※ 이거~ x,y,z축(주축)을 기준으로 회전 가능 => 임의의 축으로 회전하려면, 주축으로 맞춰서 회전하고 다시 원래대로 돌려줬었다 근데 이러면 불편하기도 하고, 문제도 발생함 회전할 때의 order(순서)가 굉장히 중요하다! 순서가 바뀌면 결과가 완전히 달라짐 ◆ Keyframe Animation in 2D keyframe을 사용하여 제작하는 Animation 전통적으로 애니메이션 제작에서는, 시니어 아티스트가 키 프레임을 그리고 주니어 아티스트가 이 사이를 채우는 방식. 근데 이런 방식은 너무 비용이 많이 든다! => 컴퓨터가 자동으로 채워주는 알고리즘이 등장 keyframe들만 정의해주고, keyframe 사이의 ..