每當我寫在three.js所定製的着色器,我犯了一個錯誤,控制檯輸出與編譯後的代碼GLSL一個不錯的錯誤信息。它包括我的代碼與所有多餘的線條沿着three.js所自動添加上:在THREE.js中查看材質的編譯着色器代碼?
問:
有什麼辦法來輸出編譯一個內置的vertexShader
和fragmentShader
材料?我在我的項目中使用THREE.MeshLambertMaterial
,我想閱讀編譯GLSL代碼來了解它的引擎蓋下是如何運行的。我知道,我可以去圖書館的的\ src \渲染\着色器\ ShaderLib \ meshlambert_frag.glsl但它有幾十#include
線,沒有所有的附加屬性/校服自動three.js所追加。
我試圖CONSOLE.LOG材料的性能第一渲染之後,但我不能找到編譯GLSL代碼:
var firstRender = true;
function update(){
renderer.render(scene, camera);
if(firstRender === true){
// Where in myMaterial is the GLSL code stored?
console.log(myMaterial.program.vertexShader);
firstRender = false;
}
}
Firefox已經在它的devtools着色器代碼查看器。我也只是穿過稱爲Chrome擴展[spector.js(https://chrome.google.com/webstore/detail/spectorjs/denbgaamihkadbghdceggmchnflmhpmk?hl=en)這似乎相當不錯(我只注意到在提到來到其他答案... woops) – 2pha
謝謝,@ 2pha! FireFox着色器編輯器非常棒,我甚至不需要安裝任何第三方插件! – Marquizzo