Mar*_*zzo 5 javascript glsl webgl three.js
每当我在 THREE.js 中编写自定义着色器并且犯了错误时,控制台都会输出一条带有编译后的 GLSL 代码的漂亮错误消息。它包括我的代码以及 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;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2951 次 |
最近记录: |