Как изменить цвет коллады с помощью кнопки в 3js?

Push и Pop изменяют указатель стека - SP.

Вызов вызывает FLAGS - регистр состояния, а также адрес возврата RA. Ret выталкивает FLAS pops и перескакивает на обратный адрес.

Как сказал rkhb, необходимо сохранить определенные регистры, поскольку они поступают из вызывающих соглашений.

0
задан Mugen87 17 January 2019 в 17:18
поделиться

1 ответ

Смотрите, вы используете SkinnedMesh здесь, который является производным от класса Mesh . Сам Mesh имеет свойство Mesh.material .

Так что все, что вам нужно, чтобы изменить цвета, это собрать детей, чтобы вы могли получить к ним доступ по отдельности при помощи обработчика нажатия кнопки.

Вот ваш откорректированный код:

    var daeChildren = {}; // map dae child name => child node
    var loader = new THREE.ColladaLoader();

    loader.options.convertUpAxis = true;
    var url='obj/szkieletCube.dae';  

    loader.load( url, function ( collada ) {
        dae = collada.scene;

        ...

        dae.traverse( function ( child ) {  
            child.castShadow = true;
            child.receiveShadow = false;

            // 1. Collect DAE children here
            daeChildren[child.name] = child;
        } );            

        ...

    } );

И затем, нажав кнопку, вы можете изменить цвет материала:

function handleButtonClick() {
    // 2. drop texture if you need the mesh to be just colored
    daeChildren[child.name].material.map = null;

    // 3. set mesh color red
    daeChildren[child.name].material.color = new THREE.Color( 0xff0000 );

    // 4. tell threejs that material must be updated
    daeChildren[child.name].material.needsUpdate = true;
}
0
ответ дан Alex Khoroshylov 17 January 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: