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

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



Память: 0.46 MB
Время: 0.014 c
15-1191099944
Kostafey
2007-09-30 01:05
2007.10.28
С днем рождения ! 30 сентября


2-1191236054
sydenis
2007-10-01 14:54
2007.10.28
неявное связывание с bpl


15-1190888082
Cyrax
2007-09-27 14:14
2007.10.28
Авторское право на схему города: пара тонких вопросов...


2-1191334323
Sergl
2007-10-02 18:12
2007.10.28
Кнопка на форме в процессе выполнения программы


2-1191402557
Washington
2007-10-03 13:09
2007.10.28
Выбор принтера




   Наверх