버텍스에따른파일용량계산법
모든계산은텍스처용량을제외하고계산
l 버 버텍스수는 1,000개라고가정
- 매핑없는순수버텍스만가진오브젝트
버텍스는 Position(위치) 정보만가지고있으면된다.
Position은 X, Y, Z 값이필요. 각값은 float으로 float 1개당 4byte를쓴다.
따라서, 1개의 Position을표시하기위한용량은 4*3 = 12byte
1,000개의버텍스를가졌기때문에 12 * 1,000 = 12,000 byte = 12kb가된다.
하지만, 요즘은 Index 없이버텍스를표현하지않으므로 Index를추가한다.
Index는버텍스를그리는순서를저장하는데, 통상버텍스보다많다.
Index는 Integer 하나를사용하는데, Integer 하나당 4byte를쓴다.
대략버텍스숫자만큼만쓴다고가정하면, 4 * 1,000 = 4,000 byte = 4kb가된다.
1,000개의버텍스를가진기본오브젝트의용량은 12 + 4 = 16kb이다.
* NIF의경우여기에각종정보들이포함된헤더가추가되므로용량은이보다늘어나게된다.
- 매핑정보를가진오브젝트
텍스처한장의매핑이되어있다고보면, 각버텍스마다하나의 UV 좌표를갖게된다.
1개의 UV는 2개(U, V)의 float을갖는다. 즉, 2*4 = 8byte
- 기타추가되는내용
Normal : 12byte
BiNormal : 12byte
Tangent : 12byte
- 예제
만약어떤오브젝트가 Index, Position, UV1, UV2, UV3, Normal, BiNormal, Tangent를가지고있다면용량이얼마나될까?(텍스처제외, NIF 헤더제외)
버텍스 1개당용량 = Index (4) + Position (12) + UV1 (8) + UV2 (8) + UV3 (8) + Normal (12) + BiNormal (12) + Tangent (12) = 76byte
버텍스가 1,000개라면 76kb
버텍스가 10,000개라면 760kb
단순텍스처한장만사용하는오브젝트와의비교
버텍스 1개당용량이 Index (4) + Position (12) + UV1 (8) = 24byte 이므로, 76byte에비해 1/3 수준임.