我有一个视频球体,我想将高分辨率(5100 x 2550px)视频纹理映射到它上面。
<video
id="my-video"
preload="auto"
src="./assets/video/video.mp4"
crossorigin="anonymous"
playsinline
webkit-playsinline
></video>
...
<a-videosphere play-on-click id="skyVideo" rotation="-30 0 0" src="#my-video" class="cantap">
</a-videosphere>
当我加载高分辨率视频时,视频圈是黑色的,并且出现以下错误:WebGL 错误 501
当我将视频纹理缩小到 2560 x 1280 时,videosphere 按预期显示纹理,没有错误。
AFrame 或 Three.js 中是否存在我不知道的最大纹理分辨率?
该限制不是由 A-Frame 或 Three.js 确定的,而是由 WebGL 和您的显卡功能确定的。去https://webglreport.com/并看看Textures > Max Texture Size
字段以查看您正在使用的设备可以处理什么。我的笔记本电脑最高支持8192,我的手机更低,但我的台式机最高支持8192。它根据您的 GPU 的不同而有所不同。我的猜测是你的机器最高支持 4096。
![enter image description here](https://i.stack.imgur.com/PLjbi.jpg)
您可以在 Three.js 中使用以下命令获取该值WebGLRenderer.capabilities.maxTextureSize
, 如文档中所述这样您就可以在不同的设备上读取该值并进行相应调整。也许您想根据限制指向较低分辨率的视频。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)