Я использую последнюю магистраль GLScene для Delphi XE2 , и я работал над проектом типа GUI-типа, который использует 3D вместо 2D для draw Элементы GUI на экране.Сделайте текстуру подходящей 4-точечной полигоном/плоскостью с GLScene или OpenGL для Delphi
Работает, но размещение графики не является идеальным по очевидным причинам.
Мне удалось отобразить трехмерный вид, так что 1 пиксель на TGLSceneViewer больше или меньше 1 пиксель на экране. Это достаточно для меня.
Однако я отказываюсь от идеи использования 3D для моего графического интерфейса, и вместо этого я буду фокусировать на использовании графического представления GLScene for2D исключительно с ускорением GPU.
Затем я помню, используя Projective Transformation в предыдущем проекте, где я использовал Graphics32 для своего графического интерфейса.
С проективным преобразованием я мог бы просто сюжетные в 3D-пространстве, читать 3D-координаты этих точек, преобразования координат в 2D-координат и применяются те к параметрам трансформации TBitmap32 Проекционные и альт, I имеет 3D-возможности в моем программном обеспечении.
Итак, мой вопрос:
Можно «растянуть» текстуру в GLScene или OpenGL, так что текстура соответствует между 4 пункта, или в плоскости, так что всякий раз, когда я перехожу угол самолет в новое положение, текстура будет растянута соответственно?
Таким образом, я мог бы использовать GLScene для 2D-графики, но сделать некоторые простые трюки, чтобы все выглядело как 3D.
Ссылка ниже указует на изображение в Интернете, который является визуальным представлением о том, что я ищу: http://i.stack.imgur.com/hDdqa.png
Почему бы не использовать FireMonkey? Это родной, 2D и 3D, и аппаратное ускорение (в том числе 2D-версия.) Практически все, что вы хотите, без усилий, чтобы написать его с нуля самостоятельно. –
Производительность Firemonkey не так хороша, если я правильно ее помню. Или я здесь не прав? – xaid
Были проблемы, когда он вернулся к GDI +, когда он не смог использовать Direct2D в ранних версиях (XE4 и ниже, я думаю.) Пока вы используете Vista или выше, все должно быть в порядке. Я использую его в XE6 ежедневно для 2D-работы, и это здорово. Как и любая библиотека, вам нужно знать несколько вещей, например, удобно кэшировать ваши текстовые объекты, если вы нарисовываете их для многого экрана и т. Д. Аналогичные вещи вам нужно знать и для VCL! В целом он работает хорошо и быстро, и я счастлив. –