настроить terrain.js (three.js) Необходимо добавить материал lambert/wire

Недавно я начал играть с 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;

Спасибо за ваше время заранее,

С Уважением

-Мануэль


person Manuqc    schedule 27.03.2013    source источник
comment
Вместо нового THREE.Mesh попробуйте THREE.SceneUtils.CreateMultiMaterialObject   -  person uhura    schedule 27.03.2013
comment
Привет, Ухура, я пытался поиграть с созданием мультиматериала, но, похоже, это не сработало. На этот раз я использую оригинальный генератор ландшафта от qiao. Поскольку у меня были некоторые проблемы с попыткой центрировать камеру в предыдущем примере. Оба очень похожи в конце. Я опубликую свой пример ниже. Спасибо за вашу помощь!   -  person Manuqc    schedule 28.03.2013
comment
Это jsfiddle оригинального генератора фрактальной местности из демонстрации qiao: jsfiddle.net/uSrsW/2 и это моя незавершенная работа, где я изменил встроенный javascript, чтобы добавить многофункциональность, хотя я еще ничего не визуализировал. Не уверен, что не так. Вот ссылка: jsfiddle.net/xnqUb/3   -  person Manuqc    schedule 28.03.2013


Ответы (1)


Это код, который я использую в своем нерабочем примере для материалов (http://jsfiddle.net/xnqUb/3). /)

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);
person Manuqc    schedule 27.03.2013
comment
Кроме того, я хочу получить очень простую навигацию с помощью трекбола, как в следующем примере: mrdoob .github.com/three.js/examples/ Надеюсь, вы или кто-то другой можете мне немного помочь, чтобы заставить работать несколько материалов и камеру с трекболом, спасибо за вашу помощь, я очень ценю это. - person Manuqc; 28.03.2013
comment
Я обновил вашу скрипку с THREE.SceneUtils.CreateMultiMaterialObject - person uhura; 28.03.2013
comment
Привет, Ухура! Большое спасибо за помощь! Хотя я понял, что когда количество полигонов выше, я получаю некоторые ошибки: - person Manuqc; 28.03.2013
comment
любые идеи о том, что может быть причиной этого? Спасибо еще раз - person Manuqc; 28.03.2013
comment
Привет, я изменил значение размера внутри html-формы, проблема не выглядит такой сильной на jsfiddle, потому что это небольшой предварительный просмотр, но в полноэкранном режиме это действительно отвлекает, и он как бы теряет свою форму (каркас). Я поднял размер (количество полигонов в этом примере: jsfiddle.net/uSrsW/15 - person Manuqc; 29.03.2013
comment
Надеюсь, у вас есть идея. Для справки, он использует three.js версии 47, я пытался использовать последнюю сборку, но ничего не отображается, не уверен, меняет ли это что-то или нет... на случай, если это ошибка, я имею в виду. Спасибо за ваше время :) - person Manuqc; 29.03.2013
comment
Я думаю, что способ решить эту проблему может заключаться в том, чтобы вместо использования чистого шейдера использовать мозаичный материал в качестве чистого цвета, что вы думаете? Благодарность - person Manuqc; 29.03.2013
comment
Я тестировал много примеров и, наконец, я считаю, что эта проблема связана просто из-за количества полигонов, я думал, что это ошибка, но это может быть нормально иметь проблемы с отображением каркаса на сетках с высокой плотностью, может быть, если больше из-за проблемы с браузером ... так что я оставлю это так, я думаю - person Manuqc; 29.03.2013