Overlay me sh прозрачен для определенных цветов материала в программе просмотра Forge 3D - PullRequest
1 голос
/ 17 марта 2020

Я пытаюсь добавить пользовательскую геометрию в мое средство просмотра кузницы, следуя этому примеру . В основном это работает нормально, за исключением случаев использования определенных цветов.

Я использую следующий код для добавления сферы мне sh:


        const geometry = new THREE.SphereGeometry(0.4, 32, 32)
        const material = new THREE.MeshBasicMaterial({
            color: someColor,
            transparent: false,
        })
        const sphere = new THREE.Mesh(geometry, material)

        viewer.overlays.addScene('sphere-mesh-scene')
        viewer.overlays.addMesh(sphere, 'sphere-mesh-scene')

для определенных значений someColor сфера прозрачна, для других значений это не так: например,

#6b6e75 и #54ffff - прозрачная сфера, а #000000 и #988888 - непрозрачная сфера.

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

Я использую Forge Viewer версии 7.14.0.

Редактировать

Я также получаю тот же результат для облаков точек - с облаком точек со многими разными цветами, некоторые точки прозрачны и имеют «светящийся контур» на геометрии Кузницы.

1 Ответ

1 голос
/ 24 марта 2020

Это происходит потому, что по умолчанию шейдер смешивания определяет, следует ли ему добавить прозрачность (например, к выбранным узлам) по его оттенку в оверлее ...

Мы можем подавить это поведение, повернув useIdBufferSelection в initOptions, как показано ниже, при звонке viewer.start/loadModel(svf,options,cb,cb,cb,initOptions):

viewer.loadModel(svf,null,null,null,{useIdBufferSelection:true});

Смотрите демоверсию здесь

...