THREE.jsでカスタムシェーダーを作成しているときに間違いを犯すと、コンソールはコンパイルされたGLSLコードで素晴らしいエラーメッセージを出力します。それは一緒にすべての余分な線で自分のコードが含まれてThree.jsが自動的に追加されている:THREE.jsで素材のコンパイル済みシェーダコードを表示しますか?
質問:
内蔵のvertexShader
とfragmentShader
をコンパイル出力にどのような方法があります材料で?私は自分のプロジェクトでTHREE.MeshLambertMaterial
を使用しています。コンパイルされたGLSLコードを読んで、その実行方法を理解したいと思います。私は図書館の\ src \ renderers \ shaders \ 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にシェーダコードビューアがあります。私はちょうど[spector.js](https://chrome.google.com/webstore/detail/spectorjs/denbgaamihkadbghdceggmchnflmhpmk?hl=en)と呼ばれるクロムエクステンションを見に行きました。他の答え... woops) – 2pha
ありがとう、@2α! FireFoxシェーダエディタは素晴らしいですし、サードパーティのプラグインをインストールする必要はありませんでした。 – Marquizzo