Perlin noise

Perlin noise에 대하여 간단한 정리


Perlin Noise

일반적으로 이야기하는 노이즈(white noise)는 인접한 값들이 서로 어떠한 관계도 갖지 않는다.
즉, 각 모두 무작위 값으로 나열되어 있다.

이런 형태의 노이즈는 인접한 값 사이의 변화가 매우 급격하다.
그래서 무작위적 요소가 작용하는 곳에는 사용할 수 있지만, 점진적 변화가 필요한 곳에는 사용하기가 부적합하다.


Read more

Event handling

이벤트를 처리하는 방법에 대하여


프로그램 런타임에 Event가 발생하면 EventManager는 이를 모두 Queue에 저장해 놓았다가 특정 시점에서 모두 Dispath한다.
게임엔진은 사용자가 원하는 Event Type을 정의하고, 특정 Event Type을 처리하는 Callback을 등록하도록 인터페이스를 제공할 수 있다.

Event

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/** Engine API **/
class IEvent
{
public:
virtual const EventTypeID GetEventTypeID() const = 0;
};

template <typename T>
class Event : public IEvent
{
public:
static const EventTypeID EVENT_TYPE_ID;

virtual const EventTypeID GetEventTypeID() const override
{
return EVENT_TYPE_ID;
}
};

/** Client **/

class KeydownEvent : public Event<KeydownEvent>
{
...
};

사용자는 Event<T>를 상속하여 새로운 Event Type을 정의할 수 있다.

Read more