packages: ludic.ui's render3d backend threads Render3dState; render3d's settable vars (r3d_dem_path, post_*, grass_*, wt_wade_*, ...) are Render3dState's fields again, not lets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
ce80e64b24
commit
3a87d02696
15 changed files with 152 additions and 148 deletions
|
|
@ -14,8 +14,6 @@ const CD_LEAVES: int = 256 # leaf patches per side (8192 / 32)
|
|||
# The far tier compiled on its own (FAR_ONLY). A patch that lies entirely beyond the
|
||||
# near/far split is drawn with it: same pixels, a shader small enough to run wide.
|
||||
# 0 dry .. 1 soaked. The game sets it from the weather and lets it dry out.
|
||||
let ter_wet: float = 0.0
|
||||
let ter_dem_blur: float = 0.0 # gaussian texels applied to the survey (0 for lidar; ~3 for 30 m data)
|
||||
function terrain_set_carpet(render3d_st: mut Render3dState, tex: int) -> void { render3d_st.ter_carpet = tex }
|
||||
# Carve a lake bed below `level` inside the ellipse (cx, cz) ± (ex, ez); call before r3d_init.
|
||||
function terrain_lake(render3d_st: mut Render3dState, level: float, cx: float, cz: float, ex: float, ez: float) -> void {
|
||||
|
|
@ -191,7 +189,7 @@ function terrain_generate(render3d_st: mut Render3dState) -> void {
|
|||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_sea_level"), ter_sea_gen(render3d_st))
|
||||
u_f4(render3d_st, gpu_uniform(render3d_st, p, "u_isle"), render3d_st.ter_isle_cx, render3d_st.ter_isle_cz, render3d_st.ter_isle_r, render3d_st.ter_isle_fall)
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_isle_mode"), float(render3d_st.ter_isle_mode))
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_dem_blur"), float(ter_dem_blur))
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_dem_blur"), float(render3d_st.ter_dem_blur))
|
||||
}
|
||||
mesh_draw(render3d_st, render3d_st.sky_fullscreen)
|
||||
# second pass: R = height, GBA = the smooth surface normal, baked once (ternormal.frag)
|
||||
|
|
@ -423,7 +421,7 @@ function terrain_bind_prog(render3d_st: mut Render3dState, p: int) -> void {
|
|||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_half"), float(render3d_st.TERRAIN_HALF))
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_texel"), 1.0 / float(TERRAIN_RES))
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_snow_line"), render3d_st.ter_snow_line)
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_wet"), ter_wet)
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_wet"), render3d_st.ter_wet)
|
||||
var lake = -100000.0
|
||||
if render3d_st.ter_lake_ex != 0.0 { lake = render3d_st.ter_lake_level }
|
||||
u_f(render3d_st, gpu_uniform(render3d_st, p, "u_lake_level"), lake)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue