вим. Також труднощі викличе і те, що деякі формати є закритими, а інші мають перевантажену структуру. Тому логічно вибрати за основу кілька відкритих форматів, які стали де-факто форматами обміну графічною інформацією.
Самими широко використовуваними можна назвати 3DS [3] і OBJ [4] формати. Ці формати підтримуються всіма популярними графічними редакторами, такими як 3DS Max, Maya, Blender і т.д., а також різноманітними CAD системами.
До плюсів 3DS формату можна віднести:
) підтримується майже всіма редакторами тривимірної графіки;
) найбільш зустрічається формат, є безліч готових моделей в мережі інтернет;
) є бінарним форматом, завдяки чому займає менше місця на диску;
) специфікація формату достатня для опису будь-якої моделі, включаючи необов'язкові додаткові параметри (камери, світло, матеріал, текстурні карти і т.д.).
Мінусами 3DS формату є:
) всі поверхні полігональної сітки повинні бути трикутниками;
) імена текстур обмежені форматом запису DOS 8.3;
) число вершин і полігонів в полігональної сітці обмежено 65536;
) нормалі вершин не можуть бути збережені у файлі цього формату;
) не підтримується спрямовані джерела світла.
До плюсів OBJ формату можна віднести:
) є загальноприйнятим форматом, підтримується великою кількістю редакторів графіки (не тільки тривимірної);
) має текстовий формат, завдяки чому легко читається і має можливість ручного редагування;
) добре описує геометрію моделі будь-якої складності.
Мінусами OBJ формату є:
) являє собою опис лише геометрії моделі;
) не підтримує ієрархію в полігональної сітці.
Як вже говорилося, всі популярні редактори тривимірної графіки підтримують роботу з 3DS і Obj форматами, а значить, мають вбудовані засоби їхнього завантаження і подальшого використання. Код, який виконує ці функції, зрозуміло, закритий і використовується тільки як частина системи, тому використовувати його не вийде. Загалом, існує дуже мало відкритих бібліотек надають можливості простого управління цими форматами.
Провівши дослідницьку роботу з пошуку готових бібліотек, що виконують обробку обраних форматів, був зроблений висновок, що для Obj формату їх зовсім не існує. Швидше за все, це обумовлено тим, що цей формат є текстовим форматом і містить тільки геометрію моделі. Тому обробка такого файлу не представляє ніякої складності, і може бути виконана стандартними засобами.
З 3DS форматом все належить інакше. Враховуючи його складну структуру і те, що він є бінарним форматом, були розроблені непогані відриті бібліотеки. Одним із прикладів такої бібліотеки є Lib3DS.DS [5] представляє собою безкоштовну відкриту кроссплатформенную бібліотеку дозволяє легко керувати файлами 3DS формату. До основних можливостей даної бібліотеки можна віднести:
) робота в двох режимах процесора - big-endian і little-endian;
) завантаження і збереження:
a) налаштувань атмосфери, фону, тіней, вікна п...