javascript - Three.js 视频部分作为纹理

标签 javascript three.js

我正在尝试使用视频的一部分作为 Three.js 网格中的纹理。

视频在这里,http://video-processing.s3.amazonaws.com/example.MP4它是一个鱼眼镜头,我只想使用具有实际内容的部分,即中间的圆圈。

我想以某种方式 mask 、裁剪或定位并拉伸(stretch)网格上的视频,以便仅显示这部分,而忽略黑色部分。

视频代码

var video = document.createElement( 'video' );
    video.loop = true;
    video.crossOrigin = 'anonymous';
    video.preload = 'auto';
    video.src = "http://video-processing.s3.amazonaws.com/example.MP4";
    video.play();

var texture = new THREE.VideoTexture( video );
    texture.minFilter = THREE.NearestFilter;
    texture.magFilter = THREE.LinearFilter;
    texture.format = THREE.RGBFormat;

var material   = new THREE.MeshBasicMaterial( { map : texture } );

然后将视频投影到 220 度的球体上,以产生 VR 效果。

var geometry = new THREE.SphereGeometry( 200,100,100, 0, 220 * Math.PI / 180, 0, Math.PI); 

这是一支代码笔 http://codepen.io/bknill/pen/vXBWGv

谁能告诉我如何最好地做到这一点?

最佳答案

您可以使用texture.repeat来缩放纹理

http://threejs.org/docs/#Reference/Textures/Texture

例如,在两个轴上缩放 2 倍 纹理.repeat.set(0.5, 0.5);

关于javascript - Three.js 视频部分作为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259561/

相关文章:

javascript - 如何将 Three.js 纹理作为 "WebGLTexture"传递给 WEBGL 代码?

javascript - three.js 浏览器中的实时代码编辑器

javascript - 如何在Threejs中从平面发出光?

javascript - 网页上的地理定位不起作用

javascript - 如何根据函数调用在构造函数中设置顶级属性方法?

javascript - 全局搜索时 JavaScript 中的 RegExp 错误

javascript - 不使用 Javascript 库的 AngularJS 部分 View

javascript - Three.js - 如何检查对象是否对相机可见

javascript - 将多个字符串和文本连接成一个字符串 - Blogger Javascript

angular - 三人组 : Draw elbow with begin radius and end radius