Three.js ColladaLoader bumpScale/weighting? Способ регулировки интенсивности карты неровностей

В текущем ColladaLoader.js я не вижу ничего, что считывает или применяет значение "веса" стандарта Collada (0,0-1,0), которое указывает на интенсивность удара или "bumpScale" в материале Three.js Phong. Я заметил, что когда я экспортирую свою колладу из Blender, она мгновенно подбирает материалы для ударов в three.js (что удивительно просто - YAY!), Но мои материалы всегда получают преувеличенное значение bumpScale по умолчанию 1.0. Это дает материалам преувеличенную ухабистость.

Мне удалось немного отредактировать мой ColladaLoader и опробовать мое идеальное значение (0,05), но мне интересно, что я что-то упустил или делаю это неправильно? Кто-нибудь еще попробует это? Заметьте, что мне не повезло с экспортом json, поэтому я сейчас придерживаюсь Collada.

Спасибо

1 ответ

Решение

Вы можете установить пользовательские свойства в обратном вызове Collada. Используйте шаблон как этот:

loader.load( 'collada.dae', function ( collada ) {

        var dae = collada.scene;

        dae.traverse( function( child ) {

            if( child instanceof THREE.Mesh ) {

                child.material.bumpScale = value;

            }

        } );

        scene.add( dae );

} );

three.js r.71

Другие вопросы по тегам