SSAO
|
Страница в процессе перевода. |
GLMakie также реализует преграждение окружающего света в экранном пространстве (screen-space ambient occlusion), который представляет собой алгоритм для более точного моделирования рассеяния света. Доступно несколько управляемых атрибутов сцены, вложенных в атрибут второго уровня SSAO.
-
radiusзадает диапазон SSAO. Вы можете увеличивать или уменьшать его масштаб в зависимости от ограничений вашей системы координат. -
biasзадает минимальную разницу в глубине, необходимую для преграждения пикселя. Увеличение значения, как правило, усиливает эффект преграждения. -
blurзадает (пиксельный) диапазон размытия, применяемого к текстуре преграждения. Текстура содержит (произвольный) шаблон, который размывается. Малые значенияblurдают более быстрый, четкий и структурированный результат. Большие значенияblurприводят к более медленному и плавному результату. Как правило,blur = 2является хорошим компромиссом.
|
Note Постпроцессор SSAO по умолчанию отключен для экономии ресурсов. Чтобы его включить, задайте |
Пример
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
# julia:disable-ssao # здесь не работает GLMakie.activate!(ssao=false) # hide GLMakie.closeall() # hide