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