forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Нормальная прозрачность, как? (http://forum.boolean.name/showthread.php?t=16904)

mauNgerS 14.06.2012 19:28

Нормальная прозрачность, как?
 
Вложений: 1
Доброго времени суток.

Во вложении мы видим три прямоугольника, которые пересекают друг друга.
Этот набор фигур сделан в максе, там же, средствами пипелайна, покрашен с альфой=50. Фигуры представляют собой отдельные енаблю полю
Далее экспортирован пипелайном и загружен в блице\ксорсе (они дают одинаковую картинку) командой LoadAnimMesh.
Во вложении пример.
Если покрутить камерой возникает туннельный эффект. Но ведь это не один меш.

Как, без лишних телодвижений, сделать чтобы прозрачность этой конструкции была нормальной?

Alex__Noc 14.06.2012 20:44

Ответ: Нормальная прозрачность, как?
 
Дак не проблема , юзай альфу повертекстную!

ABTOMAT 14.06.2012 21:32

Ответ: Нормальная прозрачность, как?
 
Что за дезинформация? И при повертексной будет баг.

В данном случае побороть довольно проблемно.
Тут нужна сортировка полигонов реалтаймовая. Была либа для этого, написал её Тормоз и МихаилВэ, ищи по имени sorttris. Там ещё примерчик был с деревцем, если он значит правильно нашёл.
Во-вторых при альфа-бленде не работает буфер глубины, а полигоны рисуются в блице по таким правилам:
1. Вначале рисуются сурфейсы те, что дальше от камеры. "Дальше - ближе" - считается по центру энтити. То есть может оказаться так (и у тебя в примере так и случается) что полигон одного ближе чем другого, но центры их расположены наоборот. И поэтому некорректно они перекрываются.
2. Внутри сурфейса полигоны рисуются в том порядке, в каком они внутри буфера находятся.
3. (не про данную ситуацию) Пересекающиеся альфованные полигоны иметь ой как нехорошо. Так как не работает буфер глубины, то рендероится либо один сверху, другой снизу либо наоборот, а нормального пересечения у них в жизни не отрендеришь. Поэтому надо от такого избавляться либо если сильно надо, в таких местах резать сетку вручную.

С п.2 поможет справиться либа sorttris. Но тогда надо объединить всё в 1 сурфейс, а иначе алгоритм из п.1 только мешает. П.3 тебе не грозит, привёл просто для полноты данных.

Alex__Noc 14.06.2012 21:55

Ответ: Нормальная прозрачность, как?
 
Диман , я сталкивался с этой проблемой когда домик делал в котором все менять можно и заметь когда исчезают этажи (как раз таки бленд 32 юзаю) бага нет!
Да и кто мешает собстна попробовать то :)

ABTOMAT 14.06.2012 21:58

Ответ: Нормальная прозрачность, как?
 
Мешает RTFM, если только совсем не лень.

Mr_F_ 14.06.2012 22:22

Ответ: Нормальная прозрачность, как?
 
Цитата:

sorttris
вот это интересно.
если авторы/догадывающиеся тут - там просто перепрошивка индексного буфера каждый кадр? сравниваются дистанции каждого треугольника брутфорсно? или какой-то оптимизированный трюк?

ABTOMAT 14.06.2012 22:44

Ответ: Нормальная прозрачность, как?
 
Вложений: 1
Собственно в закромах Родины нашёл саму либу.

Черный крыс 14.06.2012 23:59

Ответ: Нормальная прозрачность, как?
 
либа от Михаила, и вродь пример там был с кустиком.

mauNgerS 15.06.2012 10:29

Ответ: Нормальная прозрачность, как?
 
как писал в первом посте при загрузке в ксорс пример работает точно также.
Но насколько я знаю проблемы с сортировкой только в DX7.

Почему же в ксорсе также.
В данном примере не один меш. Это три разных объекта загруженные аниммешем. На каждом свой браш.

Когда проблемы с сортировкой возникают если на поле с синглсюрфейс травой, там всё понятно, как раз эта либа и спасает, но здесь она не поможет ведь даже если объеденить в один меш, сюрфейсов всёравно 3.

ARA 15.06.2012 10:41

Ответ: Нормальная прозрачность, как?
 
Цитата:

сюрфейсов всёравно 3.
Объединить 3 текстурки в однин атлас? Будет один сюрфейс.

mauNgerS 15.06.2012 11:27

Ответ: Нормальная прозрачность, как?
 
Вложений: 1
Сделал один меш и один сюрфейс (атлас).

Теперь сортирует, но ровного пересечения всё равно не видно. Но это уже не так важно.
Важно другое - можно ли отсортировать именно отдельные меши?
Или один меш с разными сюрфейсами?

В общем как побороть первый пункт в посте АВТОМАТа?

ABTOMAT 15.06.2012 12:58

Ответ: Нормальная прозрачность, как?
 
Вложений: 1
Цитата:

Сообщение от mauNgerS (Сообщение 230401)
Но насколько я знаю проблемы с сортировкой только в DX7.
...
Важно другое - можно ли отсортировать именно отдельные меши?
Или один меш с разными сюрфейсами?


Проблемы с сортировкой - они везде. Это баг самого принципа построения изображения треугольниками.
Нельзя.
Нельзя.

Если у тебя меши пересекаются, то надо по пересечению руками отрезать полигоны.
Ещё раз перечитай пункт 3, теперь он уже про данную ситуацию. Треугольник с альфой либо один поверх другого либо другой поверх первого. Самостоятельно отрендериться их пересечение не может.

Alex__Noc 20.06.2012 13:26

Ответ: Нормальная прозрачность, как?
 
Иногда можешь вырулить альфу за счет ордера в рендере (юзать для менюшек с прозрачностью), для обьектов юзаешь маску, для плавной альфы маску с полупрозрачной заливкой

Черный крыс 20.06.2012 22:55

Ответ: Нормальная прозрачность, как?
 
Цитата:

Сообщение от Alex__Noc (Сообщение 230815)
для плавной альфы маску с полупрозрачной заливкой

А вот отсюда поподробнее....

Alex__Noc 22.06.2012 15:19

Ответ: Нормальная прозрачность, как?
 
вот так


Часовой пояс GMT +4, время: 09:43.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot