2012-10-07 124 views
1

我正在嘗試與Three.js一起使用自定義着色器。我試圖像許多例子那樣做,但它不起作用。我的代碼是:自定義着色器 - Three.js

var vertex = "void main(){vec4 mvPosition = modelViewMatrix * vec4(position, 1.0 );gl_Position = projectionMatrix * mvPosition;}"; 
var fragment = "precision highp float;void main(void){gl_FragColor = vec4(0.0,1.0,0.0,1.0);}"; 
material = new THREE.ShaderMaterial({ 
       vertexShader: vertex, 
       fragmentShader: fragment 
     }); 
var mesh = new THREE.Mesh(geometry,material); 

...一切都是空白的。但如果我使用這種材料:

material = new THREE.MeshBasicMaterial({ color: 0xff0000, wireframe: true }); 

......一切都完美。怎麼了?

+0

它工作正常的我。它必須是你沒有顯示的其他代碼。 – Anton

+0

可能存在幾何問題嗎?我加載像頂點和索引數組,但與MeshBasic材料,它的作品很棒..我會嘗試在我的代碼中找到更深的.. – Xrew

回答

2

我發現這個問題:我不得不使用:的

renderer = new THREE.WebGLRenderer(); 

代替:

renderer = new THREE.CanvasRenderer();