首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用GLScene或OpenGL实现四点多边形/平面贴图纹理拟合

用GLScene或OpenGL实现四点多边形/平面贴图纹理拟合
EN

Stack Overflow用户
提问于 2014-09-30 11:36:00
回答 1查看 763关注 0票数 0

我正在为Delphi使用最新的GLScene主干,我已经完成了一个GUI类型的项目,它使用3D而不是2D在屏幕上绘制GUI元素。

它工作,但图形的位置不是像素-完美的明显的原因。

我已经成功地映射了3D视图,使TGLSceneViewer上的1像素在屏幕上更多或更少1像素。对我来说已经够好了。

然而,我放弃了使用3D作为我的图形界面的想法,我将专注于使用GLScene for2D图形--因为它是GPU加速的。

然后,我记得在以前的一个项目中使用了投影转换,其中我使用了Graphics32作为我的GUI。

通过投影变换,我可以简单地在三维空间中绘制点,读取这些点的三维坐标,将坐标转换为2D坐标,并将这些坐标应用到TBitmap32投影转换参数,而viola,我的软件中有3D能力。

所以,我的问题是:

是否可以在GLScene或OpenGL中“拉伸”纹理,使纹理在4个点之间,或者在一个平面内,这样每当我将平面的角移动到一个新位置时,纹理就会相应地被拉伸吗?

这样我就可以用GLScene来绘制2D图形,但是做一些简单的技巧,让事情看起来像3D一样。

下面的链接指向互联网上的一幅图像,它是我正在寻找的东西的视觉表示:http://i.stack.imgur.com/hDdqa.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 11:54:02

假设你没有在你的着色器中实现一些疯狂的东西,或者你正在使用固定的函数管道功能,这应该是相当微不足道的。

OpenGL中的纹理坐标总是归一化的,这意味着它们在0-1的范围内;

因此,基本上,只要您在绘制对象时,始终将纹理的坐标设置为最大值1和最小值0,则应该始终让纹理填充您的四角体。

你能提供你用来画四点的代码吗?如果我能看到的话,我也许能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26119882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档