Войти
ПрограммированиеФорумГрафика

Как поменять направление осей в моделях для OpenGL

#0
5:04, 21 авг. 2017

Просмотрел флаги импорта Assimp, ничего такого не нашёл, флаг смены на леворукую переворачивает всё вверх тормашками.
В 3D Максе крутил и Pivot Point, и саму модель, ничего не помогает.
Матрицами этот вопрос решать не комильфо, подскажите, пожалуйста, если кто-то решил этот вопрос.


#1
8:07, 21 авг. 2017

Если грузишь ассимпом, то можешь делать с данными все что хочешь.

#2
8:25, 21 авг. 2017

dave
> Если грузишь ассимпом, то можешь делать с данными все что хочешь.
А вот где-бы что-нибудь подобное подсмотреть... куда копать-то?

#3
9:04, 21 авг. 2017

Если кому-то для истории потребуется: http://www.nexcius.net/2014/04/13/loading-meshes-using-assimp-in-opengl/

#4
10:29, 21 авг. 2017

Daniil Petrov

Я при загрузке как раз умножил на нужную матрицу.
Умножение на матрицу может не камильфо в реалтайме, а один раз при загрузке ничего страшного.
Говоря проще там нужно было инвертироватъ одну из осей, насколько помню y. Но так как я все равно делал какие-то преобразования данных умножением на матрицу, то я просто добавил матрицу инверсии y в конечную матрицу.

#5
14:56, 21 авг. 2017

dave
Так при загрузке или сохранении такие вещи и делаются :) ясно, что не при выводе!

#6
17:59, 21 авг. 2017

Тут как бы достаточно сменить X,Y местами у вершин или знак. На фига целую матрицу то?

#7
19:03, 21 авг. 2017

foxes
+100500

#8
2:21, 22 авг. 2017

А вот интересно, почему в 3D Максе не помогает установить Pivot Point или развернуть модель? Если бы это помогало, я бы просто тупо так и делал, и не заморачивался.

#9
10:46, 22 авг. 2017

Вроде разобрался с примером по ссылке выше, поменял местами оси Y и Z.
Но что за косяк с текстурами, никак не пойму. Вот скриншот и код ниже.
Может у кого-нибудь есть какие-нибудь соображения?
Такой косяк был и до того, как я переколбасил координаты вершин.

Изображение удалено

assimp_model.h:

+ Показать

assimp_model.cpp:
+ Показать

#10
11:37, 22 авг. 2017

Daniil Petrov
> А вот интересно, почему в 3D Максе не помогает установить Pivot Point или
> развернуть модель? Если бы это помогало, я бы просто тупо так и делал, и не
> заморачивался.
Это зависит от экспортируемого формата. И то как этот формат считывается. Потому что если считывать только меш то его ориентация будет ориентацией вершин относительно внутренней системы координат. Положение и Pivot это параметры объекта содержащего меш, сам меш содержит только вершины.

#11
11:57, 22 авг. 2017

Проблема была в

glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, NULL);
Вместо 2-ки стояла 3-ка :)
Код выше подправил, пользуйтесь на здоровье! Кто-то может сэкономит уйму времени, потраченного мною на поиски нужного результата.

Изображение удалено
ПрограммированиеФорумГрафика

Тема в архиве.