Документация Engee

SSAO

Страница в процессе перевода.

GLMakie также реализует преграждение окружающего света в экранном пространстве (screen-space ambient occlusion), который представляет собой алгоритм для более точного моделирования рассеяния света. Доступно несколько управляемых атрибутов сцены, вложенных в атрибут второго уровня SSAO.

  • radius задает диапазон SSAO. Вы можете увеличивать или уменьшать его масштаб в зависимости от ограничений вашей системы координат.

  • bias задает минимальную разницу в глубине, необходимую для преграждения пикселя. Увеличение значения, как правило, усиливает эффект преграждения.

  • blur задает (пиксельный) диапазон размытия, применяемого к текстуре преграждения. Текстура содержит (произвольный) шаблон, который размывается. Малые значения blur дают более быстрый, четкий и структурированный результат. Большие значения blur приводят к более медленному и плавному результату. Как правило, blur = 2 является хорошим компромиссом.

Note Постпроцессор SSAO по умолчанию отключен для экономии ресурсов. Чтобы его включить, задайте GLMakie.activate!(ssao=true), закройте любое существующее окно GLMakie и откройте его снова.

Пример

using GLMakie
GLMakie.activate!(ssao=true)
GLMakie.closeall() # закрыть и открыть экран

fig = Figure()
ssao = Makie.SSAO(radius = 5.0, blur = 3)
ax = LScene(fig[1, 1], scenekw = (ssao=ssao,))
# Атрибуты SSAO указываются для каждой сцены
ax.scene.ssao.bias[] = 0.025

box = Rect3(Point3f(-0.5), Vec3f(1))
positions = [Point3f(x, y, rand()) for x in -5:5 for y in -5:5]
meshscatter!(ax, positions, marker=box, markersize=1, color=:lightblue, ssao=true)
fig
3fa416f
# julia:disable-ssao # здесь не работает
GLMakie.activate!(ssao=false) # hide
GLMakie.closeall() # hide