Вот структура класса текстуры и меша
[Flags] public enum Lib3dsTextureMapFlags { LIB3DS_TEXTURE_DECALE = 0x0001, LIB3DS_TEXTURE_MIRROR = 0x0002, LIB3DS_TEXTURE_NEGATE = 0x0008, LIB3DS_TEXTURE_NO_TILE = 0x0010, LIB3DS_TEXTURE_SUMMED_AREA = 0x0020, LIB3DS_TEXTURE_ALPHA_SOURCE = 0x0040, LIB3DS_TEXTURE_TINT = 0x0080, LIB3DS_TEXTURE_IGNORE_ALPHA = 0x0100, LIB3DS_TEXTURE_RGB_TINT = 0x0200 } public class Lib3dsTextureMap { //public uint user_id; //public object user_ptr; public string name = ""; public Lib3dsTextureMapFlags flags; public float percent; public float blur; public float[] scale = new float[2]; public float[] offset = new float[2]; public float rotation; public float[] tint_1 = new float[3]; public float[] tint_2 = new float[3]; public float[] tint_r = new float[3]; public float[] tint_g = new float[3]; public float[] tint_b = new float[3]; } public class Lib3dsMaterial { //public uint user_id; //public object user_ptr; public string name = ""; // Material name public float[] ambient = new float[3]; // Material ambient reflectivity public float[] diffuse = new float[3]; // Material diffuse reflectivity public float[] specular = new float[3]; // Material specular reflectivity public float shininess; // Material specular exponent public float shin_strength; public bool use_blur; public float blur; public float transparency; public float falloff; public bool is_additive; public bool self_illum_flag; public float self_illum; public bool use_falloff; public int shading; public bool soften; public bool face_map; public bool two_sided; // Material visible from back public bool map_decal; public bool use_wire; public bool use_wire_abs; public float wire_size; public Lib3dsTextureMap texture1_map = new Lib3dsTextureMap(); public Lib3dsTextureMap texture1_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap texture2_map = new Lib3dsTextureMap(); public Lib3dsTextureMap texture2_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap opacity_map = new Lib3dsTextureMap(); public Lib3dsTextureMap opacity_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap bump_map = new Lib3dsTextureMap(); public Lib3dsTextureMap bump_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap specular_map = new Lib3dsTextureMap(); public Lib3dsTextureMap specular_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap shininess_map = new Lib3dsTextureMap(); public Lib3dsTextureMap shininess_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap self_illum_map = new Lib3dsTextureMap(); public Lib3dsTextureMap self_illum_mask = new Lib3dsTextureMap(); public Lib3dsTextureMap reflection_map = new Lib3dsTextureMap(); public Lib3dsTextureMap reflection_mask = new Lib3dsTextureMap(); public uint autorefl_map_flags; public int autorefl_map_anti_alias; // 0=None, 1=Low, 2=Medium, 3=High public int autorefl_map_size; public int autorefl_map_frame_step; } public class Lib3dsMesh { //public uint user_id; //public object user_ptr; public string name = ""; // Mesh name. Don't use more than 8 characters public Lib3dsObjectFlags object_flags; // see Lib3dsObjectFlags public byte color; // Index to editor palette [0..255] public float[,] matrix = new float[4, 4]; // Transformation matrix for mesh data public ushort nvertices; // Number of vertices in vertex array (max. 65535) public List<Lib3dsVertex> vertices; public List<Lib3dsTexturecoordinate> texcos; public List<ushort> vflags; public ushort nfaces; // Number of faces in face array (max. 65535) public List<Lib3dsFace> faces; public string box_front = ""; public string box_back = ""; public string box_left = ""; public string box_right = ""; public string box_top = ""; public string box_bottom = ""; public Lib3dsMapType map_type; public float[] map_pos = new float[3]; public float[,] map_matrix = new float[4, 4]; public float map_scale; public float[] map_tile = new float[2]; public float[] map_planar_size = new float[2]; public float map_cylinder_height; } |