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

Вниз

Прозрачность и текстура   Найти похожие ветки 

 
Зм1й ©   (2006-10-28 16:54) [0]

Когда объект покрыт текстурой с полупрозрачными участками, то через них просматривается фон, а не другие объекты (при функции смешения (SRC_ALPHA, ONE_MINUS_SRC_ALPHA) и включённом тесте глубины). Подскажите пожалуйста, как сделать, чтобы просматривались другие объекты.


 
XProger ©   (2006-10-28 17:26) [1]

glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.1);


 
Зм1й ©   (2006-10-28 17:37) [2]


> XProger ©   (28.10.06 17:26) [1]
> glEnable(GL_ALPHA_TEST);
> glAlphaFunc(GL_GREATER, 0.1);

Но так полупрозрачные участки становятся либо полностью прозрачными, либо полностью непрозрачными.  Необходимо сохранить полупрозрачность. (прямо скороговорка получилась :))


 
XProger ©   (2006-10-28 17:44) [3]

Зм1й, так прозрачные участки не пишутся в ZBuffer
Если в данном случае необходима полупрозрачность:
1) Сортировка полигонов при отрисовке (сначала непрозрачные, затем прозрачные)
2) glDepthMask(False)


 
Зм1й ©   (2006-10-28 17:49) [4]


> XProger ©   (28.10.06 17:44) [3]

Ты подразумеваешь, что нужно проводить разбиение граней?


 
XProger ©   (2006-10-28 17:52) [5]

Зм1й, если нужна полупрозрачность - да :)
Если полупрозрачные участки нужно видеть через полупрозрачные - нужно бить на грани
Если непрозрачные через полупрозрачные - можно на группы граней прозрачные/полупрозрачные объект побить.


 
Зм1й ©   (2006-10-28 18:24) [6]


> XProger ©   (28.10.06 17:52) [5]

Ты точно уверен, что не существует других способов?


> Если полупрозрачные участки нужно видеть через полупрозрачные
> - нужно бить на грани
> Если непрозрачные через полупрозрачные - можно на группы
> граней прозрачные/полупрозрачные объект побить.

Мне нужен второй способ.
Но я не совсем понимаю... Если только отсортировать грани, то при выводе без теста глубины пересекающихся граней они ведь должны отображаться неверно, если не разбивать сами грани


 
XProger ©   (2006-10-28 20:29) [7]

Зм1й, пересекающиеся полупрозрачные грани необходимо выводить в последнюю очередь с glDepthMask(False) или же разбивать их...
Есть другие, достаточно тормозные методы с использованием шейдеров http://delphi3d.net/download/oit.zip



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
15-1191231333
User1999
2007-10-01 13:35
2007.10.28
Process View


2-1191512951
ist
2007-10-04 19:49
2007.10.28
язык в версии файла....


3-1181823543
GhosTer
2007-06-14 16:19
2007.10.28
Как подключиться к базе данных Active Directory!


2-1191432426
artkil
2007-10-03 21:27
2007.10.28
Строки TListView


8-1168521455
Umka
2007-01-11 16:17
2007.10.28
Кадры и потоки как ресурс DirectShow