forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Эффекты/Шейдеры (http://forum.boolean.name/forumdisplay.php?f=170)
-   -   Проваливание текстуры под другую (http://forum.boolean.name/showthread.php?t=20847)

ABTOMAT 29.09.2020 01:23

Ответ: Проваливание текстуры под другую
 
Цитата:

Сообщение от Arton (Сообщение 317643)
Там где тебе не нужна плавная прозрачность, можно обойтись обрезкой «по маске».
Всегда так делаю.
Это есть в любых движках.

Кристал уже писал, что его это не устраивает.
Алсо этот баг есть во всех движках, и в Блице тоже был.
Он находится в самом принципе работы видеокарты.
Простых решений нет, к сожалению.

Единственное, что толкового со времён Блица изобрели на эту тему — это Alpha To Coverage. При полноэкранном сглаживании и включённой этой фичей субпиксели сглаживания заполняются в соответствии с альфой.

То есть как будто у тебя разрешение увеличено так, что 1 пиксель растянут в 4. Если альфа 25% то закрашивается 1 пиксель из 4, если 50% то 2, если 75% то 3 и если альфа 100% то все 4 пикселя. А потом сжимают и получается "как бы альфа" из 4 градаций.

Полноценную альфу в несколько слоёв, понятное дело, так не сделать, но от лесенок по краям избавляет вполне. Возможно, можно подумать об использовании этой фичи, в Юнитях она есть.

Crystal 29.09.2020 05:43

Ответ: Проваливание текстуры под другую
 
Цитата:

Сообщение от ABTOMAT (Сообщение 317644)
Кристал уже писал, что его это не устраивает.
Алсо этот баг есть во всех движках, и в Блице тоже был.
Он находится в самом принципе работы видеокарты.
Простых решений нет, к сожалению.

Единственное, что толкового со времён Блица изобрели на эту тему — это Alpha To Coverage. При полноэкранном сглаживании и включённой этой фичей субпиксели сглаживания заполняются в соответствии с альфой.

То есть как будто у тебя разрешение увеличено так, что 1 пиксель растянут в 4. Если альфа 25% то закрашивается 1 пиксель из 4, если 50% то 2, если 75% то 3 и если альфа 100% то все 4 пикселя. А потом сжимают и получается "как бы альфа" из 4 градаций.

Полноценную альфу в несколько слоёв, понятное дело, так не сделать, но от лесенок по краям избавляет вполне. Возможно, можно подумать об использовании этой фичи, в Юнитях она есть.

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



Ну, в данный момент меня всё устраивает.

Кстати, подозреваю, что в HoMM7 каждая ячейка отдельный квад с альфой,
текстура на котором подменяется в нужный момент, а не как у меня строится
меш въезжающий в плейн с альфадырками.

Evgen 08.10.2020 13:28

Ответ: Проваливание текстуры под другую
 


По моему эта проблема называется Z-fighting. Дело в том, что Z-буфер если, он имеет малое разрешение, то рендер на определенных расстояниях уже не понимает что рисовать поверх чего и идет смешивание.

В Unity в шейдерах используется параметр Offset для устранения этой траблы. https://docs.unity3d.com/Manual/SL-CullAndDepth.html

pax 08.10.2020 19:52

Ответ: Проваливание текстуры под другую
 
Цитата:

Сообщение от Evgen (Сообщение 317697)


По моему эта проблема называется Z-fighting. Дело в том, что Z-буфер если, он имеет малое разрешение, то рендер на определенных расстояниях уже не понимает что рисовать поверх чего и идет смешивание.

В Unity в шейдерах используется параметр Offset для устранения этой траблы. https://docs.unity3d.com/Manual/SL-CullAndDepth.html

На приведенной картинке да, Z-файтинг. У Кристала проблема с неправильной сортировкой прозрачности была.

Evgen 08.10.2020 21:44

Ответ: Проваливание текстуры под другую
 
Цитата:

Сообщение от pax (Сообщение 317701)
На приведенной картинке да, Z-файтинг. У Кристала проблема с неправильной сортировкой прозрачности была.

Ну ладно, пусть будет для общего развития.


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

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