在球体上使用 X3Dom MovieTexture 不会显示整部电影

Using X3Dom MovieTexture on a sphere doesn't show whole movie

我正在尝试使用 X3Dom MovieTexture 将影片用作球体上的纹理。它采用等距投影,允许用户环顾四周(类似于 Google 街景)。

这部电影是 mp4 或 ogv 格式,可以在例如来自 example code from the x3dom docs.

的盒子形状

但是,在球体上,只有 20% 的表面被电影纹理覆盖,而其余部分则在表面上拉伸。

相关代码如下所示:

<x3d width='500px' height='400px'>
  <scene>
    <shape>
      <appearance>
         <MovieTexture repeatS="false" repeatT="false" loop='true' url='bigBuckBunny.ogv'></MovieTexture>
      </appearance>
      <sphere></sphere>
    </shape>
  </scene>
</x3d>

看起来应该可以工作,但当前 bug in x3dom 当在纹理上设置 repeatS="false" 时。

包含 <canvas><video> 元素的通用 <texture> 元素也会出现此问题。

对我有用的解决方法是使用大小为 power-of-two<canvas> 以避免设置 repeatS="false"

另一种方法是缩放到原始视频。