2010년 11월 12일 금요일

Unlimited Detail 기술의 현재상태

한 때, Unlimited Detail이라는 3D 그래픽 테크를 광고하던 유투브 비디오를 본적이 있었습니다. 한마디로 폴리곤으로 모델링을 하는 개념을 버리고 3차원 상에 존재하는 점 하나하나를 그리자는 개념이었는데요. 뭐 구현방법은 틀리지만 근본적으로는 Sparse Voxel Octree하고 비슷한 개념이라고 이해했었죠. 어차피 두 기술 모두 1) 폴리곤의 사용을 지양하고 2) linear LOD를 추구하니까요.

이미 레이트레이싱이 당장 게임에 적용가능성이 없는 기법으로 전략해버린 현재 상황에서 결국 Unlimited Detail의 경쟁대상은 Sparse Voxel Octree인데... Sparse Voxel Octree를 이용한 렌더링은 이미 Id 소프트웨어의 차세대 엔진인 Id Tech 6용으로 개발중이니 과연 Unlimited Detail의 현재 상태가 어떻게 되나 궁금해서 한번 뒤져봤다죠.

Unlimited Detail의 웹사이트를 가보니 2010년 9월 17일자로 나온 언론보도자료가 있는데 이미 투자를 받았고 12~16 개월 사이에 데모를 공개할 거라고 하네요. 그리고 처음으로 그 개발자의 이름이 Bruce Robert Dell이란 걸 알게 되었는데 어떤 사람인가 궁금해서 LinkedIn을 뒤져보니 별거 없고 Unlimited Detail에서 CEO를 한게 15년이라고 되어있네요. -_-..... 기술 자체만 봐서는 불가능한 건 아닌데 (어차피 3D Scanning 알고리듬만 제대로 작성하면 가능하니까요), 이 사람의 이력을 보면 왠지 Project Offset처럼 왠지 그냥 허풍만이 아닐까 하는 걱정도 되네요. -_-;;;;

뭐 일단 12~16개월이 지나서 데모가 나오면 알겠죠. 뭐가 진실인지... 정말 그래픽 업계를 홀딱 뒤집어 놓을런지....

또 다른 생각이 드는 것은 결국 Sparse Voxel Octree이던 Unlimited Detail이던 폴리곤기반의 모델링에서 다음 단계로 넘어가는 것은 시간 문제인것 같은데 과연 그렇게 되면 폴리곤 모델링을 중심으로 해서 발전되온 아티스트들의 교육은 어떻게 바뀔지.... ZBrush처럼 sculpting 기반으로 다 바뀔까요?

2010년 11월 2일 화요일

NVIDIA Texture Tools 2.1 출시 임박

NVIDIA 텍스처 툴의 개발자이자 유지보수자인 Ignacio님과 대화를 통해 알아낸 사실입니다. 새 버전 2.1의 출시가 임박했다는군요. (이번주에 나온다고 들었습니다). 2.0.8 버전과는 달리 제가 원하는 기능이 하나 들어있는데요. 바로 이 페이퍼에서 다뤘던 YCoCg 텍스처 압축이죠. DXT 텍스처의 품질저하를 줄일 수 있는 방법입니다.


YCoCg 변환을 하기전에 sRGB 텍스처를 linear 스페이스로 변환하는지가 궁금해서 Ignacio님께 물어봤더니 2.1은 API 설계원칙 자체에 커다란 변화가 있었다고 하더군요. 영어로는 Imperative API라고 하는데 (한국말로는 잘 모르겠음.. 뭔지) 대충 설명하면 모든 API 함수 호출을 일일이 해주는 방식이랄까요. 즉, 프로그래머로써는 모든 parameter들을 직접 제어할 수 있으니 매우 좋은 방법이죠. sRGB를 Linear로 변환한뒤 사용하고 싶으면 스스로 하면 된다.. 정도랄까요. 어쨌든 2.1 버전은 매우 기대가 되는군요.


참고로 이미 Ignacio님의 회사에서 2.1 버전을 꽤 오랬동안 사용해왔다고 합니다. 버그도 그리 많지 않을듯 하네요.

2010년 9월 8일 수요일

게임개발자 북미취업 가이드 7편: 질문/답변

