使用OpenGL ES在现实世界中绘制一个三角形

时间:2016-10-25 04:16:02

标签: android ios opengl-es augmented-reality

我在增强现实方面非常新,并且在OpenGL方面有一些经验。我想用OpenGL ES(Android或iOS,对平台无关紧要)绘制三角形等东西。需要通过移动相机捕捉背景。基本上结果就像Pokemon Go,通过相机,你将现实世界作为背景,口袋妖怪插入现实世界。

那么,我应该从哪里开始?

1 个答案:

答案 0 :(得分:0)

一种方法。

  1. 捕获图像并加载到2D纹理贴图中。
  2. 使用此2D纹理渲染四边形。四边形将需要远离虚拟相机,以便形成背景(您将需要启用深度测试)。四边形必须足够大才能覆盖背景(这取决于相机与视角的距离)。
  3. 现在渲染场景(三角形)。
  4. 下图显示了在视图坐标中有东西后xz平面中的视锥体。 N和F是到近和远剪裁平面的距离,θ是垂直视野 - 让a =宽高比=你的图像的w / h(应该与你的视口的宽高比相匹配)。 H是您想要渲染的四边形的高度,Q是从相机到四边形的距离。然后四边形的高度应为H = 2 * Q tan(θ/ 2)。四边形的宽度为W = a H.

    perspective view

    您希望在前景中的物体与相机之间的距离应介于N和Q之间。

    我假设你知道如何将视图矩阵(通过“观察变换”)设置到相机的位置,并设置投影矩阵以指定透视投影。还假设许多其他的东西(比如如何加载纹理贴图,绘制带有纹理坐标的填充四边形,启用深度测试等等)。如果您需要更多详细信息,请与我们联系。

    如果您希望将对象嵌入场景中,需要一些计算机视觉技术(通过立体图像对确定深度)。这是一个非常重要的问题。