2012년 8월 19일 일요일

Recent Circumstances

전 기사에서 딱 한달만에 로그를 적습니다.

안드로이드 개발을 잠시 놓고 그래픽관련 샘플쪽에만 집중 하고있던지라 이쪽의 기록이 한달간 없었네요.

일단 아래에 이은 작업진척을 정리하자면

AmanithVG의 동작이 이해할수 없을정도로 이상해, ShivaVG로 Implementation을 전환하여 작업했습니다.
샘플의 내용은 3D모델 데이터를 2D벡터화 하는 내용인데
현재 단계에서는 Culling(Clockwise) 작업을 거친 메쉬중 1회만 사용된 선을 골라내어 통합하는 방식으로 3D데이터를 2D벡터화 시키는 처리를 시켜봤습니다.

아이디어만 들으면 그럴싸 한데 막상 굴려보니 심도가 틀린데서 꼬이는 현상같은게 보여 좀 난항중이네요.
물론 이 과정에서 처리과정이 제법 되는데.. 향후에 OpenCL을 써서 하드웨어 가속처리를 시켜볼까 생각은 했습니다.

만.. 결과물이 좀 애매하여 이걸 이대로 진행해도 될런지.. 방향을 좀 바꿔야 할지도 모르겠네요


구체적인 처리순서는
1. 정점을 공유하지 않는 실질적으로는 같은 정점의 인덱스 통합
  -> n+i = vi 진행중인 루프에 대해 vi+n, 단 vi+n <= length 과 같은 범위의 탐색을 하면서 같은 값의 인덱스를 기록, 인덱스만 변조.
2. Triangle 의 Culling 작업
3. 남은 Triangle의 각 라인에 대한 사용빈도 투표작업
  (일일히 대조하고 있어서는 끝이 없으므로  사용수를 검사)
4. 1회씩 사용된 라인의 추출
5. 추출된 라인의 정점간 통합. 같은 정점으로 돌아오는 선을 1개의 폴리곤으로 분류
6. 분류 과정을 되풀이 한 후에 남은 정점들을 각각 선으로 분류

해서 나온 결과가..



와 같은 상황입니다.
일부 정점을 제대로 인식 못하거나 하는 문제가 좀 보이고있네요
단순히 정점의 탐색과정의 문제이거나 싶은 부분도 있는가 하면
이론대로 처리는 되었으나 발생하는 문제점..
예를들자면 아래 드워프의 겨드랑이 부분과 같은것 말이죠


처리과정중에 일일히 정렬탐색하는 기능이 들어가서는 리얼타임 처리에 있어서 치명적이기도 할테고.. 일단 연구삼아 만들어보긴 했지만 결국 비현실적인 처리방식이 아니려나 싶네요

우선은 탐색부분의 버그를 그나마 마저 찾아보고.. 이 연구 샘플은 이정도 선에서 접어둬야 할거 같습니다. 툰 랜더의 개선이라는 주제는 좀더 다른 방식으로 접근 해봐야할거같이 보이네요

그리고 한동안 놓았던 Android ADT가 20.0.3버전까지 진행되어 있었습니다.
아래 기사에 언급되었던 대로 20.0.1버전에서 패스를 인식하지 못하는 버그를 고쳤다
라고 하는데 왜 전 그대로인지 알수가 없는 노릇이네요.

이 한달사이에 또 노후화된 맥북이 사망해버려 이쪽에서 테스트를 할수가 없는 상황입니다만.
20.0.0버전에서는 맥에서도 똑같이 패스인식이 안되었는데.. 윈도우만 국한되어 이야기하는건 제 설정에 뭔가 문제가 있는거였을까요 (랄까 그 설정 자체가 안보이던데?)

일단 고쳤다고 하니 이 부분은 좀 만져보고 알아봐야할거같습니다.

댓글 없음:

댓글 쓰기