GPG 3권 번역일지 2002.10.24

제목 그대로..<BR>번역하면서 생각나는 것들을 올리겠습니다... 가끔 질문도 할께요(번역 용어 등등)..

Moderator: 류광

류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

GPG 3권 번역일지 2002.10.24

Post by 류광 »

2부까지 마치고 잠시 GDI+ 책 교정을 보고 있습니다..

자 이어서..

1.13은 3D 게임의 실시간 입력과 UI에 대한 이야기인데 크게는 XML을 사용해서 UI를 정의하는 부분과 DirectInput의 버퍼 모드에 대한 부분으로 나뉘어 있습니다. 3D에 2D 사용자 인터페이스를 통합하는 방법도 언급되어 있구요. 전체적으로 좀 개괄적입니다. 구체적인 구현 부분은 CD-ROM의 소스에서 건져야 할 듯...

1.14는 머리는 잊어도 몸은 기억한다.. 라는 개념을 소개하면서 파이 메뉴에 대한 이야기를 풀어나갑니다.

파이 메뉴란 심즈에 나오는 종류의 팝업 메뉴를 말하는데 네버윈터에서도 쓰였죠. 마우스를 클릭하면 그 주변으로 메뉴 항목들이 둥글게 배치되는 거요.. 개인적으로 마음에 드는 메뉴 방식입니다. http://www.piemenu.com/ 참고...

1.15는 C++ 템플릿 고급 과정에 해당하는 데요.. 이 포럼에서 가끔 언급되었던 'Modern C++ Design' 책에서 제시된 방침(policy) 기반 설계에 대한 글입니다. 메시지 로그 시스템에 방침 기반 설계를 적용한 사례가 설명되어 있는데 상당히 재미있습니다.

1.16은 저널링 서비스..라는 개념과 구현에 대해 이야기합니다. 게임 프로그래머들은 좀 익숙하지 않은 주제일 수도 있는데.. 업무용 프로그래밍 해 본 사람이라면 쉽게 다가올 개념입니다(MSMQ라던가....). 기본적으로는 확장성, 유연성을 가진 이벤트 전달&로그 시스템에 해당하는데, 글에서는 주로 디버깅 목적으로 사용하는 부분을 이야기하고 있네요. 콘솔 게임이나 전체 화면 모드 등 디버거를 사용하기 어려운 상황에 대한 하나의 대안으로 쓰일 수 있습니다.

1.17은 또 다른 프로파일링.... 1권에 나왔던 것을 좀 더 확장한 형태라고 볼 수 있습니다. 여러 범위의 코드 블럭들에 대한 프로파일링을 계통적으로 조직화하고, 실행 시점에서 파일 탐색기 사용하듯이 프로파일 데이터 트리를 위, 아래로 탐색해 나갈 수 있게 하는 시스템입니다....

2 부로 넘어가서...

2.1은 밑이 2인 로그(logarithm)와 난수 발생을 빠르게 수행하는 기법에 대한 것입니다. '2'라는 숫자에서 짐작하시겠지만 주로 비트 조작 기법들입니다..

2.2는 2부에서 가장 흥미로운 글인 것 같은데 3D 연산의 반올림 오차를 줄이기 위해서 벡터를 '분수'로 표현한다는 개념을 소개하고 있습니다.

예를 들어 부동소수점 기반에서 (V / 3) * 3 은 정확히 V와 같지 않은데, V/3을 나누기를 수행하지 않고 V/3이라는 분수 자체로 저장해 두면, 나중에 3을 곱했을 때 분자, 분모를 그냥 제해서 정확히 V가 나옵니다..

2.3은 삼각함수 근사에 대한 이야기입니다. 공명 필터, 최소최대 다항식 근사 등등... 어려웠음 -.- 삼각함수 구하는 방법이 참 다양하네요..

2.4는 사원수 압축. float 네 개(128비트)로 된 단위 사원수 하나를 32 비트로 줄일 수 있다는 이야기인데 글을 읽고 나면 수긍이 갑니다..

두 가지 방법을 이야기하는데 하나는 가장 큰 성분을 제거하는 것(단위 사원수이이므로 가능하죠). 또 하나는 사원수를 방향 벡터 + 회전각으로 보고 방향 벡터를 x, y, z 대신 요, 피치 두 값로 줄이는 것입니다... 그 두 방법 자체는 어려운게 아닌데.. 글에서 주로 이야기하는 것은 그 과정에서 정확성을 최대한 보존하는 방법입니다.

2.5는 역기구학(IK)인데 GPG 시리즈에서는 처음 나온 듯... IK의 한 방법인 Cyclic Coordinate Descent를 소개하고, 그와 함께 신체의 실제 한계에 해당하는 제약조건을 IK에 적용하는 방법을 이야기하고 있습니다. 어깨가 뒤로 완전히 꺽이지 않게 한다던가 등등...