Есть ли какая-нибудь демонстрация или статья о том, как рисовать сплошными цветами на 3D-модели с использованием компонента Delphi GLScene или FireMonkey?
Delphi — демонстрационный пример GLScene или FireMonkey для рисования на 3D-модели
Ответы (2)
В GLScene Demos\interface\hfpick у вас есть пример рисования поля высоты.
Рисование на более сложной сетке потребует поиска текстурных координат точки под курсором, что в зависимости от того, как была наложена текстура, может быть более или менее сложной.
Быстрый хак для небольших текстур, который будет использовать преимущества графического процессора, может заключаться в использовании координат текстуры в качестве цвета RGB, вы можете сделать это во фрагментном шейдере, возвращая u, v в R, G f.i, а индекс текстуры в канал Б. Визуализируйте это во внеэкранном буфере и найдите цвет точки под курсором, это даст вам текстуру и координаты, а также тривиальную поддержку текстур 256x256 (и даже до 4096x4096, если вы используете индекс текстуры с умом).
Чтобы сделать это математически правильным способом (используя ЦП), вам придется модифицировать методы RayCast сетки, чтобы вместо того, чтобы просто находить треугольник, в который попали, он также возвращал координаты текстуры точки, в которую попали.
Эта статья в блоге Визуализация интерференции волн с помощью FireMonkey, опубликованная вчера, может представлять интерес.
Пара скриншотов:
(источник: embarcadero .com)
(источник: embarcadero .com)