feat(render3d): the grass knows a body is standing in it
You walked through a meadow and every blade ignored you, which is the most noticeable thing missing from every step the game asks you to take. u_push (x, z, radius) bends blades away from a body and DOWN - a trodden stem is shorter as well as leaning, and leaving the height alone made them splay outward like a fan instead of being walked through. Applied after the blade's own yaw has put it into world axes and before it is tipped onto the ground normal, so the push is a world direction rather than something in the blade's private frame. Radius 0 means nobody is there, so nothing is paid for when it does not apply. Measured: GL 6.9 s, VK 7.3 s over 400 frames, unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
9dff8f21bd
commit
6169cd05b9
5 changed files with 45 additions and 17 deletions
|
|
@ -798,7 +798,7 @@ T d48d6a48 u_shadow 9
|
|||
T d48d6a48 u_tershadow 10
|
||||
T d48d6a48 u_ts_height 11
|
||||
P 7ed7de52 grass.vert model.frag #define FOLIAGE;#define BLADE;
|
||||
B 7ed7de52 vert 0 296
|
||||
B 7ed7de52 vert 0 320
|
||||
U 7ed7de52 vert u_view 0 mat4 1 0
|
||||
U 7ed7de52 vert u_proj 64 mat4 1 0
|
||||
U 7ed7de52 vert u_vp 128 mat4 1 0
|
||||
|
|
@ -812,13 +812,14 @@ U 7ed7de52 vert u_sea_level 228 float 1 0
|
|||
U 7ed7de52 vert u_lake 240 vec4 1 0
|
||||
U 7ed7de52 vert u_snow_line 256 float 1 0
|
||||
U 7ed7de52 vert u_wind 260 float 1 0
|
||||
U 7ed7de52 vert u_tile 264 vec2 1 0
|
||||
U 7ed7de52 vert u_tile_cells 272 int 1 0
|
||||
U 7ed7de52 vert u_per_cell 276 int 1 0
|
||||
U 7ed7de52 vert u_s0 280 float 1 0
|
||||
U 7ed7de52 vert u_d0 284 float 1 0
|
||||
U 7ed7de52 vert u_radius 288 float 1 0
|
||||
U 7ed7de52 vert u_dbg 292 int 1 0
|
||||
U 7ed7de52 vert u_push 272 vec3 1 0
|
||||
U 7ed7de52 vert u_tile 288 vec2 1 0
|
||||
U 7ed7de52 vert u_tile_cells 296 int 1 0
|
||||
U 7ed7de52 vert u_per_cell 300 int 1 0
|
||||
U 7ed7de52 vert u_s0 304 float 1 0
|
||||
U 7ed7de52 vert u_d0 308 float 1 0
|
||||
U 7ed7de52 vert u_radius 312 float 1 0
|
||||
U 7ed7de52 vert u_dbg 316 int 1 0
|
||||
I 7ed7de52 a_pos 0 vec3
|
||||
I 7ed7de52 a_uv 2 vec2
|
||||
B 7ed7de52 frag 1 956
|
||||
|
|
@ -874,7 +875,7 @@ T 7ed7de52 u_shadow 9
|
|||
T 7ed7de52 u_tershadow 10
|
||||
T 7ed7de52 u_ts_height 11
|
||||
P 7f096322 grass.vert model.frag #define FOLIAGE;#define BLADE;#define TILES;
|
||||
B 7f096322 vert 0 4400
|
||||
B 7f096322 vert 0 4416
|
||||
U 7f096322 vert u_view 0 mat4 1 0
|
||||
U 7f096322 vert u_proj 64 mat4 1 0
|
||||
U 7f096322 vert u_vp 128 mat4 1 0
|
||||
|
|
@ -888,14 +889,15 @@ U 7f096322 vert u_sea_level 228 float 1 0
|
|||
U 7f096322 vert u_lake 240 vec4 1 0
|
||||
U 7f096322 vert u_snow_line 256 float 1 0
|
||||
U 7f096322 vert u_wind 260 float 1 0
|
||||
U 7f096322 vert u_tile 264 vec2 1 0
|
||||
U 7f096322 vert u_tile_cells 272 int 1 0
|
||||
U 7f096322 vert u_per_cell 276 int 1 0
|
||||
U 7f096322 vert u_tiles 288 vec4 256 16
|
||||
U 7f096322 vert u_s0 4384 float 1 0
|
||||
U 7f096322 vert u_d0 4388 float 1 0
|
||||
U 7f096322 vert u_radius 4392 float 1 0
|
||||
U 7f096322 vert u_dbg 4396 int 1 0
|
||||
U 7f096322 vert u_push 272 vec3 1 0
|
||||
U 7f096322 vert u_tile 288 vec2 1 0
|
||||
U 7f096322 vert u_tile_cells 296 int 1 0
|
||||
U 7f096322 vert u_per_cell 300 int 1 0
|
||||
U 7f096322 vert u_tiles 304 vec4 256 16
|
||||
U 7f096322 vert u_s0 4400 float 1 0
|
||||
U 7f096322 vert u_d0 4404 float 1 0
|
||||
U 7f096322 vert u_radius 4408 float 1 0
|
||||
U 7f096322 vert u_dbg 4412 int 1 0
|
||||
I 7f096322 a_pos 0 vec3
|
||||
I 7f096322 a_uv 2 vec2
|
||||
B 7f096322 frag 1 956
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue