Как использовать прозрачность в узле 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 для использования. В зависимости от порядка объектов в графе сцены тип прозрачности по умолчанию может не создавать правильное изображение для некоторых ориентаций камеры.