我正在为 Delphi XE2 使用最新的 GLScene 主干,并且我从事过一个 GUI-ish 类型的项目,它使用 3D 而不是 2D 在屏幕上绘制 GUI 元素。
它可以工作,但由于显而易见的原因,图形放置不是像素完美的。
我已经设法映射 3D 视图,以便 TGLSceneViewer 上的 1 个像素在屏幕上或多或少 1 个像素。这对我来说已经足够了。
但是,我放弃了在我的 GUI 中使用 3D 的想法,而是专注于使用 GLScene 进行 2D 图形表示,因为它是 GPU 加速的。
然后我记得在以前的项目中使用了投影变换,我在我的 GUI 中使用了 Graphics32。
通过投影变换,我可以简单地在 3D 空间中绘制点,读取这些点的 3D 坐标,将坐标转换为 2D 坐标并将其应用于 TBitmap32 投影变换参数,中提琴,我的软件中有 3D 功能。
所以,我的问题是:
是否可以在 GLScene 或 OpenGL 中“拉伸”纹理,使纹理适合 4 个点之间或平面内,这样每当我将平面的角移动到新位置时,纹理都会相应地拉伸?
这样我就可以将 GLScene 用于 2D 图形,但需要做一些简单的技巧来使事物看起来像 3D。
下面的链接指向互联网上的图像,这是我正在寻找的视觉表示:http: //i.stack.imgur.com/hDdqa.png