Войти
ПрограммированиеФорумГрафика

Улучшить отображение плоских поверхностей (2 стр)

Страницы: 1 2 3 Следующая »
#15
20:02, 3 июня 2021

RmzVoid
> я вот отсталый немного в этих технологиях. Какие АО нынче существуют?
SSAO, GTAO, HBAO, VXAO и т.п., и в конце концов можно запекать АО прямо в сами модели (но подозреваю это не твой случай)


#16
20:08, 3 июня 2021

MrShoor
спасибо, почитаем, выберем нужное

#17
(Правка: 5:23) 5:22, 4 июня 2021

я бы выбрал именно вариант с запеканием AO, если это вообще возможно (читай: геометрию не надо модифицировать), потому что это однозначно даст AO самого высокого качества дешевле любого другого варианта.

#18
9:51, 4 июня 2021

Suslik
Это типа CAD, тут запекать не вариант, часто надо будет пересчитывать

#19
10:50, 4 июня 2021

рейтресинг)

#20
10:57, 4 июня 2021

Suslik
Это скорее всего какая-то кад-фигня. Типа компас 3д. Это нужно вращать, масштабировать и прочее.

#21
11:06, 4 июня 2021

Multiview ao должно зайти - рилтайм и меньше проблем со скринспэйсовой природой эффекта.

#22
11:25, 4 июня 2021

lookid
> Это скорее всего какая-то кад-фигня. Типа компас 3д. Это нужно вращать,
> масштабировать и прочее.
ну так масштабируй и вращай, кто тебе запрещает-то?

Battle Angel Alita
> Multiview ao должно зайти - рилтайм и меньше проблем со скринспэйсовой природой эффекта.
у АО нету никакой скринспейсовой "природы". просто никто не знает, как ещё его в рилтайме посчитать. и первая самая ужасная реализация от крайтеков называлась SSAO (которая, кстати, даже не аппроксимирует нормальный AO), поэтому некоторые начали думать, что AO==SSAO

#23
11:36, 4 июня 2021

RmzVoid

Самое простое это сверху рисовать wire модели, с вкюченным тестом глубины. Как будто-бы это микроскосы на стыках граней. Чтобы не файтилось, надо что-то там подстроить. Цвет каждой линии можно вычислять, как освещение плоскости "скоса" )

#24
13:07, 4 июня 2021

SereG
а есть пример наглядный?

#25
(Правка: 15:31) 14:45, 5 июня 2021

SereG
> Самое простое это сверху рисовать wire модели, с вкюченным тестом глубины.
Можно проще, края треугольника считать через координаты в шейдере. Центральные линии, по идеи, будут сливаться. Только дополнительный слой нормалей придется заранее посчитать, одну на грань, или брать среднюю от образующих вершин без интерполяции. Это головняк.
RmzVoid
Тут какие-то такие грани считаются, но только чтобы на них посмотреть.
В основном решается через геометрический шейдер, но я бы попробовал вынести параметры в отдельный слой.

С таким же успехом можно в саму модель эти скосы добавить. И каждую потом напильником дорабатывать. Но под определенным углом они так же могут быть не видны, и проблема вернется, поэтому лучше wireframe модель посчитать.

В каждой вершине треугольника нужно установить vec3(0,0,1) vec3(0,1,0) vec3(1,0,0), то ноля до одного, в какой либо из осей, даст расстояние от грани. Если это выносить в отдельный слой модели, то вершины могут совпасть, то есть в одном треугольнике получиться две vec3(1,0,0), или другие, тут на выручку придет доп координата. vec4(1,0,0,0), vec4(1,0,0,1). Но если у тебя каждый треугольник имеет уникальные не совпадающие вершины, то такого не будет.
В общем надо проверять.

#26
(Правка: 13:11) 13:10, 7 июня 2021

Можно сделать простенький аутлайн в таком духе. Как минимум углы выделит.

+ Показать

Но он работает как постэффект и требует буфер глубины и буфер нормалей.

#27
(Правка: 16:34) 16:34, 7 июня 2021

RmzVoid
> Это типа CAD, тут запекать не вариант, часто надо будет пересчитывать
Не обязательно же запекать сразу в максимальном качестве в виде 4к текстур. Можно считать АО по вершинам, по аналогии с HBAO, только в ворлд-спейсе и по прилегающим треугольникам.

#28
13:26, 2 июля 2021

marggob
Стык граней в pixel shader если Z выводимого пиксела = Z в буффере и нормали отличаются ?

#29
17:05, 3 июля 2021

Aslan
Сравнения глубины там вообще нет. Буфер глубины используется, что бы получить позиции пикселей. Имея позиции пикселей получаем вектора от исходного пикселя к соседним и  дальше сравниваются нормаль пикселя с векторами в направлении 4 или 8 соседних пикселей. Это если грубо описывать процедуру. По факту чутка сложнее.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика