如何将着色器添加到 THREE.从STLLoader加载的Object3D
How to add shader to THREE.Object3D loaded from STLLoader
我有一个使用 THREE 加载的模型。斯特洛德。
var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {
var mesh = event.content;
scene.add(mesh);
});
loader.load('model/test.stl');
我需要将顶点和片段着色器应用于此模型。怎么做?
包含着色器的常用方法是将它们放在<script>
标签中:
<script id="vertexShader" type="x-shader/x-vertex">
void main() {
...
}
</script>
<script id="fragmentShader" type="x-shader/x-fragment">
void main() {
...
}
</script>
然后,在init
函数中:
// it's useful to have uniforms as a ~global variable,
// so you can modify them from other functions
// in animate() or render() for example
var uniforms = {
// here, your shader's uniforms variables
};
var material = new THREE.ShaderMaterial( {
uniforms: uniforms
vertexShader: document.getElementById( 'vertexShader' ).textContent,
fragmentShader: document.getElementById( 'fragmentShader' ).textContent
});
在您的加载器回调中
var mesh = event.content;
mesh.material = material;
看看这个简单的着色器示例 http://threejs.org/examples/webgl_shader.html
这个问题并没有显示出自己的研究努力。请参阅: 如何将材料分配给 ColladaLoader 或 OBJLoader
只有三天大。也许下次,尝试搜索至少超过3秒的翻白眼。是的,正如文森特所建议的那样,有很多例子可以查看。
相关文章:
- 在Three.js中导出网格会提高性能吗
- 如何在three.js上添加两个向量
- Three.js Points Rotation
- 无法读取属性'材料'未定义的Three.js
- Potree/Three.js测量问题
- Three.JS OBJ模型未显示
- 有没有一种方法可以获得three.js的最小/lite版本
- JS和three.JS,在浏览器中进行参数测试
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 如何在three.js中有效地使用TraingleStripDrawMode
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- three.js:如何让透明的png精灵投射和接收阴影
- Three.js更改材质
- three.js EffectComposer's渲染目标
- 单击以将相机放置在Three js中的对象附近
- Three.js Three.投影仪已移至
- THREE.js轨道控制不工作
- Three.js,WebGL,渲染六幅图像的全景图
- 如何在three.js中为三角形添加纹理
- 如何将着色器添加到 THREE.从STLLoader加载的Object3D