2015-11-30 64 views
0

我試圖使用視頻紋理將視頻紋理映射到three.js中的幾何圖形,但它僅在我的材質上將線框設置爲true時才起作用(我看到視頻正在播放在網格上,但用線框)。只要我把它變成假,我什麼都看不到(只是一個黑色的畫布)。我試圖弄清楚爲什麼會有任何想法?three.js視頻紋理線框錯誤

我的視頻是一個html標籤:

<video id="videoV"> 
    <source src="shot13.mp4" type="video/mp4"> 
</video> 

這是我的javascript:

var renderer = new THREE.WebGLRenderer(); 

    video = document.getElementById('videoV'); 
    texture = new THREE.VideoTexture(video); 

    var material = new THREE.MeshLambertMaterial({ 
     color: 0xffffff, 
     map: texture, 
     **wireframe: true** 
     }); 

    geometry = new THREE.BoxGeometry(80, 800, 800); 

    var plane = new THREE.Mesh(geometry, material); 
    scene.add(plane); 
+0

改爲嘗試'MeshBasicMaterial'。 – WestLangley

+0

好主意,只是嘗試,但它並沒有改變任何東西。謝謝 – davidvjc

回答

0

嘗試更新以下行:

v = new THREE.VideoTexture(video); 
texture = v.texture; 

質地VideoTexture成員。

+0

那麼這是否意味着我需要先創建一個基本紋理,然後再創建一個視頻紋理?我試過了,但結果仍然是黑色的。 – davidvjc

0

我解決了它。

問題是我沒有使雙面紋理,因爲我在BoxGeometry裏面。所以當我設置wireframe =「true」時,我看到了立方體內部的黑色。

這解決了這個問題:

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

希望這有助於任何人!