목록전체 글 (194)
센로그

◆ 프로퍼티 (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는 병렬 처리 한다며? 그럼 참조 못하잖아! => 특수한 방법으로 이..

◆ Dynamic Programming (DP) Introduction MDP로써 환경을 잘 아는 perfect model이 주어졌을 때, optimal policy를 계산하기 위한 알고리즘의 집합. DP는 RL에서 최적 policy를 찾을때 많이 쓰이고, 이를 위한 기반이 되는 algorithm을 제공하기도 함 즉, 다른곳에서 사용되는 RL 알고리즘도 결국에는 DP를 활용해 좀 더 빨리 찾는 방향이나, perfect하지 않은 model을 사용할 때 찾는 방향으로 발전하는 것이기 때문에, DP가 그런 알고리즘들의 근간이 되는 것이라 할 수 있다는 것. DP의 아이디어는, “value function을 이용해서, 정말 좋은 policy를 찾아나가는 것.” 일단 Optimal value function을 찾..

◆ Reinforcement Learning Introduction 동물들을 어떻게 학습을 시켜야 내가 원하는 대로 행동을 잘 해줄까~? Concept은, "어떤 행동의 결과를 강화"하는 것 앉아! 라고 했을 때 앉는 행동을 강화시켜서, 앞으론 앉아! 라고 햇을 때 더 많이 앉도록 만드는 거 Trial-error를 반복하면서 Reinforcement Learning(RL) 을 진행하는 방법을 pleasure-oriented라고 함 [용어 정리] Agent 어떤 environment 내에서 결정도 내리고, 그에 따라 action을 취하는 주체 Environment Agent가 인터랙션할 대상. (State들의 집합) State Environment에서 현재 상태. 즉, Agent의 어떤 시점에서의 상태나 ..