Форум: "Игры";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
ВнизПрозрачность и текстура Найти похожие ветки
← →
Зм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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c