Я создал приложение для 3D-отображения в Javascript / canvas, оно работает довольно хорошо.Недавно я реализовал возможность сопоставления текстур.
Я импортирую 3d-модели из формата stl, которые работают хорошо, поскольку они хранят только трис, поэтому их легко импортировать, поскольку мне не нужно разбивать их, но они неХранить текстуры.
Способ хранения текстур таков:
textureObject(){
this.img=image //Js image object
this.triArray=[[x1,y1],[x2,y2]...]//Map of where polys
function returnImage(int i){
//returns a cropped triangle around the coordinates in the triArray.
}
}
Реальная реализация немного отличается, но в этом суть и суть.Хотя это не идеальное наложение текстур, это просто аффинное преобразование, которое может показаться уродливым грехом, но для меня этого достаточно.
Моя проблема в том, что я не уверен, как сохранить triArray из трехмерного объекта, который ужесоздан так, что мне не нужно создавать новый формат файла только для этого проекта.
Я думаю, у меня есть 2 варианта:
Создание импортера для другого формата файла, если он естькоторая хранит информацию о координатах текстуры в файле.(Но какой формат файла?)
ИЛИ
ИЛИ Есть ли один стандартный способ сопоставления текстур с объектами, который я мог бы затем реализовать для создания моего массива?(Какой метод?)