【发布时间】:2013-03-27 00:54:10
【问题描述】:
我最近开始使用three.js,我正在使用terrain.js 演示作为我正在从事的设计项目的开始。
我想添加一个混合着色器“线框/兰伯特” 默认仅带有线着色器。
这是演示中的代码,使用基本材料:
var matrix = new THREE.MeshBasicMaterial({
color:0x10ce58,
wireframe:true
});
var geometry = new THREE.PlaneGeometry(width, height, modelWidth, modelHeight);
mesh = new THREE.Mesh(geometry, matrix);
mesh.doubleSided = false;
我尝试了类似的方法,但我只得到“兰伯特”渲染,而不是兰伯特和电线组合,有什么想法吗?
var darkMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff , shading: THREE.FlatShading, overdraw: true} );
var wireframeMaterial = new THREE.MeshBasicMaterial( { color: 0x10ce58, wireframe: true, transparent: true } );
var multiMaterial = [ darkMaterial, wireframeMaterial ];
var geometry = new THREE.PlaneGeometry(width, height, modelWidth, modelHeight);
mesh = new THREE.Mesh(geometry, multiMaterial);
mesh.doubleSided = false;
感谢您的宝贵时间,
问候
-曼努埃尔
【问题讨论】:
-
代替新的 THREE.Mesh 尝试 THREE.SceneUtils.CreateMultiMaterialObject
-
你好 Uhura,我尝试过使用“创建多材质,但它似乎不起作用。这次我使用的是 qiao 的原始地形生成器。因为我在尝试居中时遇到了一些问题相机与前面的示例。最后两者都非常相似。我将在下面发布我的示例。感谢您的帮助!
-
这是来自 qiao 演示的原始“分形地形生成器”的 jsfiddle:jsfiddle.net/uSrsW/2 这是我正在进行的工作,我修改了嵌入的 javascript 以添加多材料功能,尽管我得到了还没有渲染。不知道出了什么问题。这是链接:jsfiddle.net/xnqUb/3
标签: javascript three.js terrain fractals