-
Notifications
You must be signed in to change notification settings - Fork 2
fig_ru
aspadm edited this page Oct 11, 2018
·
2 revisions
Трёхмерная модель
Файл начинается с "магического числа":
byte magic[3]; // FIG
Далее идёт указание на число хранимых блоков:
byte n;
n -= 48;
Под блоком подразумевается следущее: для каждой координаты хранится n значений (блоков), а итоговое значение получается их смешением в некой пропорции.
Например, персонаж в зависимости от параметров будет на 0.5 ловкой моделью, на 0.25 - сильной и на 0.25 - базовой.
Далее хранятся непосредственно данные модели:
uint vertex_count;
uint normal_count;
uint texcoord_count;
uint index_count;
uint vertex_component_count;
uint morph_component_count;
uint unknown; // всегда 0
uint group;
uint texture_number;
vec3 center[n];
vec3 min[n];
vec3 max[n];
float radius[n];
vec3 vertices[4 * n * vertex_count];
vec4 normals[4 * normal_count];
vec2 texcoords[texcoord_count];
ushort indices[index_count];
vertex_component vertex_components[vertex_component_count];
morph_component morph_components[morph_component_count];