안녕하세요. 포프입니다. 벌써 마지막 편이군요. 처음에 이 시리즈를 계획할 때, 글을 쓰다보면 상당히 많은 질문들을 받겠구나 했는데, 사실 그렇게 많은 질문들은 없었습니다. 제 글이 별로여서 읽으신 분들이 별로 없었거나, 아님 제가 너무 글을 잘써서 질문할 거리들이 없었던 거겠지요. (제 맘대로 후자로 생각하겠습니다. ^^)

원래는 이번 글에서 질문에 답변을 드린 다음에 생각나는대로 제가 드릴 조언들이 있으면 올릴려고 했는데 글을 쓰면서 제가 당장 생각할 수 있는 조언들은 이미 다 드린듯 합니다. 그래서 일단 이번 편에 마지막으로 올리고, 나중에 뭔가 생각나는 게 있으면 그제서야 올리겠습니다. 일단 이 글이 마지막이라고 생각하세요. ^^

그럼 몇 안되지만 제가 받았던 질문들에 대한 답변들을 다시 정리해 올리면서 이 시리즈를 마무리 짓겠습니다.

질문 1: 북미쪽은 신입개발자들의 나이가 어떻게 되나요?
짧은 답: 대중 없습니다. 상관도 없습니다.
긴 답: 이 쪽 노동법상 면접을 보거나 원서를 받을 때 나이를 물으면 그 자체로 노동법 위반입니다. 성별 나이에 상관없이 동등한 취업기회를 제공하는 것이 헌법의 정신이기 때문입니다. 물론 대부분은 대학을 졸업하고 취업을 하는 경우가 보통이라 만 22살 정도의 사람들이 신입이 좀 많습니다. 하지만 그 외에도 나이가 차서 취직하는 경우도 허다하지요. 저같은 경우도 만 28살 정도나 되어서 이쪽에서 신입으로 취직한 거나 다름 없으니까요. 심지어는 저희 회사에 50대에 신입 프로그래머로 취업한 분(미국인)도 한분 계십니다. 헐리우드 쪽에서 영화제작에 주로 참여하다가 게임쪽으로 전향하셨죠.

질문 2: 실력은 어느정도 되야 하나요?
짧은 답: 기본이 탄탄하고 기본적인 C/C++ 질문들은 컴퓨터 없이 프로그래밍을 할 수 있을 정도면 됩니다.
긴 답: '3편: 취업을 위한 필수/선택요건 - 면접절차'의 젤 아래에 보면 "프로그래머 면접문제들 예제'를 올려놨습니다. 그 질문들 무난하게 푸실 수 있으면 됩니다.

질문 3: 영어 공부는 어떻게 해야 하나요?
짭은 답: 공부가 아니라 생활이 되어야 합니다.
긴 답: 매우 긴 답이 될 거 같습니다. 생각보다 이 부분에 걱정하시는 분들이 너무 많으셔서요. 영어를 공부하려고 공부하면 역시 안되더군요. 짜증만 나고 스트레스만 쌓이고, 괜히 영어 잘못쓸까봐 고민만 하게 되고... 저도 사실 영어를 잘해야지 라는 생각을 안한 뒤부터 영어가 많이 늘었습니다. 물론 저는 BCIT다니면서 캐나다 본토인들과 거의 동고동락 하는 친구사이가 된게 컸지요. (그 친구들 제 영어가지고 참 많이도 놀렸다죠. ^^) 

하지만 한국에 계신분들은 이런 경험을 하기가 쉽지 않을 것입니다. 그래서 제가 추천하는 방법은 일단 좋아하시는 분야의 책을 영어로 읽으시라는 겁니다. 소설도 좋고 기술서도 좋죠. 어차피 게임개발자들 최신기술들은 외국자료에서 얻으시잖아요? 그냥 그거 읽으시길 바랍니다. 근데 한가지 당부하실것은 한영사전을 끼고 한단어 한단어 분석해가면서 읽지 마시길 바랍니다. 그냥 문장이 해석이 되던 안되던 처음부터 끝까지 한 두번정도는 그냥 읽으세요. 그러다보면 앞에서 해석이 안되었던 문장이 뒤의 문장을 읽으면서 저절로 해석이 되는 경우가 많습니다. 정확한 뜻은 모르지만 문맥상 이해가 되는 경우죠.

한국말로 된 소설책 읽어보셨나요? 그런 책 읽을 때 모든 단어 하나하나의 의미를 다 아세요? 전 모르겠더군요. 근데 재미있는건 그 단어 하나 모른다고 사전찾아보지 않아도 글 전체를 이해하는데는 아무 하자가 없다는 것입니다. 영어도 그렇게 하면 익혀지더라고요.

