SSAO
|
该页面正在翻译中。 |
GLMakie也实现https://learnopengl.com/Advanced-Lighting/SSAO[screen-space ambient occlusion],这是一种更精确地模拟光的散射的算法。 有几个可控的场景属性嵌套在 SSAO 顶级属性:
-
半径设置SSAO的范围。 您可能需要根据坐标系的限制向上或向下缩放 -
偏见设置要遮挡的像素所需的最小深度差。 增加这一点通常会使遮挡效果更强。 -
模糊设置应用于遮挡纹理的模糊(像素)范围。 纹理包含一个(随机)图案,通过模糊将其冲掉。 小模糊会更快,更清晰,更有图案。 大模糊会更慢更流畅。 通常情况下模糊=2是一个很好的妥协。
|
注意默认情况下SSAO后处理器处于关闭状态以节省资源。 要打开它,设置 |
例子:
using GLMakie
GLMakie.activate!(ssao=true)
GLMakie.closeall() # close any open screen
fig = Figure()
ssao = Makie.SSAO(radius = 5.0, blur = 3)
ax = LScene(fig[1, 1], scenekw = (ssao=ssao,))
# SSAO attributes are per scene
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 # not working here GLMakie.activate!(ssao=false) # hide GLMakie.closeall() # hide