Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Проблемы с прозрачными объектами в GLScene   Найти похожие ветки 

 
tERRORist ©   (2005-07-03 13:53) [0]

Возможно вопрос решается легко, но пока не нашел ответа. Из примеров я так понял что нужный эффект устанавливается свойством GLScene.ObjectsSorting и соответствующей сортировкой объектов в дереве сцены. Но как быть например в случае если имеются два полупрозрачных GLMesh, представляющие собой спирали, закрученные между собой (как молекула ДНК). Тогда тот меш, который в иерархии стоит ниже в некоторых местах перекрывает первый.


 
A22 ©   (2005-07-04 16:25) [1]

самый простой способ - выводить прозрачные объекты не со смешиванием по альфа-каналу, а с обычным аддитивным блендингом, т.е. сложением. хз как в GL, а в D3D это есть флаг D3D_BLEND_ONE в параметрах бленда. посмотри, вдруг подойдет


 
A22 ©   (2005-07-04 16:25) [2]

кстати, при таком бленде и сортировать объекты не надо перед выводом


 
Fosgen   (2005-07-04 17:26) [3]

Я тут недавно возился с такой ситуевиной. В общем - все делается в настройках тектур (так надежнее - хотя не единственный вариант).
Blending Mode:=bmTransparency;
ImageAlpha:=tiaSuperBlackTransparent;
TextureMode:=tmReplace;

Это для прозрачных объектов не изменяемой прозрачности\яркости

Для объектов изменяемой прозрачности\яркости (не аддитивный блендинг):

Blending Mode:=bmAdditive;
ImageAlpha:=tiaSuperBlackTransparent;
TextureMode:=tmModulate;
FrontProperties.Emission.Red:=255;
FrontProperties.Emission.Green:=255;
FrontProperties.Emission.Blue:=255;

проверено на видеокарте Ati Radeon 9550. Может быть будет работать и на GeForce"ах.

проверено для карт nVidia (то же самое на ATi дает артефакты):

Blending Mode:=bmAdditive;
ImageAlpha:=tiaDefault;
TextureMode:=tmReplace;

Это для прозрачных объектов не изменяемой прозрачности\яркости (не аддитивный блендинг)

Для объектов изменяемой прозрачности\яркости:

Blending Mode:=bmAdditive;
ImageAlpha:=tiaDefault;
TextureMode:=tmDecal;

Разумеется во всех указанных случаях в текстуре цвет RGB(0,0,0) - считается прозрачным. При использовании таких текстур на спрайтах - важен вывод их с отключением Z-буффера (NoZWrite:=True).



Страницы: 1 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
14-1130740490
pavel_guzhanov
2005-10-31 09:34
2005.11.20
Книга Марко Кэнту


3-1129107561
AndDem
2005-10-12 12:59
2005.11.20
Reconnect


2-1130622911
Takezhan
2005-10-30 01:55
2005.11.20
Отправка почты формата html


2-1131018364
Vetalich
2005-11-03 14:46
2005.11.20
Время задержки (ping)


2-1130502856
Oxid Burn
2005-10-28 16:34
2005.11.20
Timer