2012년 7월 27일 금요일

셰이더 프로그래밍 입문 책 예약판매 시작합니다.

셰이더 책이 드디어 예약판매에 들어갔답니다. ^_^ 줄간일이 7월 31일이군요.. 알려주신 김경진님꼐 감사드립니다.




셰이더 프로그래밍 입문 예약판매

2012년 7월 10일 화요일

대체 왜 이걸 다시 구현해야하는 거지?


요번주에 마무리짓고 싶은일... 다음달에 시그래프 2012에서 발표할 스크린 스페이스 데칼 프리젠테이션 마무리하기. 그냥 PPT파일만 하나 만들면 되는거였다면 좀더 열심히 해서 끝냈을지도 모르겠다. 하지만 Relic Entertainment에서 퇴시한 지금 코드도 내 수중에 없고 맵 에디터도 없다는것... 따라서 이 모든 기능들을 다시 대충 만들어서 데모 프로그램을 만들었음... 그래야 스샷도 찍을수 있을테니까.

솔직히 말하면 꽤 지겨운 일이다. 이거 재구현함으로써 새로 배우는것도 없고 개인적인 발전이 있는것도 아니니까. 이미 너무나 잘 알고 있던거 그냥 반복하는 수준.. -_-; 뭐든간에 모든 기능 구현은 끝냈고, 테스트 아트들도 다 배치해놨으니.... 요번주에만 끝내면 되겠지...

프리젠테이션 준비 마무리하면 좀더 시간을 투자하고 싶은 프로젝트가 2개 있으니.. 그걸 구실삼아 어떻게든 프리젠테이션 준비를 요번주에 마무리할 수 있지 않을까... 하는 희망만 품어봄..

어디 어찌되는지 두고보자.. -_-

2012년 7월 9일 월요일

XML 데이터를 읽어올수 있는 C# 클래스 자동생성하기

예전에 작성해놨던 작업일지에 보니 이게 있네요. 그래서 까먹기전에 재빨리 포스팅합니다. 뭐 혹시 다른 분께 도움이 될 수도 있으니....

XML 파일을 그대로 읽어올 수 있는 C# 클래스를 자동으로 생성하는 것... 예전에 CAT 릭을 사용한 애니메이션 데이터를 3DS Max에서 읽어와서 Unity안에서 쓰려고 할 때 시도해봤던 겁니다. FBX파일을 CAT 릭에서 IK를 사용한 애니메이션 데이터를 제대로 export하지 않거든요. FBX에서에서 돌게하는 유일한 법은 애니메이션을 각 프레임 별로 bake하는건데 전 key frame 정보를 사용하고 싶었어요. 그래서 FBX 대신에 3DS Max에서 곧바로 XML 파일로 애니메이션을 저장할 수 있는 자체 기능을 써볼려고 했죠.

XML 파일을 저장해낸 뒤에 이 파일을 한번 문서편집기에서 열어봤죠. 데이터 구조가 그리 복잡하지 않다면 XML 파일을 곧바로 deserialize할 수 있는 C# 클래스를 손수 작성할수 있을거라 생각했거든요. 근데.... 그게 아니더군요.. 너무 복잡해요 -_-;;; 그래서 다음으로 생각한게.. '이걸 자동으로 해주는 툴이 있지 않을까?' 하는 것...

구글에서 검색을 해보니 스택오버플로우 에서 비주얼 스튜디오에 딸려나오는 xsd.exe을 이용하면 이게 가능하더다군요:
뭐 결국 제가 실행해야할 컴맨드라인 명령은 다음 두 줄 뿐이었습니다.

xsd test.xml /classes -> test.xsd
xsd test.xsd /classes -> test.cs

첫째 라인은 XML 파일로부터 XML 스키마 파일을 만드는거구요. 두번째 라인은 스키마 파일로 부터 C# 클래스를 생성하는 겁니다. 일단 test.cs 파일을 만든 뒤에 제가 할 일은 C#에서 자체적으로 지원하는 XML Serializer를 이용해서 C# 개체로 모든 데이터를 읽어오는 게 전부였죠. 대충 이렇게 보이는 코드입니다.

XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(test));
FileStream stream = File.Open(@"test.xml", FileMode.Open);
var a= (test)x.Deserialize(stream);

매우 간단하죠? 저도 너무 간단해서 놀랐어요 -_-;;; 근데 불행히도 XML 파일에서 제가 원하던 키프레임 정보를 읽어올 수 있어서..... 결국 사용하지 않았죠.. 뭐든간에... 알아두면 유용한 지식!


2012년 7월 8일 일요일

