Перейти к содержанию
Fire Monkey от А до Я
  • 0

Текстурирование примитивов


HoShiMin

Вопрос

Рекомендуемые сообщения

  • 0
  • Администраторы

Стандартный TCube не позволяет этого. Он использует одну текстуру для всех граней.  Вы можете сделать модель, которая будет строить куб из 6 плоскостей с разными текстурами. Как вариант. 

 

Еще можно просто повесить обработчик на событие OnRender и там выполнить вручную отрисовку куба с вашими текстурами.

Ссылка на комментарий
  • 0

Нашёл более удобный для себя компонент - TRectangle3D. Как раз позволяет текстурировать 2 грани отдельно, а остальные - длинной "опоясывающей" текстурой. Чтобы не писать рендеринг вручную, взял именно его. И с ним проблема: текстура не растягивается по длине в поверхность. Получается что-то вроде этого:

ZrJq3xgfwvv7Aj.png

 

Длинной зелёной заливки быть не должно, справа вывел рабочую текстуру из того же битмапа - проблема не в ней. Если поиграть с геометрическими размерами кубика, то можно подогнать текстуру вровень, но нельзя ли сделать автоматическое растягивание под размер? Конкретно в этом примере с текстурой 256х64 при размерах кубика 0.83х0.83х0.83 всё совпадает пиксель в пиксель (0.83 подобран экспериментально), но умножая 0.83 на какой-нибудь коэффициент, снова подогнать текстуру под размер не выходит. И ещё один вопрос: нельзя ли выключить интерполяцию при растягивании на 3D, как это можно сделать в TImage флагом DisableInterpolation?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...