- 요약다시점 이미지를 이용하여 복셀 카빙 기법으로 3차원 모델의 텍스쳐를 자동으로 생성할 수 있다. 3D 모델에 그 텍스쳐를 맵핑할 경우 2차원 차트에서 폴리곤이 겹치는 문제(Self-Intersection)와 텍스쳐가 스트레칭 되면서 맵핑되는 문제에 의해 모델의 품질이 저하되는 문제가 발생한다. 이것을 해결하기 위해 텍스쳐를 한 장만 이용하는 것이 아니라 일정한 각도에 따라 모델을 촬영하여 약 20장의 텍스쳐 후보를 생성한 뒤, 적절한 텍스쳐 조각을 선택하여 맵핑하는 아이디어를 소개하였다. - 새롭게 알게 된 점1. 복셀 카빙이라는 텍스쳐 생성 알고리즘을 알게 되었다.2. 모델을 분할하여 생성된 3차원 차트를 매개변수화 하여 2차원 차트를 생성할 때 자기 겹침 현상이 일어난다.3. 텍스쳐 자체의 저장..
방정식이 문자열로 주어졌을 때, 파싱하여 방정식을 곱할 수 있게 한다.
다중 해상도를 지원하는 것은 상당히 골치 아픈 일이다. 굉장히 많은 방법이 있겠지만 내가 나름대로 삽질을 거듭하면서 괜찮다 싶은 솔루션을 공유해보려고 한다. 나는 Design Resolution과 Resource Search Path, Content Scale Factor를 활용하기로 했다. 이 글에서는 이 속성들을 깔끔하게 잡는 법에 대해 설명하려고 한다. 나는 AppDelegate.cpp에서 Design Resolution을 재가공 해주는 방안을 선택했다. 왜 재가공 해주어야 하는가? 세상에는 정말 다양한 해상도의 기기들이 많다. 문제는 이 기기들의 종횡비도 제멋대로라는 것이다. 아이폰만 해도 960x640, 1136x640은 종횡비가 다르다. 거기다가 아이패드까지 생각하면 1024x768으로 큰 차..
최근 머리를 앓게 하는 문제는 바로 Multi resolution screen support이다. 검색해보면 Designed Resolution에 대한 분석글이 몇 개 있긴 한데 만족스럽게 설명이 되어있지 않았기도 하고, 생각을 정리할 필요도 있을 것 같아 포스팅을 결심하게 되었다. 모바일 세상은 굉장히 다양한 해상도가 공존하는 세상인데, 멋진 게임이라면 스케일링을 깔끔하게 해서 해상도가 달라도, 또 종횡비가 달라도 예쁘게 보여져야 하는게 인지상정이다. 문제는 내가 초보라서 그런지, 문제 해결 방법이 쉽게 떠오르지 않는다는 것이다!! 게다가 이 문제가 가장 크게 대두되는 부분이 바로 UI 배치이다. 게임에서 UI는 유저한테 첫번째로 보이는 부분이기 때문에 굉장히 중요하다. (너무 당연한거라서 말하고도 뻘..
진짜 엄청 열심히 자료를 찾아다녔는데, 오늘에서야 잘 작동하는 소스를 찾을 수 있었다. 내 역량을 키워서 직접 수식을 만들 수 있으면 참 좋겠지만, 시간이 부족하다보니;;; 얼른 역량을 키워야 하는데 슬프다. 이 문제를 궁금해 하는 사람이 굉장히 많을 것 같은데 의외로 솔루션이 잘 검색되지 않아서 당황했다. 나 같은 경우에 처음에는 4개 직선의 방정식을 활용하여 타일 좌표를 구하는 방식을 이용했다. (참고 : http://eirenehue.egloos.com/970017) 소스는 다음과 같다. (나 같은 경우 맵 사이즈는 20 * 20, 타일 사이즈는 64 * 32 였다.) bool decisionLineAndPosition( float slope, CCPoint p1, CCPoint p2 ) {// s..
Cocos2d-x는 라이브러리가 몇 가지 나눠져있다. 물리를 담당하는 libBox2D, libchipmunk, 사운드를 담당하는 libCocosDenshion, 기본 cocos2d-x인 libcocos2d, 확장 컴포넌트들이 있는 libExtension, (lua의 경우)스크립팅을 도와주는 liblua, 이 정도이다. 게임을 개발 할 때 만들려는 게임이 무엇인가에 따라 다른데, 보통 물리가 들어가는 게임이 아니라면 물리 라이브러리는 사용할 필요가 없는 라이브러리이다. 하지만 Cocos2d-x에서 프로젝트를 생성해 줄 때 기본으로 이 라이브러리를 넣어서 만들어준다. 그렇기 때문에 처음에 빌드를 할 때면 굳이 쓰지도 않을 라이브러리를 빌드하느라 많은 시간이 소요되게 된다. 물론 딱 처음에만 그렇긴 하지만. ..
보통 프로젝트를 진행할 때 Git이나 SVN과 같은 리비저닝 툴을 쓰기 마련이다. Cocos2d-x 같은 경우에는 Cocos2d-x의 홈 디렉토리에 projects 폴더를 생성하고, 그 안에 자신의 프로젝트 디렉토리를 위치시키면 알아서 cocos2d-x library들의 (윈도우기준)솔루션을 불러와서 잘 빌드할 수 있다. (폴더명을 projects라고 지은 이유는 project-creator 툴을 이용할 경우 projects 디렉토리를 생성하고 그 안에 프로젝트를 생성해주기 때문에 이 툴과 충돌을 일으키지 않게 하기 위함이다.) Lua binding을 이용해서 게임을 개발할 때 아무래도 C++ 단에서 지원해주는 것이 유용할 경우가 많기 때문에 자신의 커스텀 클래스를 함께 Binding해서 사용하게 된다...
"Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention." http://www.cocos2d-x.org/forums/6/topics/37531 오늘 위 링크에 나온 에러를 겪었는데 참 난감했다. 여태껏 프로그래밍 하면서 한 번도 만난 적이 없었던 에러였는데 해결 방법 조차도 난해했기 때문이다. 다른 개발자 분들은 어떤식으로 개..
- Total
- Today
- Yesterday