如何在 A-Frame 中创建 180-degree/semisphere/segment/partial 视频球体?

How to create a 180-degree/semisphere/segment/partial video sphere in A-Frame?

<a-videosphere src="myvideo.mp4"> 在整个 360 度球体上显示视频,但我想显示视频或图像,但只能在半球等球体的一部分上显示。类似于:


(来自 MathWorld - Wolfram Web 资源:wolfram.com

我如何在 A-Frame 中执行此操作?

您可以使用球体几何形状(<a-entity geometry="primitive: sphere"><a-sphere>)并控制球体的 phiLength/thetaLength 角度来指定一个线段。 Theta 长度控制水平扫掠角,phi 长度控制垂直扫掠角:


(来源:mediabox.fr

对于一个半球,我们会做:

<a-entity geometry="primitive: sphere; thetaLength: 180; radius: 5000; segmentsWidth: 64; segmentsHeight: 20" scale="1 1 -1" material="src: #myVideo; shader: flat"></a-entity>

或者:

<a-sphere theta-length="180">

然后应用 material.

对于videosphere,我们可以更新一下:

<a-videosphere src="#myVideo" geometry="thetaLength: 180"></a-videosphere>

但是,视频不会像您预期的那样被裁剪。所以你可能需要事先裁剪。如果你想让它像 background-size: cover 一样裁剪,我们可能需要做一些特殊的事情,比如隐藏球体的一部分。