|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2018, 00:29 | #1 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
Растяжение объекта в OpenGL
Создаём объект в любом 3D-редакторе.
Для простоты примера возьмём просто куб. Но куб с фаской вдоль рёбер. Использоваться он будет не только как куб, но и как параллелепипеды различной величины. При простом растяжении объекта фаска на углах тоже растягивается. Есть ли возможность этого избежать? Т.е. грубо говоря объект делится на три части, крайние сохраняют пропорции и просто разъезжаются, а средняя растягивается? Каким образом это реализуется в OpenGL? (пишу в Delphi, но не суть) |
15.01.2018, 13:22 | #2 |
Форумчанин
Регистрация: 09.11.2017
Сообщений: 121
|
Привет, не очень представил вашу фаску, но похоже вот так и реализуется как вы сами предложили - составными частями.
Профессионально программирую видео-игры. Пишу бекстейдж-блог о разработке игр CoreMission.net.
Разрабатываю календарь выхода игр. |
15.01.2018, 17:51 | #3 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
|
17.01.2018, 01:51 | #4 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
Да как угодно она может выглядеть, интересен сам принцим масштабирования по осям без её искажения. Я имею ввиду, что если мы куб растягиваем по оси X например, то фаска по краям так же становится в 2 раза толще. Как этого избежать можно? Говорят скелетная анимация может решить проблемму, но нигде не нашёл примеров...
Допустим выглядит вот так: https://i.imgur.com/pgzehLp.png Последний раз редактировалось Isaev; 17.01.2018 в 01:54. |
17.01.2018, 07:15 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Я думаю, что единственный выход - это делать, как вы описали, то есть отделить фаску от объекта. К тому что не нужно масштабировать вы применяете операцию перемещение.
|
18.01.2018, 13:13 | #6 |
Форумчанин
Регистрация: 09.11.2017
Сообщений: 121
|
Скелетная анимация - это по сути то же самое, что вы и показали, только вам придется сделать риг куба, заскинить эти вершины и написать сильно больший шейдер для Skinned мешей. Это очень полезно для понимания как это все устроено, но времени займет много
Профессионально программирую видео-игры. Пишу бекстейдж-блог о разработке игр CoreMission.net.
Разрабатываю календарь выхода игр. |
18.01.2018, 13:26 | #7 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Ну да, как вариант можно не разбивать объект на части, для применения отдельных операций-трансформаций для разных частей, а в бесплатном Blender'е назначить группы вершин костям.
|
19.01.2018, 01:02 | #8 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
|
19.01.2018, 10:38 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Пытаюсь в Blender'е понять, как с помощью скелетной анимации сделать. Но кость масштабируется только в одну сторону. Возможно придётся привлекать IK (инверсную кинематику). Я пока с ней мало знаком. Не знаю, возможно ли на IK?
|
21.01.2018, 00:09 | #10 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перемещение объекта OpenGl | bosyak | Мультимедиа в Delphi | 7 | 06.11.2015 05:38 |
Проблема с текстурированием объекта в OpenGL | Argentum_47 | Общие вопросы C/C++ | 4 | 21.03.2012 18:04 |
С++ и OpenGl-растяжение | alexblg | Общие вопросы C/C++ | 6 | 10.02.2011 15:12 |
как происходит вращение, растяжение объекта? | Dmitry72 | Мультимедиа в Delphi | 3 | 05.11.2009 17:38 |
Загрузка объекта OpenGL? | spamer | Мультимедиа в Delphi | 6 | 05.10.2009 18:13 |