Javascript 自定义terrain.js(three.js)需要添加lambert/wire材质
我最近开始使用three.js,我正在使用demo作为一个设计项目的开始 我想添加一个混合着色器“线框/兰伯特” 默认值仅与线着色器一起提供 这是演示中的代码,使用基本材料:Javascript 自定义terrain.js(three.js)需要添加lambert/wire材质,javascript,three.js,terrain,fractals,Javascript,Three.js,Terrain,Fractals,我最近开始使用three.js,我正在使用demo作为一个设计项目的开始 我想添加一个混合着色器“线框/兰伯特” 默认值仅与线着色器一起提供 这是演示中的代码,使用基本材料: var matrix = new THREE.MeshBasicMaterial({ color:0x10ce58, wireframe:true }); var geometry = new THREE.PlaneGeometry(wi
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;
感谢您在advanced中抽出时间
问候
-Manuel这是我在材料的非工作示例中使用的代码()
而不是新的THREE.Mesh try THREE.SceneUtils.CreateMultimaterialObject Hello Uhura,我尝试与“创建多材质,但它似乎不起作用。这次我使用的是乔的原始地形生成器。因为我在尝试使用上一个示例使相机居中时遇到了一些问题。两者最终都非常相似。我将在下面发布我的示例。谢谢你的帮助!这是乔的演示中最初的“分形地形生成器”的一个JSFIDLE:这是我正在进行的工作,我修改了嵌入的javascript以添加多材质功能,尽管我还没有得到任何渲染。不知道怎么了。这里是链接:此外,我想得到一个非常简单的“轨迹球导航”,如下面的例子:希望你或有人可以帮助我一点,让多种材料和轨迹球凸轮工作,谢谢你的帮助,我非常感谢。有了三个.SceneUtils.CreateMultiMaterialObjectHi Uhura,非常感谢您的帮助!虽然我意识到当“多边形”计数更高时,我得到了一些错误:有什么想法可以导致这种情况吗?感谢againHi,我更改了html表单中“大小”的值,这个问题在JSFIDLE上看起来没有那么严重,因为它是一个小预览,但在全屏上确实会分散注意力,它有点失去了它的形式(线框)。我提高了大小(本例中的多边形数:
var geometry = new THREE.PlaneGeometry(width, height, model.length - 1, model.length - 1, materials);
materials = [
new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.FlatShading, overdraw: true } ),
new THREE.MeshLambertMaterial({ color: 0x10ce58, wireframe: true,})
];
var mesh = new THREE.Mesh(geometry);
object = THREE.SceneUtils.createMultiMaterialObject(geometry, materials);