30.03.2010, 18:46
IDoL,Вторник, 30 Марта 2010, 16:17 Написал:Почему вопрос о видимоости всех веток в любой момент времени не стоит ставить я не понимаю - они ведь должны быть видны. Они видны и в EI и в ModelViewerНу я наверное не так выразился. Я имел ввиду, что не стОит пытаться сортировать полигоны для того, чтобы были видны ветки. В том же ModelView все видно и без всяких сортировок. Где-то что-то в CE не учтено. Что именно - не знаю, ибо в код такой мне страшно заглядывать, о чем я уже писал выше.
IDoL,Вторник, 30 Марта 2010, 16:17 Написал:первый проход без записи в z - рисуются все вети. получаются наложения, но видно каждый пиксел текстуры каждого треугольника.Ну, это будет работать только в том случае, если рисовать каждый отдельный ОБЪЕКТ сразу по 2 раза. И то это будет работать только и исключительно для этого объекта. Это костыль мегаужасный.
второй проход - рисуется поверх - рисуется только та ветвь, что ближе всего к камере, а через прозрачные участки видно пикселы отрисованые в 1м проходе.
IDoL,Вторник, 30 Марта 2010, 17:12 Написал:Перечитал еще раз - как находятся пикселы у которых альфа ниже пороговой?В D3D задается помимо флага D3DRS_ALPHATESTENABLE еще и такие параметры как D3DRS_ALPHAREF и D3DRS_ALPHAFUNC. В качестве функции можно задать всякие "больше", "меньше", "больше или равно", "равно" и т.д. Сравниваться значение альфы рисуемого объекта будет соответственно с тем значением, которое задано в качестве ALPHAREF. Если задать ALPHAREF = 0x3F и ALPHAFUNC = D3DCMP_GREATEREQUAL, то все пикселы растеризуемого объекта, у которых альфа-компонента результирующего цвета будет меньше 63 просто не будут в результате растеризованы (т.е. отрисованы). Т.е. показываться на экране будут только те пикселы, у которых альфа больше или равна 63 (это в диапазоне [0;255]).
IDoL,Вторник, 30 Марта 2010, 17:12 Написал:И куда они отбрасываются - их значение не записывается в Z-буфер?Z-buffer в общем-то тут вообще не при чем, однако в целом ответ на поставленный вопрос - да. И еще добавлю, что значение этих пикселов не будет записано не только в Z-Buffer, но и в Color-Buffer. Как будто и не было пиксела вовсе.
Добавил: ALtair [mergetime]1269960393[/mergetime]
И да, есть подозрение, что в CE тупо не включен альфа-тест
Duty is everything, the greatest of joys, the deepest of sorrows.