delphi - 计算对象的位置,使其与屏幕像素匹配

标签 delphi opengl projection lazarus glscene

我想在 3D 空间中移动 3D 平面,并让运动匹配 屏幕像素,以便我可以将平面捕捉到屏幕边缘。

我已经尝试过焦距、相机位置和相机比例, 我已经设法让飞机在尺寸上与屏幕像素相匹配, 然而,当移动飞机时,事情就不再正确了。

所以基本上我目前的状态是我为平面大小提供值 假设我正在使用标准 2D 图形。 因此,如果我将平面尺寸设置为 128x128,它或多或少会被视为一个 2D 正方形 精确尺寸。

我没有也不会使用正交 View ,我正在使用并将使用投影 View ,因为我的应用程序需要一些视角。

如何计算?

有人有我可以阅读的资源链接吗?

最佳答案

您需要获取在顶点着色器中使用的变换矩阵并将它们应用于代表平面的点/一些点

这将产生 -1,-1 到 1,1 之间的一组点(除以 w 后),您需要将其映射到视口(viewport)

关于delphi - 计算对象的位置,使其与屏幕像素匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399656/

相关文章:

德尔福2006-2010错误: "Cannot create file C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr"

java - 如何使用 X、Y 和 Z 顶点的最小/最大来计算矩形棱柱

3d - 如何应用变换矩阵?

opengl - 3D 光线拾取在鼠标未锁定时使用鼠标坐标

python - 从 3D DICOM 图像重建 2D X 射线

java - 将 3D 点投影到 2D 点

Delphi 10.4 本地化问题

Delphi - 运行时出现无效流格式错误

delphi - FMX Direct 2D 问题

java - 奇怪的 glVertexAttrib 行为?