23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
||||||||||||||||
1 | ||||||||||||||||
Поворот вокруг своей оси (blender)12.01.2018, 12:49. Показов 12178. Ответов 15
Метки нет (Все метки)
Глупый вопрос, но всёравно задаю его.
Как повернуть объект вокруг своей оси? (либо я чтото не понимаю..либо координаты blender не как следует сохраняет либо ещё что) Задаю вопрос, т.к. многое в проге делал сам, И как полагается..не уверен в том, что всё работает на 100% правильно. ( делал парсинг obj файлов, создание индексов, удаление дублирования и тд. ) И вот. Открываю Blender. делаю модель мартышки из множества материалов (да и модель сферы тоже делал, которая расположена глобально по 0,0,0 в блендере).Делаю экспорт obj. И любуюсь, на то, что модель крутится вокруг 0 0 0 координаты. А мне нужно чтоб она крутилась вокруг своей оси) Да я и понять не могу, почему модель крутится вокруг нулевой координаты. (ведь когда я в блендере создаю модель, то размещаю её по нулевой координате) . Ведь в программе модели будут иметь первоначально такиеже координате, как и в 3д редакторе? или нет? Вот немного инфы о коде. 1) Сначала создаю матрицы перспективы. 2) Создаю матрицу вида. 2) Делаю матрицу модели еденичной. 5) Создаю матрицу модели 6) Перемножаю матрицы. модели на видовую. Далее на матрицу перспективы. 7) Данные в шейдер передаю...рисую...
Что с координатам объектов которые экспортируются из 3д редактора? (например сфера, чей центр находится в 0 0 0) При загрузке в прогу, при том коде, что описал выше. Объект крутится вокруг 0 0 0 как-будто находится рядом, а должен находиться прям на данной координате (если координаты из 3д редактора, соответствуют тем, что в проге) и крутиться...вокруг своей оси?..или нет.. Объясните пожалуйста. Правильно ли вообще работаю с матрицами...и..главное..почему, модель крутится, вокруг нулевой координаты а не на ней..
0
|
12.01.2018, 12:49 | |
Ответы с готовыми решениями:
15
Не удается реализовать поворот елки вокруг своей оси по x и по у Вращение планеты вокруг солнца, и вокруг своей оси Вращать сферу вокруг центра координат, и одновременно вращать ее вокруг своей оси Поворот объекта вокруг оси |
12.01.2018, 14:05 | 2 |
Сообщение было отмечено rosten как решение
Решение
Да, есть такая проблема, что в Blender'е принята Z-Up система, а в OpenGL - Y-Up система, потому при импорте в свою программу модель оказывается не так ориентированна, как ожидаешь. Я приспособился. Я поворачиваю модель в Blender'е на '-90' вокруг X, делаю "Object" -> "Apply" -> "Rotation" -> и поворачиваю обратно на '90' градусов вокруг X (но уже не применяю поворот). После экспорта модель ориентирована нормально.
2
|
23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
|
12.01.2018, 16:12 [ТС] | 3 |
Охохо)
Спасибо за ответ! (попробовал ручками позицию модели в блендере перенести) и теперь , объект ровно по центру, и крутится вокруг своей оси. Сейчас буду методом тыка, пробовать методы экспортирования модели в блендере,с различными настройками. Как обнаружится, корректная, отпишу в эту тему.
0
|
12.01.2018, 16:24 | 4 |
Вы не планируете использовать библиотеку OpenGL Mathematics (GLM) для работы с матрицами?
Что вы используете для создания окна? GLFW? GLUT? SFML? У меня есть пример загрузки текстурированной модели из Blender'а написанный на Python + GLFW. Я может переведу, допустим, под GLUT, или SDL2. Что вы используете?
0
|
23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
|
12.01.2018, 17:51 [ТС] | 5 |
А использую я , сам не знаю что. Единственное как делал OpenGL приложение , это тупо запускал android studio и в нём, на джаве, потихоньку помаленьку, пробую приложение делать.
А там, через GLSurfaceView создаю "окно для приложения" и кодю...не задумывался вообще, что именно окно рисует. Насчёт библиотеки GLM. Не планирую использовать. Т.к. пока не понимаю для чего она мне может понадобиться) ,ну и второе, я c++ не знаю.(не нравится на нём что-то делать). Пока на java пишу, а там через класс Matrix можно делать преобразования. ( чтож делать... пока придётся этим пользоваться) Насчёт загрузки текстурированной модели. А у меня уже готова она) А за примеры, спасибо. Но мне они не принесут столько "полезности", сколько могбы из них почерпнуть..более начитанный человек. Я не знаю не Python ни C++ . Мне лучше, когда в кратце объясняются общие принципы. Наподобие: 1) Чтоб нарисовать фигуру, мы должны указать координаты всех треугольников, из которых состоит фигура. 2) С каждым пикселем, на этой фигуре, можно будет сделать всё что угодно. 3) Уменьшаем количество дублирований вершин. т.к. "меньше данных" лучше, для пересылки из памяти в память gpu + требуется меньше памяти для хранения "рабочих данных. и тд... А во) когда это писал, вспомнил. Что есть одна фундаментальная вещь, которую не понимаю. Что такое ТЕКСТУРНЫЙ СЛОТ? ..как работать с ним знаю. Как грузить в него данные, в курсе. А ЧТО ЭТО? так и не пойму. (везде упоминают...текстурный слот....это...это... и ничего по существу)
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
13.01.2018, 12:38 | 6 |
а зачем? в настройках экспорта/импорта .OBJ файлов можно же выбирать оси "Forward" и "Up"
1
|
13.01.2018, 14:10 | 7 |
Я много экспериментировал, но мне так и не удалось выставить правильно. Этот способ запомнил, когда читал книгу Unity 5.x Animation Cookbook
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,744
|
|
14.01.2018, 10:44 | 8 |
А что делать в чуть более сложном случае: мы хотим импортировать из блендера в OpenGL не только сам объект (т.е. модельные координаты), но и его текущую матрицу?
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,744
|
|||||||||||
15.01.2018, 13:08 | 9 | ||||||||||
Может товарищей смутило выражение "текущая матрица"? (это кто такая? ). Ладно, сформулируем по-другому.
Вот заграбастали мы из блендера (или др пакета) матрицу и хотим ее задействовать в OpenGL, Ну ясно просто так она работать не будет, там же Z-up, а мы уже перевели модельные координаты в OpenGL. Как же ее конвертировать?
0
|
23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
||||||
18.01.2018, 10:33 [ТС] | 10 | |||||
Господа) я до сих пор! не сделал нормальный импорт OBJ
Можете по шагам тупому объяснить? что в блендере указывать , чтоб модель в OpenGL нормально отображалась.
И делаем экспорт. Что в Forward нужно указывать? Что нужно указывать в UP ?? (У меня методом перебора так и не получилось нормально модель экспортировать. всё крутится вокруг "линии" .....а бывает, что просто какието стороны объекта, имеют не верные координаты! т.к. как-будто x или z..или y перепутаны местами!) Выглядит так, что "круг" отображается нормально и крутится вокруг своей оси, при повороте на 90 градусов, он вытягивается, и потом снова уменьшается до нормальной формы круга (думаю тут z y както местами перепутаны..или чего ещё.)
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
18.01.2018, 11:48 | 11 |
1
|
23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
|
18.01.2018, 13:03 [ТС] | 12 |
Естественно я это всё читал.
Вопрос остался темже.Что в блендере то нажимать, чтоб корректный экспорт был?? при условии что при парсинге obj файла, вершины расположены так x y z
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,744
|
||||||
18.01.2018, 14:15 | 13 | |||||
Попробуйте в блендере ничего не нажимать
0
|
23 / 5 / 1
Регистрация: 05.01.2017
Сообщений: 56
|
|
18.01.2018, 16:23 [ТС] | 14 |
Не помогло (
видать снова придётся методом перебора пробовать.
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
18.01.2018, 23:37 | 15 |
а вы пробывали другой загрузчик моделей, матрицы другие пробуйте, возможно на другом заработает тогда будет причина понятная
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,744
|
|
19.01.2018, 09:36 | 16 |
Должно помочь. Не суетитесь с вращением. Зайдите в блендер, создайте чайник, экспортируйте в obj "как есть", не тыкайте никаких опций. Загрузите чайник в OpenGL с новым кодом, он должен быть таким же как в бледере.
Добавлено через 8 минут Да, ну и для вертексных нормалей то же самое
0
|
19.01.2018, 09:36 | |
19.01.2018, 09:36 | |
Помогаю со студенческими работами здесь
16
Поворот вокруг произвольной оси в пространстве Загадочный поворот вокруг оси x в OpenGL Вращение объекта вокруг своей оси C# OpenTK Вращение камеры вокруг своей оси Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |