목록게임 (69)
센로그
◆ 프로퍼티 (Property) class의 private, protected 같은 보호수준의 멤버는 외부에서 접근할 수 없다. 그러나 외부에서 이 값에 접근해야 하는 경우가 있는데, 이 경우 프로그래머는 GetMember(), SetMember() 같은 메서드를 정의해 접근할 수 있도록 한다. 그런데! 클래스가 너무 많아지면, GetMember(), SetMember() 메서드도 엄청나게 많아질 것이고, 이런 멤버 접근 기능은 수많은 클래스들에서 요구하기 때문에 C#은 내부적으로 프로퍼티(Property)라는 문법을 제공한다. ◆ 프로퍼티 (Property) 사용 방법 class Character{ protected int hp; public int HP{// 멤버 변수 hp값을 get 및 set 할 ..
◆ Object pool이란? 많이 사용되는 오브젝트들을 동적으로 생성/파괴하는 대신, 미리 pool에 담아놓고 필요할 때마다 꺼내 쓰는 방식. custom allocator의 느낌. 동적으로 메모리 할당 시 발생하는 다양한 문제(시간, 메모리 파편화, 등...)를 해결하기 위한 방법. 게임에서는 실시간성을 확보해야 하기 때문에 특히 시간이 중요함!! ◆ Object pool의 사용 예를들어, 500명의 플레이어가 있는 게임에서, 총알 오브젝트를 생성/파괴한다고 하자. 최소한 500개의 총알이 실시간으로 만들어져야 한다! ■ object pool 미사용시 :생성시마다 Instantiate, 파괴시마다 Destroy를 호출해줘야 함. 동적으로 메모리를 할당 및 해제해야 한다는 뜻. user↔kernel 모..
요번 학기의 마지막 수업~ 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는 병렬 처리 한다며? 그럼 참조 못하잖아! => 특수한 방법으로 이..
◆ Motion Capture란? Motion Capture는 물체나 사람들의 움직임을 기록하는 것을 의미함. 초당 몇번씩 움직임을 샘플링해서, 디지털 데이터로 바꾼다. 이 기록 데이터는 2D 또는 3D 캐릭터 애니메이션을 만드는 데 쓰임! 만약 얼굴이나 손가락, 또는 미묘한 표정이 포함되면 performance capture라고도 불림. (구분하는 이유는, 얘네는 캡쳐하기 까다롭기 때문. 세밀하고 정교한 캡쳐가 필요함.) 보다 진짜같고 자연스러운 애니메이션을 만드는 것을 목표로 Motion Capture을 사용한다. ◆ Character Animation을 만드는 몇가지 방법들 캐릭터 애니메이션을 생성하는 방법들로는 몇가지가 있다. key frame animation procedural animatio..
◆ 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이 너무 복잡하면 수정을 통해 조정해준..