Как использовать прозрачность в узле SoMaterial для достижения полупрозрачного эффекта

Теперь у меня есть узел SoMaterial, и я установил некоторые его свойства следующим образом:

      holderMaterial ->ambientColor. setValue (color [0]/255. f, color [1]/255. f, color [2]/255. f);
HolderMaterial ->diffuseColor. setValue (color [0]/255.0f, color [1]/255.0f, color [2]/255.0f);
HolderMaterial ->shinness=0.0;
HolderMaterial ->transparency=1- color [3]/255.0f;

Но я обнаружил, что когда он становится полупрозрачным, цвет не может отображаться на белом фоне. Каково решение

Я использую этот векторный цвет [4] = { 230, 178, 133, 254 } и, как показано на рисунке, он не имеет цвета на белом фоне.

[черный фон ]

[белый фон ]

Я надеюсь, что он сохранит одинаковый визуальный эффект на разных цветах фона, желательно на черном фоне.

1 ответ

Кажется, он правильно работает с моей версией Open Inventor. Можете ли вы предоставить небольшой тестовый пример, воспроизводящий проблему?

Ни одно из предоставленных вами изображений не кажется правильным. :) На черном фоновом изображении присутствует некоторая светло-голубая геометрия, но используемые вами значения цвета должны давать более «коричневый» цвет.

Следует проверить тип прозрачности, который вы указываете Open Inventor для использования. В зависимости от порядка объектов в графе сцены тип прозрачности по умолчанию может не создавать правильное изображение для некоторых ориентаций камеры.

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