Определение состава и структуры автоматизированной системы визуализации технологических процессов, страница 3

MAIN CHUNK

Identifier

0x4D4D

Length

0 + Sub-chunks length

Chunk father

None

Sub chunks

3D EDITOR CHUNK

Data

None

3D EDITOR CHUNK

Identifier

0x3D3D

Length

0 + sub-chunks length

Chunk father

MAIN CHUNK

Sub chunks

OBJECT BLOCK, MATERIAL BLOCK, KEYFRAMER CHUNK

Data

None

OBJECT BLOCK

Identifier

0x4000

Length

Object name length + sub-chunks length

Chunk father

3D EDITOR CHUNK

Sub chunks

TRIANGULAR MESH, LIGHT, CAMERA

Data

Object name

TRIANGULAR MESH

Identifier

0x4100

Length

0 + sub-chunks length

Chunk father

TRIANGULAR MESH

Sub chunks

None

Data

Vertices number (unsigned short) Vertices list: x1,y1,z1,x2,y2,z2 etc. (for each vertex: 3*float)

FACES DESCRIPTION

Identifier

0x4120

Length

varying + sub-chunks length

Chunk father

TRIANGULAR MESH

Sub chunks

FACES MATERIAL

Data

Polygons number (unsigned short) Polygons list: a1,b1,c1,a2,b2,c2 etc. (for each point: 3*unsigned short) Face flag: face options, sides visibility etc. (unsigned short)

MAPPING COORDINATES LIST

Identifier

0x4140

Length

varying + sub-chunks length

Chunk father

TRIANGULAR MESH

Sub chunks

SMOOTHING GROUP LIST

Data

Vertices number (unsigned short) Mapping coordinates list: u1,v1,u2,v2 etc. (for each vertex: 2*float)

VERTICES LIST

Identifier

0x4110

Length

varying

Chunk father

TRIANGULAR MESH

Sub chunks

None

Data

Vertices number (unsigned short) Vertices list: x1,y1,z1,x2,y2,z2 etc. (for each vertex: 3*float)

a.  Анализ файла 3ds (Анализ важных элементов, которые он содержит - chunk)

b.  Интерпретация данных полученных в предыдущем  пункте

c.  Создание на основе полученных данных (Полигонов, точек, освещения) 3д модели.

d.  Распечатывание 3д модели на монитор оператора

Блок-схема алгоритма



2.  Проектирование интерфейса программных компонентов автоматизированной системы

Для удобства оператора, было принято решение создать простой и надежный интерфейс, реализованный на языке программирования Питон.

Работа с парсером и графическим интерфейсом:

1.  Запустить программу gui_py.py

2.  Нажать на кнопку текстура, откроется диалоговое окно, в котором необходимо выбрать файл текстуры 3д модели (после выбора файла на главном окне появится надпись ок).

 

3.  Нажать на кнопку 3дс и также с помощью диалогового окна выбрать файл формата 3дс

4.  Нажать кнопку Запуск

5.  Посмотреть на получившийся результат

Приложение 1 (Загрузка 3ds файла)

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <io.h>

#include "tutorial4.h"

#include "3dsloader.h"

/**********************************************************

 *

 * FUNCTION Load3DS (obj_type_ptr, char *)

 *

 * This function loads a mesh from a 3ds file.

 * Please note that we are loading only the vertices, polygons and mapping lists.

 *

 *********************************************************/

char Load3DS (obj_type_ptr p_object, char *p_filename)

{

 int i; //Index variable