또 이렇게 사전을 안보고 한두번 읽으면 좋은 것중에 하나가 몇번이나 계속해서 나오는 단어들을 기억하게 된다는 겁니다. 이해가 안되는 단어 하나가 한 5~6번 반복되다 보면 '아, 이 단어 앞에서 봤는데 이게 뜻이 뭐지? 아, 답답해.'라는 생각이 들면서 그 단어를 확실히 기억하게 됩니다. 그리고 나중에 3번째 정도 읽으실 때 그 단어의 뜻을 사전에서 찾아보면 머리에 확실히 기억됩니다.

이렇게 하는게 처음부터 사전을 찾는 것과 뭐가 다르냐고 하실 분들이 계실거 같은데, 저의 경우에는 확실히 달랐습니다. 글을 읽으면서 중간 중간 멈춰서 사전을 찾아보다 보면 글 읽는 흐름이 끊겨서 글의 전체내용을 이해하기 어려워지면서 영어 느는 속도가 더뎌지더군요.

이 외에도 영어 듣기를 늘리고 싶으신 분들은 정찬용씨가 저술하셨던 '영어 공부 절대로 하지마라' 책에서 소개한 내용을 따라해보시기 바랍니다. 이 방법을 간단히 요약하면 그냥 영어로 된 영어든 드라마던 강의던.. 영어로 된 자료들을 자막 없이, 사전 없이 그냥 듣고 읽으라고 하지요. 그것이 바로 어린이들이 새로운 언어를 습득하는 방법과 같다고 하시더라고요. 저도 이 주장에 절대 공감합니다. 저도 영어듣기를 공부에 의해서가 아닌 그냥 사람들하고 어울리면서 익힌 케이스거든요.

하지만 '3편: 취업을 위한 필수/선택요건 - 면접절차'에서 말씀드렸듯이 영어 아주 잘하시지 않으셔도 취직엔 크게 문제가 없습니다.

질문 4: 포프님이 추천하는 북미취업방법은 무엇인가요?
짧은 답: 실력을 보여줄 수 있는 가장 확실한 방법을 택하세요.
긴 답: 첫째, 한국에서 게임프로그래머로서 경력을 최소 2~3년 쌓으세요. 둘째, 경력을 쌓으시면서 실력을 충분히 올려놓으시기 바랍니다. 셋째, 캐나다에 있는 회사에 취업을 하세요. (캐나다는 미국보다 비자가 좀더 쉽게 나옵니다. 하지만 원래 가시고자 하는 회사가 미국에 있고 곧바로 미국에 지원해서 취업이 되시고 비자도 받으시면 그게 더 좋죠. ^^) 넷째, 캐나다에서 2년정도 경력 쌓으시면 영주권 받는게 가능할 겁니다. (더 빨리도 될 수 있죠.) 영주권 받고 2~3년 더 계시면 캐나다 시민권도 받으실 수 있습니다. (캐나다 시민권자는 또 미국비자가 쉽게 나오죠.) 다섯째, 가시고 싶은 회사에 가십니다. (미국이던 캐나다던).




요 4가지 질문이 끝입니다. 더 이상은 받은 질문이 없네요. ^^ 왠지 시리즈 하나를 끝내니 뿌듯하면서도 조금 시원섭섭한 맛이 있는데 앞으론 어떤 글을 올려야할지 모르겠습니다. 그냥 예전처럼 "이것저것" 시리즈를 올릴 수도 있고, 게임 프로그래밍 관련 글을 생각나는 데로 올릴 수도 있고요. 아니면 그냥 다이어리 형식으로 1주간 한 일을 올릴 지도 모르겠네요. 음.. 뭐가 제일 나을까요?

그리고 이제 북미취업 가이드 시리즈를 끝냈으니 전에 잠깐 말씀드렸던 HLSL 입문서적을 저술하는 계획도 좀 세워봐야 겠네요. 출판사쪽에서 관심은 있다고 자세한 저술 계획서를 제출해달라고 했더라구요. ^^

그럼 그동안 북미취업 가이드 읽으시느라고 수고하셨습니다. 나중에 제가 글 올리는 거 보실려면 RSS 구독하시면 될것 같네요. ^^.

모두 집중적인 현명한 노력을 통해 원하시는 바 꼭 이루세요. ^^

-포프 올림


p.s. 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^