![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прозрачность текстуры [GLScene, Windows]
WandR © (2005-07-30 22:02:00)Как установить уровень прозрачность у текстуры в библиотеке материалов?
Я пробовал выставлять Blending Mode: bmAdditive, но текстура становится почти невидимой а мне нужно чтобы она была слегка прозрачна.
Fosgen (2005-08-01 21:29:00) [1]Я тут недавно писал на эту тему.
В общем - все делается в настройках тектур (так надежнее - хотя не единственный вариант).
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;
//данные настройки позволяют получить исходную яркость текстуры.
В этом режиме прозрачность регулируется "шевелением" свойства Alpha в FrontProperties.
проверено на видеокарте Ati Radeon 9550. Может быть будет работать и на GeForce'ах.
проверено для карт nVidia (то же самое на ATi дает артефакты):
Blending Mode:=bmAdditive;
ImageAlpha:=tiaDefault;
TextureMode:=tmReplace;
Это для прозрачных объектов не изменяемой прозрачности\яркости (не аддитивный блендинг)
Для объектов изменяемой прозрачности\яркости:
Blending Mode:=bmAdditive;
ImageAlpha:=tiaDefault;
TextureMode:=tmDecal;
В этом режиме прозрачность регулируется "шевелением" свойства Alpha в FrontProperties.
Разумеется во всех указанных случаях в текстуре цвет RGB(0,0,0) - считается прозрачным. При использовании таких текстур на спрайтах - важен вывод их с отключением Z-буффера (NoZWrite:=True).
Fosgen (2005-08-01 21:26:00) [2]Я тут недавно писал на эту тему.
В общем - все делается в настройках тектур (так надежнее - хотя не единственный вариант).
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).
A22 (2005-08-01 18:01:00) [3]Channel -> Add channel. это и будет альфа
WandR (2005-08-01 17:28:00) [4]А где выставлять альфа канал в PhotoShop?
Домовенок (2005-07-30 23:07:00) [5]Есть два варианта придать прозрачность текстуре:
1. Добавить альфа канал. Делается это в PhotoShop или в любом другом редакторе, работающем с альфа каналами и сохраняется в tga. После чего в библиотеке материалов ставится свойство BlendingMode в Transparansy.
2. Пошевелить свойство текстуры Alpha в FrontProperties > Ambient, Diffuse, Emission. Сам я так не делал, но уверен, что есть смысл поковырять, решение должно быть. Еще в догадках, что не во всех режимах BlendingMode, Alpha может влиять на прозрачность текстуры.