|
Vertex Component Packing라는 쓰레드에서 보셨듯이, Nebula3를 보고 버텍스 압축을 해보았습니다.
일반적으로 버텍스 구조체를 잡으면, struct { float3 position; float3 normal; float2 uv; float4 skinWeights; float4 skinIndices; }; 로 처리를 하는데, struct { float3 position; ubyte4n normal; short2 uv; ubyte4n skinWeights; ubyte4 skinIndices; }; 로 압축하여 처리하는 것입니다. (다른 방법도 있지만, 네뷸라를 기준으로 합니다.) 하나의 버텍스 크기가 64Byte -> 28Byte로 줄어듭니다. 폴리곤 갯수가 많아질 수록 엄청난 차이가 생기겠지요. 대신, shader 내부에서 압축을 풀어주는 한번의 간단한 계산이 추가됩니다. 이것이 가능한 이유는 normal은 -1~1사이, uv는 0~1사이, skinWeights도 0~1 사이, skinIndices는 0~255사이의 값을 가지므로, 거의 눈에 띄지 않을 정도의 적당히 정밀도를 줄여주면, 압축이 가능합니다. 예전에 matrix pallate를 처음 접할 때, ubyte4형으로 처리하는 것을 해보셨던 분은 아시겠지만, 이것은 뭐, 새로운 기능은 아닙니다. 다만, 자원 상황이 꽤 좋은 편인 pc나 콘솔에서는 크게 사용할 이유가 없었는데, (handheld 3d작업 시에는 fixed point를 많이 사용했더군요.) 그 만큼 복잡도가 커졌다는 것이겠지요. float -> short는 fixed point로 압축을 하면 되고요. ubyte4 압축은 예전에 matrix pallate 작업을 해보신 분이시라면, 간단히 하실 수 있을 것이므로, 따로 이야기를 드릴 필요가 없겠군요. 주의할 것은 ubyte4와 ubyte4N의 차이를 잘 파악해야 합니다. "UBYTE4는 bone index들을 저장하는데 좋다. 왜냐하면, 0~255 범위까지 확장이 가능하다. UBYTE4N은 같은 포멧이지만, 0~1까지만 확장이 가능하다. 그래서, 이것은 color, blendweights와 normals들에 사용하면 좋다" [reference] 1. ShaderX - Tip and Trick - : Part2-1. 셰이더 안에서 정점 압축 풀기 2. 게임&인터랙티브 애플리케이션을 위한 수학 - fixed point 3. Modern Fixed-point Tricks and Optimizations-DevMaster.net
|
메모장
내가 먼 훗날에 이 글들을 보았을 때, 좋은 추억이 될 수 있기를... 나를 위해... 나에게 쓰는... msn: cagetu@hotmail.com mail: cagetu79@gmail.com 카테고리
이글루링크
런~의 맛있는 컬처 레시피
소스코드위를 걷다..... East Agent's Blog pangde's repository 게임회사 이야기 하이얼레인의 얼음집'▽'♡.. 박피디의 게임 아키텍트.. sphere burster ; whit.. 이은석 항해일지 이스 그냥님 Simply☆Wonderful The Cynical Felix. 냥이의 IT 잡동사니 ufo일등항해사 대충 살아가는 게임개발자 애자일 이야기 A day in the game d.. 장재그림 꾸즐꾸즐 Gudong world! flexible gameserver 창 & 쏘~ 같이 놀다.. YUZI, in Ma Mind 공돌이 옵빠 K 석삼이의 게임 기획 이글루 최근 등록된 덧글
예... 랜더스테이트를..
by cagetu at 11/06 ㅎㅎ 다른 방법으로는 Sta.. by 친절한티스 at 11/06 먼저 언리얼에서 TBB를.. by cagetu at 11/02 Intel TBB를 쓰면 전에.. by jazzcake at 11/02 일단 Nebula3를 가지고.. by cagetu at 11/02 해당 이슈에 대해서 어떤.. by jazzcake at 10/30 감동이얌.. 100년만에 .. by 쏘 at 10/26 예... 역시... 하지만.. by cagetu at 10/26 머니 머니 머니 .... by 김윤정 at 10/25 당신은 지금보다 10000배는 .. by 쏘 at 10/23 라이프로그
포토로그
메뉴릿
태그
Kasa
TDD
xeros
휘리릭밥상
cindy
3Dstudio
DirectX
Kasa공개세미나
shadow
DeadReckoning
Project\Cindy\
내이글루결산
제로스
MIS
렛츠리뷰
라이트
2008kasa공개세미나
| |||