효과적인 온라인 대화 스타일

온라인에서 가끔 메신저나 또는 문자 메시지로 들어오는 질문들에 대한 내 default 대답.

너: "내일 시간 있어?"
나: "없어" 또는 (씹음)

너: "뭐해?"
나: (씹음)

너: "있어?"
나: (씹음)

너: "뭐좀 물어봐도 돼?"
나: "안돼" 또는 (씹음)


뭐 싸가지가 없다고 보는 사람도 있겠지만.. 난 온라인상에서 매우 비효율적으로 대화하는 사람을 싫어한다. 위와 같이 물어보는 것은 사실 오프라인 대화에서 적절한 방법 아닌가? 예를 들어 내가 다른 일에 신경을 쏟고 있을때 누군가 다가와서 "시간좀 있어?"라고 물으면 잠시 하던 일을 멈추고 대화모드로 전환해야 하니까... 그러면 그때부터 실시간으로 짧게 대화하면서 할말 끝내고 끝... (오프라인처럼 질질 끄는 대화가 아니라 실제 곧바로 이야기하면서 일 처리 후다닥 끝낼수 있음...)

하지만 위와 같은 대화를 온라인에서 하게 되면 정말 짜증난다. 일단 온라인 상에서 또는 문자로 대화할때는 상대방이 곧바로 대답을 하지 않는 것이 일반적... 일방적인 소통 수단이니까... 보통 한쪽이 말을걸면 다른쪽이 그 메시지를 확인하는데 시간이 좀 걸림... 그리고 상대방이 메시지를 확인할 때가 되면 이미 이걸 확인하려고 다른 일을 멈춘 상태... 즉 이미 질문자가 물어볼 "본론"을 읽을 자세가 되어있다는 이야기다.

본론을 받아들을 자세가 되어있을때에도 보이는 메시지라곤 아무 속알맹이 없는 "있어?"따위의 메시지라면 엄청난 시간 낭비이다. 여기에 "응, 있어"라고 대답하면 원래의 질문자는 또 자리를 뜨거나 다른 일을 하느라고 답하지 않는 경우도 허다하고.... 그냥 처음부터 본론부터 말해놓으면 내가 메시지를 보고 곧바로 답을 보내주면 끝날 것을.. 왜 이따위로 비효율적으로 대화를 하는지 모르겠다.

물론 위의 예에서 한가지 예외는 "내일 시간 있어?"라는 질문... 이 질문에 내가 곧바로 "없어"라고 대답하는 이유는... 상대방이 실제 뭘 원하는지 모르는 상황에선 내가 시간을 내줄 수 있는지 없는지 모르기 때문이다. 내가 다른 약속이 잡혀 있더라도 상대방이 내게 하고 싶어하는 일에 더 흥미가 간다면 이전 약속을 취소해서도 시간을 내줄거고.. 그 반대라면 설마 내가 시간이 있더라도 하기 싫다고 거절할 수도 있으니까...

왜 다른 약속이 안잡혀 있으면 당연히 자기들 일을 처리해줄거라고 생각하는거지? 지 하기 싫은 일들을 거절할때 바쁘다는 핑계를 대는게 일반화되어 있는 문화라서 그런가?..

아.... 참고로 이건.... 한국인들과 온라인으로 대화할때 생기는 문제점을 말한 것... 캐나다쪽에선 이런 문제를 겪은 적이 없지만.. 내가 사람만나는 서클이 주로 개발자에 한정되어 있어서 일수도 있음.... 한국인중에서도 사실 개발자들은 이런 문제가 적으니까... 워낙 단도직입적으로 일 처리하는게 일반화 되어있는 직군이라서 그런듯... 한마디로 한국에서 몇 안되게 제대로 사는 직군이라 생각함..

어째든 오늘의 rant는 이정도로 끝




북미취업 가이드 독자 리뷰 2개. (인터파크)

안녕하세요 연두 이유식 좋은거 먹여보겠다고 여전히 책광고에 여념이 없는 포프입니다... 인터파크에 가보니 독자리뷰가 두개나 달려있어서 후다닥 올립니다.. ^_^



좋은 리뷰 모두 감사드립니다. ^_^

2012년 7월 2일 월요일

북미취업 가이드 독자 리뷰 #1 by 슈~♥

슈~♥님이 제 책을 읽으시고 본인 블로그에 남기신 리뷰가 있길래 링크를 퍼옵니다. 제 책이 다른 사람들의 이정표 비스무리한게 된다니 기분이 좋네요. ^^ 리뷰는 아래 링크를 눌러주세요.

슈~♥님의 리뷰 보기