[참고자료] 모니터 해상도 도표
Posted 2008/08/26 21:35, Filed under: 3D Programming




파서를 직접 제작하신 분이라면, 문득 스키닝매쉬가 가지고 있는 뼈대 행렬을 구지 포함시켜야 하는가?
라는 생각을 한것은 아마도 저뿐만이 아닐겁니다. 에니메이션 행렬과 뼈대 행렬의 곱셈을 제거할 수 없
는가?... 결론을 내리자면, 제외 불가능입니다. 단순히 생각해서 뼈대행렬의 역행렬을 정점에 가중치로
곱해주는 방법을 떠올릴 수 있습니다. 버텍스의 영향을 주는 뼈가 한가지라면 이것은 물론 가능합니다.
( "스티칭" 에 경우입니다 ) 머리, 다리, 팔 등을 모두 토막내서 가지고 있다가 인형을 맞추면 모습을 복
원할 수 있습니다.. 그러나 한정점에 4개의 뼈가 영향을 줄때는( "스키닝" ) 이것을 억지로 한가지로 모
으는 일에 비유를 할 수 있습니다. 캔 로봇을 납작하게 찌그려트려서 부분부분 부위를 연결해도 그전의
모양은 나오지 않겠죠. 당연한 이치지만, 의심많은 제가 오랜시간 직접실험 해본결과 알아낸 결과입니다
ㅠ_ㅠ;
스키닝 매쉬를 읽어들일때 본래의 뼈대행렬정보(매트릭스, 혹은 벡터와 쿼터니온)를 포함시켜야 하고 에
니메이션 행렬곱셈 정점당(복수행렬곱)이 불가피 합니다. 이에 오프셋정점? 을 사용하는 방법을 생각해볼
수 있습니다. v1 * 'world, v2 * 'world, v3 * 'world, v4 * 'world 를 모두 미리 계산 해놓고 랜더링시에는
정점당 행렬곱셈 4번을 줄일수 있다는 얘깁니다. 이것은 매우 큰 이득임이 틀림 없습니다. 행렬이 16개의
float을 가지고 있지만, 오프셋벡터는 12개의 float이고 언뜻 보면 용량에서도 이득인듯 보이지만, 행렬은
뼈대갯수 예를들어 50개정도 만 있으면 되지만 오프셋정점은 정점마다 4개의 벡터가 필요함으로 저장공간이
너무 많이 필요하게 됩니다.
최근의 애플리케이션의 관점에서 보면 몇번의 실행연산을 추가하여 용량상의 이득을 보는 것이 최적화 하려다
실행파일크기 증가로 속도저하를 유발하는 것보다는 낳을 것이지만, 퍼포먼스를 중요시하는 게임같은 분야에서
는 충분히 토론과 연구분야가 될것입니다.


닷넷에서의 코드 더보기 기능 : Ctrl + Space
GPG 에서 글을 검색하던 중 아차 싶은 글이 눈에 띄었다.
출처 : http://www.gpgstudy.com/forum/viewtopic.php?t=4065&highlight=%BE%EE%B5%CE%BF%F6%C1%F6%B4%C2
작성자 : 심 형근



