当前位置: 首页 > 网络应用技术

三js以实现达到360度全景的最简单方法

时间:2023-03-08 21:29:57 网络应用技术

  什么是全景图片?

  通常,我们采取方向,全景地图为6个方向,360度,这可以记录其位于三维记录中的场景。

  如何浏览全景?

  全景图在六个方向上拍摄。在飞机上看到它会很尴尬,因此将有一个特殊的浏览工具来根据视角的更改切换内容的内容。

  它简单地使用three.js制作这样的全景地图。它仅需几行代码,但是非常有用。

  然后,让我们学习如何使三个。

  我们简要审查了三分的基础:

  3.JS通过场景在3D场景中管理各种对象。有一个三维坐标系。每个对象都处于不同的位置,然后将相机放在某个位置以观察场景中的各种对象。您看到的内容是两个维度,只需渲染渲染。这是创建和渲染的过程。3D场景分为2D。

  只需查看基础,如何浏览全景地图?

  全景是六个方向的照片。我们可以在3D场景中放置一个立方体,六架飞机粘贴在不同方向上的图片。将相机放在其中,相机可以在不同方向上看到内容。这就是为什么全景浏览也称为天空框的原因,因为它是通过立方体图实现的。

  当然,您也可以使用球体直接使用大型全景图。相机放置在中间。旋转摄像头还可以在不同方向上看到内容。

  因此,您需要创建一个立方体或球体来制作全景地图?

  实际上,场景场景可以设置背景的质地。我们可以设置公式Cubetxture,即6架飞机。这样,您可以在场景的不同方向上看到场景的内容。无需单独创建立方体或领域。

  设置几行代码的纹理,让我们写下代码。

  我们创建3D场景:

  然后设置其背景并用立方体的纹理设置。您需要指定来回左右的6个方向的图表:

  这样,整个背景就是全景,只有几行代码。

  当然,我们还需要设置相机位置。在这里,我们需要使用透视摄像机。它的特征是从一点点看3D场景。我们看到的内容几乎很小。

  您需要设置观察角度。这是45度。请参阅内容的宽度比。这是窗口的宽度比,然后是距离距离的距离。此设置范围更大。

  相机位置设置在z轴100位置,以使z至0的位置是从正面看它的,您可以感觉到此视图的方向。

  使用3D场景,设置了相机,并且可以使用渲染器渲染。

  我们使用requestAnimationFrame调用渲染器渲染框架。

  当然,您需要添加鼠标控件以通过鼠标的拖动方向更改相机的角度。这是由三分提供的控制,只有必要,您不需要自己写。

  我们需要查看360度,并使用OrbitsControls进行交互。他的名字是轨道控制器的轨道,这是地球周围卫星的轨道。

  OrbitControls参数是相机,因为它是通过更改相机位置实现的。

  在这一点上,我们已经实现了全景。

  所有代码上传github:https://github.com/quarkgluonplasma/threejs-earpercize

  总代码总数很少。

  让我们摘要:

  全景地图浏览不需要创建立方体或球体,并且直接为场景(场景)设置了Cubetexture的背景。粘贴了6张图片。然后将相机(相机)位置设置为带有渲染器的框架,并添加导轨控制器以支撑拖动和拖动相机位置。

  主要逻辑完成了,但是还有一个分支线图:6张图片是如何来自的?

  可以在互联网上找到很多全景图,我们的手机的相机也可以拍摄全景地图,但这是一个完整的大图,并且立方纹理必须在不同方向上加载6个图表。

  这有一个工具可以做到。

  官方网站有下载地址:https://www.ptgue.com/download.html?ps = main

  单击工具中的转换到立方体面,您将打开一个窗口,然后选择一个全景,设置导出格式,单击导出,您可以生成上,下,左和向后的六个方向。

  一般照片只是方向的图片,全景地图是向上,向下,左,左和向后的360度的图片。它可以记录相机位置的场景。

  全景地图需要浏览的特殊工具,我们可以使用三分。并转动相机以朝不同的方向查看图片。

  实际上,实现全景视图的简单方法是将立方纹理直接设置为场景。无需单独创建立方体或领域。使用cubetextureloader加载六张图片并将其设置在场景背景上。

  还必须设置相机,加上导轨控制器以及渲染器框架的渲染,以实现全景图浏览的功能。

  至于六个贴纸,可以通过PTGUI或类似工具将其切出。

  全景视图中几乎没有代码行,但是此功能仍然很有用。如果您拍摄全景图片,则更好。您可以记录生活中的三个维持三维场景,并编写一个浏览工具。