Как текстурировать карту на изогнутой поверхности?

Я пытаюсь создать 3D-игру с использованием OpenGL. У меня очень простой мир, и теперь я работаю над персонажем. Я хочу нанести текстуру на голову, которая будет овальной формы. Как сделать сопоставление? Я знаю, как сопоставить плоскую поверхность. Мне интересно, можно ли использовать нормали, чтобы помочь, но я никогда не делал этого раньше, и когда я ищу Google, мне не повезло.

Я планирую делать это все программно и не использовать Blender или Maya, если это имеет значение.

Я угадываю с вашего поста, что с тобой все в порядке?

Для автоматического сопоставления в общем случае ваша догадка – хорошая идея – начинайте с каждой вершины и следуйте ее нормали наружу, пока не нажмете четко определенный внешний примитив, а затем скопируйте местоположение текстуры внутрь.

В этом случае я думаю, что ключ к тому, как вы создаете свою геометрию. Если вы делаете что-то вроде создания 8 колец из 16 точек, эффективно повторяя вокруг одного круга во внешнем цикле, а другой во внутреннем цикле, вы можете одновременно перебирать u и v, чтобы получить сопоставление. Вы получаете несколько неправильных размеров полигонов, и картирование становится неудобным на полюсах, но область вокруг, где лицо будет работать достаточно хорошо.

Если вы хотите иметь более равный размер многоугольника и надежное отображение во всех областях, тогда начните с куба с более тесселированным куском (например, сетка из 8×8 квадратов на поверхность вместо одного) и сопоставьте координаты текстуры любым значимым способом. Подумайте в терминах сети куба. Затем деформируем куб в сферу, выставив вектор из центра в каждую точку и перемещая точку так, чтобы это был радиус сферы от центра. Наконец, деформируем сферу в овал, изменяя разные оси по-разному.

Intereting Posts
Как реализовать постоянные нижние листы из документов по материальному дизайну Android – разные идентификаторы для этого включают Layout Как выполнить приложение для Android в командной строке Android Studio? Класс ApplicationStatus E / SysUtils: ApplicationContext имеет значение null в ApplicationStatus Активность дочерней активности TabActivity с BroadcastReceiver остается в фоновом режиме Ruby on rails secure API для интеграции мобильных приложений Таблица AChartEngine потеряет автоматическое следование после первого касания Как переопределить onPushReceive () ParsePushBroadcastReceiver? Программно добавить центр сертификации при сохранении SSL-сертификатов системы Android Контроль, который позволяет прокручивать ViewPager, динамически с обратной связью по пользовательскому интерфейсу Поддерживает ли Android поддержку JDBC Anko эквивалентно стилю attr в xml Нарисовать текст на Карте Google больше невозможно? Импорт проекта в студию Android Как исправить eror app \ build \ intermediates \ res \ merged \ debug \ values-v24 \ values-v24.xml