Three.js Импорт gltf без фона - PullRequest
       53

Three.js Импорт gltf без фона

2 голосов
/ 02 октября 2019

В Three.js есть 2 примера сцен (я использую), которые учат, как импортировать модели gltf.
Обе используют функцию RGBELoader, которая инициализирует фон.

new RGBELoader()
                .setDataType( THREE.UnsignedByteType )
                .setPath( 'textures/equirectangular/' )
                .load( 'venice_sunset_2k.hdr', function ( texture ) {

                    var cubeGenerator = new EquirectangularToCubeGenerator( texture, { resolution: 1024 } );
                    cubeGenerator.update( renderer );

                    //background = cubeGenerator.renderTarget;

                    var pmremGenerator = new PMREMGenerator( cubeGenerator.renderTarget.texture );
                    pmremGenerator.update( renderer );

                    var pmremCubeUVPacker = new PMREMCubeUVPacker( pmremGenerator.cubeLods );
                    pmremCubeUVPacker.update( renderer );

                    envMap = pmremCubeUVPacker.CubeUVRenderTarget.texture;

                    pmremGenerator.dispose();
                    pmremCubeUVPacker.dispose();

Я хочу теперь получить пустой фон (или просто землю или что-то) без загрузки этого фона.

Это работает, чтобы закомментировать строку "background" в коде, чтобы увидеть мой объект, а не фон, но не нужно загружать текстуры для фона. Когда я комментирую / удаляю больше вещей, у моего объекта нет текстуры.

Как я могу увидеть шлем / бумбокс (пример объекта в примере сцены "gltf loader") и избавиться от фона? Я знаю, что это как-то связано с "envmap" ..

1 Ответ

1 голос
/ 02 октября 2019

, но нет необходимости загружать текстуры для фона.

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

gltf.scene.traverse( function ( child ) {
    if ( child.isMesh ) {
        child.material.envMap = envMap;
    }
} );

Однако при этом шлем станет более или менее темным, посколькуКарта окружения является единственным (непрямым) источником света в сцене. Вы можете добавить окружающий и направленный или точечный источник света.

three.js R109

...