![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
![]()
Создаём объект в любом 3D-редакторе.
Для простоты примера возьмём просто куб. Но куб с фаской вдоль рёбер. Использоваться он будет не только как куб, но и как параллелепипеды различной величины. При простом растяжении объекта фаска на углах тоже растягивается. Есть ли возможность этого избежать? Т.е. грубо говоря объект делится на три части, крайние сохраняют пропорции и просто разъезжаются, а средняя растягивается? Каким образом это реализуется в OpenGL? (пишу в Delphi, но не суть) |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 09.11.2017
Сообщений: 121
|
![]()
Привет, не очень представил вашу фаску, но похоже вот так и реализуется как вы сами предложили - составными частями.
Профессионально программирую видео-игры. Пишу бекстейдж-блог о разработке игр CoreMission.net.
Разрабатываю календарь выхода игр. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
![]()
Да как угодно она может выглядеть, интересен сам принцим масштабирования по осям без её искажения. Я имею ввиду, что если мы куб растягиваем по оси X например, то фаска по краям так же становится в 2 раза толще. Как этого избежать можно? Говорят скелетная анимация может решить проблемму, но нигде не нашёл примеров...
Допустим выглядит вот так: https://i.imgur.com/pgzehLp.png Последний раз редактировалось Isaev; 17.01.2018 в 01:54. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Я думаю, что единственный выход - это делать, как вы описали, то есть отделить фаску от объекта. К тому что не нужно масштабировать вы применяете операцию перемещение.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.11.2017
Сообщений: 121
|
![]()
Скелетная анимация - это по сути то же самое, что вы и показали, только вам придется сделать риг куба, заскинить эти вершины и написать сильно больший шейдер для Skinned мешей. Это очень полезно для понимания как это все устроено, но времени займет много
![]()
Профессионально программирую видео-игры. Пишу бекстейдж-блог о разработке игр CoreMission.net.
Разрабатываю календарь выхода игр. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Ну да, как вариант можно не разбивать объект на части, для применения отдельных операций-трансформаций для разных частей, а в бесплатном Blender'е назначить группы вершин костям.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 16.03.2007
Сообщений: 13
|
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Пытаюсь в Blender'е понять, как с помощью скелетной анимации сделать. Но кость масштабируется только в одну сторону. Возможно придётся привлекать IK (инверсную кинематику). Я пока с ней мало знаком. Не знаю, возможно ли на IK?
|
![]() |
![]() |
![]() |
#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 |