Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
14-1130479509
AngelOfDeath
2005-10-28 10:05
2005.11.20
DLL


2-1131025394
KorvinOE
2005-11-03 16:43
2005.11.20
UpperCase для русского языка


2-1130774450
Lexq
2005-10-31 19:00
2005.11.20
Отключение Alt+F4, Ctrl+Alt+del


6-1123018178
vitorg
2005-08-03 01:29
2005.11.20
Уникальность входящего dialup


2-1131200946
Alex174
2005-11-05 17:29
2005.11.20
Общие вопросы




   Наверх