Полупрозрачность и Z-буфер несовместимы?
От: чОрт Россия  
Дата: 30.04.04 13:05
Оценка:
Привет всем!
Сейсас занимаюсь отображением 3D модели города (DirectX Graphics 9.0) и упёрся вот во что: полупрозрачность двух объектов при их перекрытии зависит от порядка рендеринга. Т.е. перекрытая часть дальнего объекта не рисуется в случае, если он выводится вторым (не даёт z-буфер). Если первым — всё OK, оба последовательно целиком пишутся в z-буфер, а дальше — классическая формула: FinalColor = TexelColor x SourceBlendFactor + PixelColor x DestBlendFactor. (Кстати, SourceBlendFactor == D3DBLEND_SRCALPHA и DestBlendFactor == D3DBLEND_INVSRCALPHA. Может наведёт на мысль...)

Отключать z-буфер и сортировать треугольники врукопашную — самоубийство, либо можно попрощаться с производительностью (и так 1 fps), либо отсрочить сдачу проекта на месяц... Вот что будет в любом из этих случаев:

Блин, но во всяких игрушках всё тип-топ. Как это работает?! Может кто-нить знает хитрую стратегию вывода полупрозрачных объектов? Или подскажет какую-нить бонус-возвожность DirectX, позволяющую устранить этом чОртов эффект z-буфера?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.