You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Three.js将视频添加到平面几何体时黑屏的解决方法

解决Three.js平面几何体显示视频仅出现黑色矩形的问题

我之前在尝试用Three.js把视频渲染到平面几何体上时,碰到了个头疼的问题:不管怎么调整参数,屏幕上始终只显示一个黑色矩形,完全看不到视频内容。当时写的核心代码是这样的:

var video = document.getElementById('video');
var texture = new THREE.VideoTexture(video);
texture.needsUpdate;
texture.minFilter = THREE.LinearFilter;
texture.magFilter = THREE.LinearFilter;
texture.format = THREE.RGBFormat;
texture.crossOrigin = 'anonymous';
var imageObject = new THREE.Mesh(
    new THREE.PlaneGeometry(width, height),
    new THREE.MeshBasicMaterial({ map: texture }),
);
scene.add( imageObject );

折腾了一阵才发现问题根源:我只完成了VideoTexture和平面网格的创建,但视频元素本身根本没被正确初始化——既没设置视频源,也没触发加载和播放操作,空的视频元素没法提供任何纹理数据,自然只能显示黑色。

后来我给代码补上了这几行内容,问题立刻就解决了:

video.src = "src to video"; // 替换成你的实际视频地址
video.load();
video.play();

加上这三行后,视频元素会加载指定的视频源并开始播放,Three.js的VideoTexture就能实时获取到视频的帧数据,平面几何体也就正常显示出视频内容了!

内容的提问来源于stack exchange,提问作者Miche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:49:59