diff --git a/packages/ludic.render3d/shaders/spv/01089da8.frag.spv b/packages/ludic.render3d/shaders/spv/01089da8.frag.spv index 0074535c..7f9bc3e7 100644 Binary files a/packages/ludic.render3d/shaders/spv/01089da8.frag.spv and b/packages/ludic.render3d/shaders/spv/01089da8.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/01089da8.vert.spv b/packages/ludic.render3d/shaders/spv/01089da8.vert.spv index 3dc8c5c6..1eb507dd 100644 Binary files a/packages/ludic.render3d/shaders/spv/01089da8.vert.spv and b/packages/ludic.render3d/shaders/spv/01089da8.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/1b654972.frag.spv b/packages/ludic.render3d/shaders/spv/1b654972.frag.spv index 70b6b282..2c38afa0 100644 Binary files a/packages/ludic.render3d/shaders/spv/1b654972.frag.spv and b/packages/ludic.render3d/shaders/spv/1b654972.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/1ce5c5d1.frag.spv b/packages/ludic.render3d/shaders/spv/1ce5c5d1.frag.spv index 8eb93cd9..10702003 100644 Binary files a/packages/ludic.render3d/shaders/spv/1ce5c5d1.frag.spv and b/packages/ludic.render3d/shaders/spv/1ce5c5d1.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv b/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv index da1cf6e2..e94e4494 100644 Binary files a/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv and b/packages/ludic.render3d/shaders/spv/1ce5c5d1.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/1f95f31b.frag.spv b/packages/ludic.render3d/shaders/spv/1f95f31b.frag.spv index 748e5278..d8fef303 100644 Binary files a/packages/ludic.render3d/shaders/spv/1f95f31b.frag.spv and b/packages/ludic.render3d/shaders/spv/1f95f31b.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/1fde9cd2.frag.spv b/packages/ludic.render3d/shaders/spv/1fde9cd2.frag.spv index 0074535c..0d68f3a8 100644 Binary files a/packages/ludic.render3d/shaders/spv/1fde9cd2.frag.spv and b/packages/ludic.render3d/shaders/spv/1fde9cd2.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/254e7887.frag.spv b/packages/ludic.render3d/shaders/spv/254e7887.frag.spv index faeaf2f1..c643d1de 100644 Binary files a/packages/ludic.render3d/shaders/spv/254e7887.frag.spv and b/packages/ludic.render3d/shaders/spv/254e7887.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/254e7887.vert.spv b/packages/ludic.render3d/shaders/spv/254e7887.vert.spv index 3f761b55..f6aba894 100644 Binary files a/packages/ludic.render3d/shaders/spv/254e7887.vert.spv and b/packages/ludic.render3d/shaders/spv/254e7887.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/2e2908c8.frag.spv b/packages/ludic.render3d/shaders/spv/2e2908c8.frag.spv index 5ffa9a1f..2a3f5b41 100644 Binary files a/packages/ludic.render3d/shaders/spv/2e2908c8.frag.spv and b/packages/ludic.render3d/shaders/spv/2e2908c8.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/2ee6d2e3.frag.spv b/packages/ludic.render3d/shaders/spv/2ee6d2e3.frag.spv index 93fab397..cc5a2e8e 100644 Binary files a/packages/ludic.render3d/shaders/spv/2ee6d2e3.frag.spv and b/packages/ludic.render3d/shaders/spv/2ee6d2e3.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/3733fc38.frag.spv b/packages/ludic.render3d/shaders/spv/3733fc38.frag.spv index 457bfd2f..dcfea6c7 100644 Binary files a/packages/ludic.render3d/shaders/spv/3733fc38.frag.spv and b/packages/ludic.render3d/shaders/spv/3733fc38.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/3b183d8f.frag.spv b/packages/ludic.render3d/shaders/spv/3b183d8f.frag.spv index ee799055..3df5cbf5 100644 Binary files a/packages/ludic.render3d/shaders/spv/3b183d8f.frag.spv and b/packages/ludic.render3d/shaders/spv/3b183d8f.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv b/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv index da1cf6e2..e94e4494 100644 Binary files a/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv and b/packages/ludic.render3d/shaders/spv/3b183d8f.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/3e4b62f9.frag.spv b/packages/ludic.render3d/shaders/spv/3e4b62f9.frag.spv index 3fa1ff79..2c2d8b01 100644 Binary files a/packages/ludic.render3d/shaders/spv/3e4b62f9.frag.spv and b/packages/ludic.render3d/shaders/spv/3e4b62f9.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/428caa3a.frag.spv b/packages/ludic.render3d/shaders/spv/428caa3a.frag.spv index 7c9bb163..f2fe59df 100644 Binary files a/packages/ludic.render3d/shaders/spv/428caa3a.frag.spv and b/packages/ludic.render3d/shaders/spv/428caa3a.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/439a2253.frag.spv b/packages/ludic.render3d/shaders/spv/439a2253.frag.spv index ef916f97..6be6a7eb 100644 Binary files a/packages/ludic.render3d/shaders/spv/439a2253.frag.spv and b/packages/ludic.render3d/shaders/spv/439a2253.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/439a2253.vert.spv b/packages/ludic.render3d/shaders/spv/439a2253.vert.spv index 8d5749a2..bac4fd7d 100644 Binary files a/packages/ludic.render3d/shaders/spv/439a2253.vert.spv and b/packages/ludic.render3d/shaders/spv/439a2253.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/46e2325c.frag.spv b/packages/ludic.render3d/shaders/spv/46e2325c.frag.spv index 8d3cf0ca..410c2c6c 100644 Binary files a/packages/ludic.render3d/shaders/spv/46e2325c.frag.spv and b/packages/ludic.render3d/shaders/spv/46e2325c.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4a8e9f28.frag.spv b/packages/ludic.render3d/shaders/spv/4a8e9f28.frag.spv index f133b21f..67954350 100644 Binary files a/packages/ludic.render3d/shaders/spv/4a8e9f28.frag.spv and b/packages/ludic.render3d/shaders/spv/4a8e9f28.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4be7acd9.frag.spv b/packages/ludic.render3d/shaders/spv/4be7acd9.frag.spv index 697bdac8..d9bdc5e5 100644 Binary files a/packages/ludic.render3d/shaders/spv/4be7acd9.frag.spv and b/packages/ludic.render3d/shaders/spv/4be7acd9.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4cf96468.frag.spv b/packages/ludic.render3d/shaders/spv/4cf96468.frag.spv index 75d1484c..2ce768a2 100644 Binary files a/packages/ludic.render3d/shaders/spv/4cf96468.frag.spv and b/packages/ludic.render3d/shaders/spv/4cf96468.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4d4fa91b.frag.spv b/packages/ludic.render3d/shaders/spv/4d4fa91b.frag.spv index 0448c0c9..5abef2db 100644 Binary files a/packages/ludic.render3d/shaders/spv/4d4fa91b.frag.spv and b/packages/ludic.render3d/shaders/spv/4d4fa91b.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4dda406a.frag.spv b/packages/ludic.render3d/shaders/spv/4dda406a.frag.spv index 53f0f571..3f473cc5 100644 Binary files a/packages/ludic.render3d/shaders/spv/4dda406a.frag.spv and b/packages/ludic.render3d/shaders/spv/4dda406a.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv b/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv index da1cf6e2..e94e4494 100644 Binary files a/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv and b/packages/ludic.render3d/shaders/spv/4dda406a.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/512004a1.frag.spv b/packages/ludic.render3d/shaders/spv/512004a1.frag.spv index 11860be7..2cb448cd 100644 Binary files a/packages/ludic.render3d/shaders/spv/512004a1.frag.spv and b/packages/ludic.render3d/shaders/spv/512004a1.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/512004a1.vert.spv b/packages/ludic.render3d/shaders/spv/512004a1.vert.spv index 6e564c50..fb38e87f 100644 Binary files a/packages/ludic.render3d/shaders/spv/512004a1.vert.spv and b/packages/ludic.render3d/shaders/spv/512004a1.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/5161e6ba.frag.spv b/packages/ludic.render3d/shaders/spv/5161e6ba.frag.spv index 635d97a0..f713e646 100644 Binary files a/packages/ludic.render3d/shaders/spv/5161e6ba.frag.spv and b/packages/ludic.render3d/shaders/spv/5161e6ba.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/5e4589a1.frag.spv b/packages/ludic.render3d/shaders/spv/5e4589a1.frag.spv index e164e783..af676aef 100644 Binary files a/packages/ludic.render3d/shaders/spv/5e4589a1.frag.spv and b/packages/ludic.render3d/shaders/spv/5e4589a1.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/638623c2.frag.spv b/packages/ludic.render3d/shaders/spv/638623c2.frag.spv index a308b8ab..ea75996c 100644 Binary files a/packages/ludic.render3d/shaders/spv/638623c2.frag.spv and b/packages/ludic.render3d/shaders/spv/638623c2.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/676965ab.frag.spv b/packages/ludic.render3d/shaders/spv/676965ab.frag.spv index 7bbe8af9..5141650f 100644 Binary files a/packages/ludic.render3d/shaders/spv/676965ab.frag.spv and b/packages/ludic.render3d/shaders/spv/676965ab.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/725523d9.frag.spv b/packages/ludic.render3d/shaders/spv/725523d9.frag.spv index 4e9782ed..618d837b 100644 Binary files a/packages/ludic.render3d/shaders/spv/725523d9.frag.spv and b/packages/ludic.render3d/shaders/spv/725523d9.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/74258189.frag.spv b/packages/ludic.render3d/shaders/spv/74258189.frag.spv index 4bd42092..ce60e47d 100644 Binary files a/packages/ludic.render3d/shaders/spv/74258189.frag.spv and b/packages/ludic.render3d/shaders/spv/74258189.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/79b77ed9.frag.spv b/packages/ludic.render3d/shaders/spv/79b77ed9.frag.spv index 47fd18ac..94242e2e 100644 Binary files a/packages/ludic.render3d/shaders/spv/79b77ed9.frag.spv and b/packages/ludic.render3d/shaders/spv/79b77ed9.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv b/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv index ba4a574f..4e13f85d 100644 Binary files a/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv and b/packages/ludic.render3d/shaders/spv/79b77ed9.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/7ed7de52.frag.spv b/packages/ludic.render3d/shaders/spv/7ed7de52.frag.spv index 024db4bf..b54d682d 100644 Binary files a/packages/ludic.render3d/shaders/spv/7ed7de52.frag.spv and b/packages/ludic.render3d/shaders/spv/7ed7de52.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv b/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv index ef954c9a..5fd3b45c 100644 Binary files a/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv and b/packages/ludic.render3d/shaders/spv/7ed7de52.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/7f096322.frag.spv b/packages/ludic.render3d/shaders/spv/7f096322.frag.spv index 024db4bf..b54d682d 100644 Binary files a/packages/ludic.render3d/shaders/spv/7f096322.frag.spv and b/packages/ludic.render3d/shaders/spv/7f096322.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/7f096322.vert.spv b/packages/ludic.render3d/shaders/spv/7f096322.vert.spv index 58c3392b..eb02b0d0 100644 Binary files a/packages/ludic.render3d/shaders/spv/7f096322.vert.spv and b/packages/ludic.render3d/shaders/spv/7f096322.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/858f5089.frag.spv b/packages/ludic.render3d/shaders/spv/858f5089.frag.spv index d62b4a52..b24867f8 100644 Binary files a/packages/ludic.render3d/shaders/spv/858f5089.frag.spv and b/packages/ludic.render3d/shaders/spv/858f5089.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/86f427b0.frag.spv b/packages/ludic.render3d/shaders/spv/86f427b0.frag.spv index d8d614b0..d049b062 100644 Binary files a/packages/ludic.render3d/shaders/spv/86f427b0.frag.spv and b/packages/ludic.render3d/shaders/spv/86f427b0.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/86f427b0.vert.spv b/packages/ludic.render3d/shaders/spv/86f427b0.vert.spv index 86097da0..f47d419c 100644 Binary files a/packages/ludic.render3d/shaders/spv/86f427b0.vert.spv and b/packages/ludic.render3d/shaders/spv/86f427b0.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/9068df1c.frag.spv b/packages/ludic.render3d/shaders/spv/9068df1c.frag.spv index 0a0c0155..f6c08ef7 100644 Binary files a/packages/ludic.render3d/shaders/spv/9068df1c.frag.spv and b/packages/ludic.render3d/shaders/spv/9068df1c.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/9d3e2ddd.frag.spv b/packages/ludic.render3d/shaders/spv/9d3e2ddd.frag.spv index db22287a..d2761052 100644 Binary files a/packages/ludic.render3d/shaders/spv/9d3e2ddd.frag.spv and b/packages/ludic.render3d/shaders/spv/9d3e2ddd.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/9dce3246.frag.spv b/packages/ludic.render3d/shaders/spv/9dce3246.frag.spv index ef916f97..6be6a7eb 100644 Binary files a/packages/ludic.render3d/shaders/spv/9dce3246.frag.spv and b/packages/ludic.render3d/shaders/spv/9dce3246.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/9dce3246.vert.spv b/packages/ludic.render3d/shaders/spv/9dce3246.vert.spv index 86097da0..f47d419c 100644 Binary files a/packages/ludic.render3d/shaders/spv/9dce3246.vert.spv and b/packages/ludic.render3d/shaders/spv/9dce3246.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/a0f2dbac.frag.spv b/packages/ludic.render3d/shaders/spv/a0f2dbac.frag.spv index 20f97ef8..3a316009 100644 Binary files a/packages/ludic.render3d/shaders/spv/a0f2dbac.frag.spv and b/packages/ludic.render3d/shaders/spv/a0f2dbac.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/a45356c7.frag.spv b/packages/ludic.render3d/shaders/spv/a45356c7.frag.spv index cf743437..b3696e9c 100644 Binary files a/packages/ludic.render3d/shaders/spv/a45356c7.frag.spv and b/packages/ludic.render3d/shaders/spv/a45356c7.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/a4683767.frag.spv b/packages/ludic.render3d/shaders/spv/a4683767.frag.spv index 11b1203e..9b341f1c 100644 Binary files a/packages/ludic.render3d/shaders/spv/a4683767.frag.spv and b/packages/ludic.render3d/shaders/spv/a4683767.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/a5ad521e.frag.spv b/packages/ludic.render3d/shaders/spv/a5ad521e.frag.spv index 7b82bf06..ebab145a 100644 Binary files a/packages/ludic.render3d/shaders/spv/a5ad521e.frag.spv and b/packages/ludic.render3d/shaders/spv/a5ad521e.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/a64015f2.frag.spv b/packages/ludic.render3d/shaders/spv/a64015f2.frag.spv index e726965e..36e25a03 100644 Binary files a/packages/ludic.render3d/shaders/spv/a64015f2.frag.spv and b/packages/ludic.render3d/shaders/spv/a64015f2.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b4587cd4.frag.spv b/packages/ludic.render3d/shaders/spv/b4587cd4.frag.spv index edc13b26..99b01981 100644 Binary files a/packages/ludic.render3d/shaders/spv/b4587cd4.frag.spv and b/packages/ludic.render3d/shaders/spv/b4587cd4.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv b/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv index 7857c3cd..76a1253d 100644 Binary files a/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv and b/packages/ludic.render3d/shaders/spv/b4587cd4.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b79a1f4e.frag.spv b/packages/ludic.render3d/shaders/spv/b79a1f4e.frag.spv index 11860be7..2cb448cd 100644 Binary files a/packages/ludic.render3d/shaders/spv/b79a1f4e.frag.spv and b/packages/ludic.render3d/shaders/spv/b79a1f4e.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b964507f.frag.spv b/packages/ludic.render3d/shaders/spv/b964507f.frag.spv index e726965e..36e25a03 100644 Binary files a/packages/ludic.render3d/shaders/spv/b964507f.frag.spv and b/packages/ludic.render3d/shaders/spv/b964507f.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b964507f.vert.spv b/packages/ludic.render3d/shaders/spv/b964507f.vert.spv index 6e564c50..fb38e87f 100644 Binary files a/packages/ludic.render3d/shaders/spv/b964507f.vert.spv and b/packages/ludic.render3d/shaders/spv/b964507f.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b9fc2041.frag.spv b/packages/ludic.render3d/shaders/spv/b9fc2041.frag.spv index 0074535c..7f9bc3e7 100644 Binary files a/packages/ludic.render3d/shaders/spv/b9fc2041.frag.spv and b/packages/ludic.render3d/shaders/spv/b9fc2041.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv b/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv index da1cf6e2..e94e4494 100644 Binary files a/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv and b/packages/ludic.render3d/shaders/spv/b9fc2041.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/bf3151c8.frag.spv b/packages/ludic.render3d/shaders/spv/bf3151c8.frag.spv index e278bae2..19ee5f63 100644 Binary files a/packages/ludic.render3d/shaders/spv/bf3151c8.frag.spv and b/packages/ludic.render3d/shaders/spv/bf3151c8.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/bfa15301.frag.spv b/packages/ludic.render3d/shaders/spv/bfa15301.frag.spv index 89263571..8c0d3203 100644 Binary files a/packages/ludic.render3d/shaders/spv/bfa15301.frag.spv and b/packages/ludic.render3d/shaders/spv/bfa15301.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv b/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv index 0c25d0f0..03a7990b 100644 Binary files a/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv and b/packages/ludic.render3d/shaders/spv/bfa15301.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/c57b4f14.frag.spv b/packages/ludic.render3d/shaders/spv/c57b4f14.frag.spv index b85661ea..3de9a2ed 100644 Binary files a/packages/ludic.render3d/shaders/spv/c57b4f14.frag.spv and b/packages/ludic.render3d/shaders/spv/c57b4f14.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/d48d6a48.frag.spv b/packages/ludic.render3d/shaders/spv/d48d6a48.frag.spv index 024db4bf..b54d682d 100644 Binary files a/packages/ludic.render3d/shaders/spv/d48d6a48.frag.spv and b/packages/ludic.render3d/shaders/spv/d48d6a48.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/d48d6a48.vert.spv b/packages/ludic.render3d/shaders/spv/d48d6a48.vert.spv index 761909ea..7b7b8aa1 100644 Binary files a/packages/ludic.render3d/shaders/spv/d48d6a48.vert.spv and b/packages/ludic.render3d/shaders/spv/d48d6a48.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/e18e40c9.frag.spv b/packages/ludic.render3d/shaders/spv/e18e40c9.frag.spv index de4cb3bc..829cbfd9 100644 Binary files a/packages/ludic.render3d/shaders/spv/e18e40c9.frag.spv and b/packages/ludic.render3d/shaders/spv/e18e40c9.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/e86f78e8.frag.spv b/packages/ludic.render3d/shaders/spv/e86f78e8.frag.spv index e1788b28..eedac340 100644 Binary files a/packages/ludic.render3d/shaders/spv/e86f78e8.frag.spv and b/packages/ludic.render3d/shaders/spv/e86f78e8.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/e9b6300c.frag.spv b/packages/ludic.render3d/shaders/spv/e9b6300c.frag.spv index d5d2f273..72f7ce01 100644 Binary files a/packages/ludic.render3d/shaders/spv/e9b6300c.frag.spv and b/packages/ludic.render3d/shaders/spv/e9b6300c.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f2952361.frag.spv b/packages/ludic.render3d/shaders/spv/f2952361.frag.spv index 123e5a1d..1baabb14 100644 Binary files a/packages/ludic.render3d/shaders/spv/f2952361.frag.spv and b/packages/ludic.render3d/shaders/spv/f2952361.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f34dce08.frag.spv b/packages/ludic.render3d/shaders/spv/f34dce08.frag.spv index 11860be7..2cb448cd 100644 Binary files a/packages/ludic.render3d/shaders/spv/f34dce08.frag.spv and b/packages/ludic.render3d/shaders/spv/f34dce08.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f34dce08.vert.spv b/packages/ludic.render3d/shaders/spv/f34dce08.vert.spv index b59781da..4b1cfeae 100644 Binary files a/packages/ludic.render3d/shaders/spv/f34dce08.vert.spv and b/packages/ludic.render3d/shaders/spv/f34dce08.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f4382918.frag.spv b/packages/ludic.render3d/shaders/spv/f4382918.frag.spv index b3f353d0..9f268a77 100644 Binary files a/packages/ludic.render3d/shaders/spv/f4382918.frag.spv and b/packages/ludic.render3d/shaders/spv/f4382918.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f4a2b586.frag.spv b/packages/ludic.render3d/shaders/spv/f4a2b586.frag.spv index c6183e2f..071188aa 100644 Binary files a/packages/ludic.render3d/shaders/spv/f4a2b586.frag.spv and b/packages/ludic.render3d/shaders/spv/f4a2b586.frag.spv differ diff --git a/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv b/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv index f4235b58..5213b433 100644 Binary files a/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv and b/packages/ludic.render3d/shaders/spv/f4a2b586.vert.spv differ diff --git a/packages/ludic.render3d/shaders/spv/manifest.txt b/packages/ludic.render3d/shaders/spv/manifest.txt index 3b0546c1..d0bd2869 100644 --- a/packages/ludic.render3d/shaders/spv/manifest.txt +++ b/packages/ludic.render3d/shaders/spv/manifest.txt @@ -1,6 +1,6 @@ # manifest.txt - GENERATED by `ludic-dev shaders` from variants.list. Do not edit. P 2ee6d2e3 fullscreen.vert adapt.frag -B 2ee6d2e3 frag 1 840 +B 2ee6d2e3 frag 1 848 U 2ee6d2e3 frag u_cascade_vp 0 mat4 5 64 U 2ee6d2e3 frag u_cascade_split 320 float 5 16 U 2ee6d2e3 frag u_cascade_range 400 float 5 16 @@ -27,19 +27,20 @@ U 2ee6d2e3 frag u_hand_pos 736 vec3 1 0 U 2ee6d2e3 frag u_hand_color 752 vec3 1 0 U 2ee6d2e3 frag u_hand_dir 768 vec3 1 0 U 2ee6d2e3 frag u_hand_cone 780 float 1 0 -U 2ee6d2e3 frag u_ts_origin 784 vec2 1 0 -U 2ee6d2e3 frag u_ts_half 792 float 1 0 -U 2ee6d2e3 frag u_ts_on 796 float 1 0 -U 2ee6d2e3 frag u_force_cascade 800 int 1 0 -U 2ee6d2e3 frag u_cloud_shadow 804 float 1 0 -U 2ee6d2e3 frag u_time 808 float 1 0 -U 2ee6d2e3 frag u_fog_inscatter 812 float 1 0 -U 2ee6d2e3 frag u_fog_desat 816 float 1 0 -U 2ee6d2e3 frag u_lod 820 float 1 0 -U 2ee6d2e3 frag u_key 824 float 1 0 -U 2ee6d2e3 frag u_max 828 float 1 0 -U 2ee6d2e3 frag u_rate 832 float 1 0 -U 2ee6d2e3 frag u_reset 836 float 1 0 +U 2ee6d2e3 frag u_hand_reach 784 float 1 0 +U 2ee6d2e3 frag u_ts_origin 792 vec2 1 0 +U 2ee6d2e3 frag u_ts_half 800 float 1 0 +U 2ee6d2e3 frag u_ts_on 804 float 1 0 +U 2ee6d2e3 frag u_force_cascade 808 int 1 0 +U 2ee6d2e3 frag u_cloud_shadow 812 float 1 0 +U 2ee6d2e3 frag u_time 816 float 1 0 +U 2ee6d2e3 frag u_fog_inscatter 820 float 1 0 +U 2ee6d2e3 frag u_fog_desat 824 float 1 0 +U 2ee6d2e3 frag u_lod 828 float 1 0 +U 2ee6d2e3 frag u_key 832 float 1 0 +U 2ee6d2e3 frag u_max 836 float 1 0 +U 2ee6d2e3 frag u_rate 840 float 1 0 +U 2ee6d2e3 frag u_reset 844 float 1 0 T 2ee6d2e3 u_brdf 2 T 2ee6d2e3 u_irradiance 3 T 2ee6d2e3 u_prefilter 4 @@ -49,7 +50,7 @@ T 2ee6d2e3 u_shadow 7 T 2ee6d2e3 u_tershadow 8 T 2ee6d2e3 u_ts_height 9 P 9d3e2ddd fullscreen.vert bloom_down.frag -B 9d3e2ddd frag 1 836 +B 9d3e2ddd frag 1 844 U 9d3e2ddd frag u_cascade_vp 0 mat4 5 64 U 9d3e2ddd frag u_cascade_split 320 float 5 16 U 9d3e2ddd frag u_cascade_range 400 float 5 16 @@ -76,16 +77,17 @@ U 9d3e2ddd frag u_hand_pos 736 vec3 1 0 U 9d3e2ddd frag u_hand_color 752 vec3 1 0 U 9d3e2ddd frag u_hand_dir 768 vec3 1 0 U 9d3e2ddd frag u_hand_cone 780 float 1 0 -U 9d3e2ddd frag u_ts_origin 784 vec2 1 0 -U 9d3e2ddd frag u_ts_half 792 float 1 0 -U 9d3e2ddd frag u_ts_on 796 float 1 0 -U 9d3e2ddd frag u_force_cascade 800 int 1 0 -U 9d3e2ddd frag u_cloud_shadow 804 float 1 0 -U 9d3e2ddd frag u_time 808 float 1 0 -U 9d3e2ddd frag u_fog_inscatter 812 float 1 0 -U 9d3e2ddd frag u_fog_desat 816 float 1 0 -U 9d3e2ddd frag u_texel 824 vec2 1 0 -U 9d3e2ddd frag u_threshold 832 float 1 0 +U 9d3e2ddd frag u_hand_reach 784 float 1 0 +U 9d3e2ddd frag u_ts_origin 792 vec2 1 0 +U 9d3e2ddd frag u_ts_half 800 float 1 0 +U 9d3e2ddd frag u_ts_on 804 float 1 0 +U 9d3e2ddd frag u_force_cascade 808 int 1 0 +U 9d3e2ddd frag u_cloud_shadow 812 float 1 0 +U 9d3e2ddd frag u_time 816 float 1 0 +U 9d3e2ddd frag u_fog_inscatter 820 float 1 0 +U 9d3e2ddd frag u_fog_desat 824 float 1 0 +U 9d3e2ddd frag u_texel 832 vec2 1 0 +U 9d3e2ddd frag u_threshold 840 float 1 0 T 9d3e2ddd u_brdf 2 T 9d3e2ddd u_irradiance 3 T 9d3e2ddd u_prefilter 4 @@ -94,7 +96,7 @@ T 9d3e2ddd u_src 6 T 9d3e2ddd u_tershadow 7 T 9d3e2ddd u_ts_height 8 P c57b4f14 fullscreen.vert bloom_up.frag -B c57b4f14 frag 1 836 +B c57b4f14 frag 1 844 U c57b4f14 frag u_cascade_vp 0 mat4 5 64 U c57b4f14 frag u_cascade_split 320 float 5 16 U c57b4f14 frag u_cascade_range 400 float 5 16 @@ -121,16 +123,17 @@ U c57b4f14 frag u_hand_pos 736 vec3 1 0 U c57b4f14 frag u_hand_color 752 vec3 1 0 U c57b4f14 frag u_hand_dir 768 vec3 1 0 U c57b4f14 frag u_hand_cone 780 float 1 0 -U c57b4f14 frag u_ts_origin 784 vec2 1 0 -U c57b4f14 frag u_ts_half 792 float 1 0 -U c57b4f14 frag u_ts_on 796 float 1 0 -U c57b4f14 frag u_force_cascade 800 int 1 0 -U c57b4f14 frag u_cloud_shadow 804 float 1 0 -U c57b4f14 frag u_time 808 float 1 0 -U c57b4f14 frag u_fog_inscatter 812 float 1 0 -U c57b4f14 frag u_fog_desat 816 float 1 0 -U c57b4f14 frag u_texel 824 vec2 1 0 -U c57b4f14 frag u_radius 832 float 1 0 +U c57b4f14 frag u_hand_reach 784 float 1 0 +U c57b4f14 frag u_ts_origin 792 vec2 1 0 +U c57b4f14 frag u_ts_half 800 float 1 0 +U c57b4f14 frag u_ts_on 804 float 1 0 +U c57b4f14 frag u_force_cascade 808 int 1 0 +U c57b4f14 frag u_cloud_shadow 812 float 1 0 +U c57b4f14 frag u_time 816 float 1 0 +U c57b4f14 frag u_fog_inscatter 820 float 1 0 +U c57b4f14 frag u_fog_desat 824 float 1 0 +U c57b4f14 frag u_texel 832 vec2 1 0 +U c57b4f14 frag u_radius 840 float 1 0 T c57b4f14 u_brdf 2 T c57b4f14 u_irradiance 3 T c57b4f14 u_prefilter 4 @@ -139,7 +142,7 @@ T c57b4f14 u_src 6 T c57b4f14 u_tershadow 7 T c57b4f14 u_ts_height 8 P 4be7acd9 fullscreen.vert heightgen.frag #define DEM; -B 4be7acd9 frag 1 904 +B 4be7acd9 frag 1 920 U 4be7acd9 frag u_cascade_vp 0 mat4 5 64 U 4be7acd9 frag u_cascade_split 320 float 5 16 U 4be7acd9 frag u_cascade_range 400 float 5 16 @@ -166,26 +169,27 @@ U 4be7acd9 frag u_hand_pos 736 vec3 1 0 U 4be7acd9 frag u_hand_color 752 vec3 1 0 U 4be7acd9 frag u_hand_dir 768 vec3 1 0 U 4be7acd9 frag u_hand_cone 780 float 1 0 -U 4be7acd9 frag u_ts_origin 784 vec2 1 0 -U 4be7acd9 frag u_ts_half 792 float 1 0 -U 4be7acd9 frag u_ts_on 796 float 1 0 -U 4be7acd9 frag u_force_cascade 800 int 1 0 -U 4be7acd9 frag u_cloud_shadow 804 float 1 0 -U 4be7acd9 frag u_time 808 float 1 0 -U 4be7acd9 frag u_fog_inscatter 812 float 1 0 -U 4be7acd9 frag u_fog_desat 816 float 1 0 -U 4be7acd9 frag u_half 820 float 1 0 -U 4be7acd9 frag u_dem_min 824 float 1 0 -U 4be7acd9 frag u_dem_max 828 float 1 0 -U 4be7acd9 frag u_dem_base 832 float 1 0 -U 4be7acd9 frag u_origin 840 vec2 1 0 -U 4be7acd9 frag u_lake 848 vec4 1 0 -U 4be7acd9 frag u_lake_level 864 float 1 0 -U 4be7acd9 frag u_lake_carve 868 float 1 0 -U 4be7acd9 frag u_sea_level 872 float 1 0 -U 4be7acd9 frag u_isle 880 vec4 1 0 -U 4be7acd9 frag u_isle_mode 896 float 1 0 -U 4be7acd9 frag u_dem_blur 900 float 1 0 +U 4be7acd9 frag u_hand_reach 784 float 1 0 +U 4be7acd9 frag u_ts_origin 792 vec2 1 0 +U 4be7acd9 frag u_ts_half 800 float 1 0 +U 4be7acd9 frag u_ts_on 804 float 1 0 +U 4be7acd9 frag u_force_cascade 808 int 1 0 +U 4be7acd9 frag u_cloud_shadow 812 float 1 0 +U 4be7acd9 frag u_time 816 float 1 0 +U 4be7acd9 frag u_fog_inscatter 820 float 1 0 +U 4be7acd9 frag u_fog_desat 824 float 1 0 +U 4be7acd9 frag u_half 828 float 1 0 +U 4be7acd9 frag u_dem_min 832 float 1 0 +U 4be7acd9 frag u_dem_max 836 float 1 0 +U 4be7acd9 frag u_dem_base 840 float 1 0 +U 4be7acd9 frag u_origin 848 vec2 1 0 +U 4be7acd9 frag u_lake 864 vec4 1 0 +U 4be7acd9 frag u_lake_level 880 float 1 0 +U 4be7acd9 frag u_lake_carve 884 float 1 0 +U 4be7acd9 frag u_sea_level 888 float 1 0 +U 4be7acd9 frag u_isle 896 vec4 1 0 +U 4be7acd9 frag u_isle_mode 912 float 1 0 +U 4be7acd9 frag u_dem_blur 916 float 1 0 T 4be7acd9 u_brdf 2 T 4be7acd9 u_dem 3 T 4be7acd9 u_irradiance 4 @@ -194,7 +198,7 @@ T 4be7acd9 u_shadow 6 T 4be7acd9 u_tershadow 7 T 4be7acd9 u_ts_height 8 P 858f5089 fullscreen.vert ibl_brdf.frag -B 858f5089 frag 0 820 +B 858f5089 frag 0 828 U 858f5089 frag u_cascade_vp 0 mat4 5 64 U 858f5089 frag u_cascade_split 320 float 5 16 U 858f5089 frag u_cascade_range 400 float 5 16 @@ -221,14 +225,15 @@ U 858f5089 frag u_hand_pos 736 vec3 1 0 U 858f5089 frag u_hand_color 752 vec3 1 0 U 858f5089 frag u_hand_dir 768 vec3 1 0 U 858f5089 frag u_hand_cone 780 float 1 0 -U 858f5089 frag u_ts_origin 784 vec2 1 0 -U 858f5089 frag u_ts_half 792 float 1 0 -U 858f5089 frag u_ts_on 796 float 1 0 -U 858f5089 frag u_force_cascade 800 int 1 0 -U 858f5089 frag u_cloud_shadow 804 float 1 0 -U 858f5089 frag u_time 808 float 1 0 -U 858f5089 frag u_fog_inscatter 812 float 1 0 -U 858f5089 frag u_fog_desat 816 float 1 0 +U 858f5089 frag u_hand_reach 784 float 1 0 +U 858f5089 frag u_ts_origin 792 vec2 1 0 +U 858f5089 frag u_ts_half 800 float 1 0 +U 858f5089 frag u_ts_on 804 float 1 0 +U 858f5089 frag u_force_cascade 808 int 1 0 +U 858f5089 frag u_cloud_shadow 812 float 1 0 +U 858f5089 frag u_time 816 float 1 0 +U 858f5089 frag u_fog_inscatter 820 float 1 0 +U 858f5089 frag u_fog_desat 824 float 1 0 T 858f5089 u_brdf 2 T 858f5089 u_irradiance 3 T 858f5089 u_prefilter 4 @@ -236,7 +241,7 @@ T 858f5089 u_shadow 5 T 858f5089 u_tershadow 6 T 858f5089 u_ts_height 7 P e18e40c9 fullscreen.vert ibl_irradiance.frag -B e18e40c9 frag 1 824 +B e18e40c9 frag 1 832 U e18e40c9 frag u_cascade_vp 0 mat4 5 64 U e18e40c9 frag u_cascade_split 320 float 5 16 U e18e40c9 frag u_cascade_range 400 float 5 16 @@ -263,15 +268,16 @@ U e18e40c9 frag u_hand_pos 736 vec3 1 0 U e18e40c9 frag u_hand_color 752 vec3 1 0 U e18e40c9 frag u_hand_dir 768 vec3 1 0 U e18e40c9 frag u_hand_cone 780 float 1 0 -U e18e40c9 frag u_ts_origin 784 vec2 1 0 -U e18e40c9 frag u_ts_half 792 float 1 0 -U e18e40c9 frag u_ts_on 796 float 1 0 -U e18e40c9 frag u_force_cascade 800 int 1 0 -U e18e40c9 frag u_cloud_shadow 804 float 1 0 -U e18e40c9 frag u_time 808 float 1 0 -U e18e40c9 frag u_fog_inscatter 812 float 1 0 -U e18e40c9 frag u_fog_desat 816 float 1 0 -U e18e40c9 frag u_sun_clip 820 float 1 0 +U e18e40c9 frag u_hand_reach 784 float 1 0 +U e18e40c9 frag u_ts_origin 792 vec2 1 0 +U e18e40c9 frag u_ts_half 800 float 1 0 +U e18e40c9 frag u_ts_on 804 float 1 0 +U e18e40c9 frag u_force_cascade 808 int 1 0 +U e18e40c9 frag u_cloud_shadow 812 float 1 0 +U e18e40c9 frag u_time 816 float 1 0 +U e18e40c9 frag u_fog_inscatter 820 float 1 0 +U e18e40c9 frag u_fog_desat 824 float 1 0 +U e18e40c9 frag u_sun_clip 828 float 1 0 T e18e40c9 u_brdf 2 T e18e40c9 u_irradiance 3 T e18e40c9 u_prefilter 4 @@ -280,7 +286,7 @@ T e18e40c9 u_sky 6 T e18e40c9 u_tershadow 7 T e18e40c9 u_ts_height 8 P 638623c2 fullscreen.vert ibl_prefilter.frag -B 638623c2 frag 1 832 +B 638623c2 frag 1 840 U 638623c2 frag u_cascade_vp 0 mat4 5 64 U 638623c2 frag u_cascade_split 320 float 5 16 U 638623c2 frag u_cascade_range 400 float 5 16 @@ -307,17 +313,18 @@ U 638623c2 frag u_hand_pos 736 vec3 1 0 U 638623c2 frag u_hand_color 752 vec3 1 0 U 638623c2 frag u_hand_dir 768 vec3 1 0 U 638623c2 frag u_hand_cone 780 float 1 0 -U 638623c2 frag u_ts_origin 784 vec2 1 0 -U 638623c2 frag u_ts_half 792 float 1 0 -U 638623c2 frag u_ts_on 796 float 1 0 -U 638623c2 frag u_force_cascade 800 int 1 0 -U 638623c2 frag u_cloud_shadow 804 float 1 0 -U 638623c2 frag u_time 808 float 1 0 -U 638623c2 frag u_fog_inscatter 812 float 1 0 -U 638623c2 frag u_fog_desat 816 float 1 0 -U 638623c2 frag u_rough 820 float 1 0 -U 638623c2 frag u_sun_clip 824 float 1 0 -U 638623c2 frag u_sky_w 828 float 1 0 +U 638623c2 frag u_hand_reach 784 float 1 0 +U 638623c2 frag u_ts_origin 792 vec2 1 0 +U 638623c2 frag u_ts_half 800 float 1 0 +U 638623c2 frag u_ts_on 804 float 1 0 +U 638623c2 frag u_force_cascade 808 int 1 0 +U 638623c2 frag u_cloud_shadow 812 float 1 0 +U 638623c2 frag u_time 816 float 1 0 +U 638623c2 frag u_fog_inscatter 820 float 1 0 +U 638623c2 frag u_fog_desat 824 float 1 0 +U 638623c2 frag u_rough 828 float 1 0 +U 638623c2 frag u_sun_clip 832 float 1 0 +U 638623c2 frag u_sky_w 836 float 1 0 T 638623c2 u_brdf 2 T 638623c2 u_irradiance 3 T 638623c2 u_prefilter 4 @@ -326,7 +333,7 @@ T 638623c2 u_sky 6 T 638623c2 u_tershadow 7 T 638623c2 u_ts_height 8 P 4cf96468 fullscreen.vert sharpen.frag -B 4cf96468 frag 1 844 +B 4cf96468 frag 1 852 U 4cf96468 frag u_cascade_vp 0 mat4 5 64 U 4cf96468 frag u_cascade_split 320 float 5 16 U 4cf96468 frag u_cascade_range 400 float 5 16 @@ -353,18 +360,19 @@ U 4cf96468 frag u_hand_pos 736 vec3 1 0 U 4cf96468 frag u_hand_color 752 vec3 1 0 U 4cf96468 frag u_hand_dir 768 vec3 1 0 U 4cf96468 frag u_hand_cone 780 float 1 0 -U 4cf96468 frag u_ts_origin 784 vec2 1 0 -U 4cf96468 frag u_ts_half 792 float 1 0 -U 4cf96468 frag u_ts_on 796 float 1 0 -U 4cf96468 frag u_force_cascade 800 int 1 0 -U 4cf96468 frag u_cloud_shadow 804 float 1 0 -U 4cf96468 frag u_time 808 float 1 0 -U 4cf96468 frag u_fog_inscatter 812 float 1 0 -U 4cf96468 frag u_fog_desat 816 float 1 0 -U 4cf96468 frag u_texel 824 vec2 1 0 -U 4cf96468 frag u_amount 832 float 1 0 -U 4cf96468 frag u_grain 836 float 1 0 -U 4cf96468 frag u_fxaa 840 float 1 0 +U 4cf96468 frag u_hand_reach 784 float 1 0 +U 4cf96468 frag u_ts_origin 792 vec2 1 0 +U 4cf96468 frag u_ts_half 800 float 1 0 +U 4cf96468 frag u_ts_on 804 float 1 0 +U 4cf96468 frag u_force_cascade 808 int 1 0 +U 4cf96468 frag u_cloud_shadow 812 float 1 0 +U 4cf96468 frag u_time 816 float 1 0 +U 4cf96468 frag u_fog_inscatter 820 float 1 0 +U 4cf96468 frag u_fog_desat 824 float 1 0 +U 4cf96468 frag u_texel 832 vec2 1 0 +U 4cf96468 frag u_amount 840 float 1 0 +U 4cf96468 frag u_grain 844 float 1 0 +U 4cf96468 frag u_fxaa 848 float 1 0 T 4cf96468 u_brdf 2 T 4cf96468 u_irradiance 3 T 4cf96468 u_prefilter 4 @@ -400,14 +408,15 @@ U 428caa3a frag u_hand_pos 736 vec3 1 0 U 428caa3a frag u_hand_color 752 vec3 1 0 U 428caa3a frag u_hand_dir 768 vec3 1 0 U 428caa3a frag u_hand_cone 780 float 1 0 -U 428caa3a frag u_ts_origin 784 vec2 1 0 -U 428caa3a frag u_ts_half 792 float 1 0 -U 428caa3a frag u_ts_on 796 float 1 0 -U 428caa3a frag u_force_cascade 800 int 1 0 -U 428caa3a frag u_cloud_shadow 804 float 1 0 -U 428caa3a frag u_time 808 float 1 0 -U 428caa3a frag u_fog_inscatter 812 float 1 0 -U 428caa3a frag u_fog_desat 816 float 1 0 +U 428caa3a frag u_hand_reach 784 float 1 0 +U 428caa3a frag u_ts_origin 792 vec2 1 0 +U 428caa3a frag u_ts_half 800 float 1 0 +U 428caa3a frag u_ts_on 804 float 1 0 +U 428caa3a frag u_force_cascade 808 int 1 0 +U 428caa3a frag u_cloud_shadow 812 float 1 0 +U 428caa3a frag u_time 816 float 1 0 +U 428caa3a frag u_fog_inscatter 820 float 1 0 +U 428caa3a frag u_fog_desat 824 float 1 0 U 428caa3a frag u_inv_vp 832 mat4 1 0 U 428caa3a frag u_sky_gain 896 float 1 0 U 428caa3a frag u_sky_sat 900 float 1 0 @@ -424,7 +433,7 @@ T 428caa3a u_sky 6 T 428caa3a u_tershadow 7 T 428caa3a u_ts_height 8 P 3e4b62f9 fullscreen.vert ssao_blur.frag -B 3e4b62f9 frag 1 832 +B 3e4b62f9 frag 1 840 U 3e4b62f9 frag u_cascade_vp 0 mat4 5 64 U 3e4b62f9 frag u_cascade_split 320 float 5 16 U 3e4b62f9 frag u_cascade_range 400 float 5 16 @@ -451,15 +460,16 @@ U 3e4b62f9 frag u_hand_pos 736 vec3 1 0 U 3e4b62f9 frag u_hand_color 752 vec3 1 0 U 3e4b62f9 frag u_hand_dir 768 vec3 1 0 U 3e4b62f9 frag u_hand_cone 780 float 1 0 -U 3e4b62f9 frag u_ts_origin 784 vec2 1 0 -U 3e4b62f9 frag u_ts_half 792 float 1 0 -U 3e4b62f9 frag u_ts_on 796 float 1 0 -U 3e4b62f9 frag u_force_cascade 800 int 1 0 -U 3e4b62f9 frag u_cloud_shadow 804 float 1 0 -U 3e4b62f9 frag u_time 808 float 1 0 -U 3e4b62f9 frag u_fog_inscatter 812 float 1 0 -U 3e4b62f9 frag u_fog_desat 816 float 1 0 -U 3e4b62f9 frag u_texel 824 vec2 1 0 +U 3e4b62f9 frag u_hand_reach 784 float 1 0 +U 3e4b62f9 frag u_ts_origin 792 vec2 1 0 +U 3e4b62f9 frag u_ts_half 800 float 1 0 +U 3e4b62f9 frag u_ts_on 804 float 1 0 +U 3e4b62f9 frag u_force_cascade 808 int 1 0 +U 3e4b62f9 frag u_cloud_shadow 812 float 1 0 +U 3e4b62f9 frag u_time 816 float 1 0 +U 3e4b62f9 frag u_fog_inscatter 820 float 1 0 +U 3e4b62f9 frag u_fog_desat 824 float 1 0 +U 3e4b62f9 frag u_texel 832 vec2 1 0 T 3e4b62f9 u_ao 2 T 3e4b62f9 u_brdf 3 T 3e4b62f9 u_depth 4 @@ -496,14 +506,15 @@ U 676965ab frag u_hand_pos 736 vec3 1 0 U 676965ab frag u_hand_color 752 vec3 1 0 U 676965ab frag u_hand_dir 768 vec3 1 0 U 676965ab frag u_hand_cone 780 float 1 0 -U 676965ab frag u_ts_origin 784 vec2 1 0 -U 676965ab frag u_ts_half 792 float 1 0 -U 676965ab frag u_ts_on 796 float 1 0 -U 676965ab frag u_force_cascade 800 int 1 0 -U 676965ab frag u_cloud_shadow 804 float 1 0 -U 676965ab frag u_time 808 float 1 0 -U 676965ab frag u_fog_inscatter 812 float 1 0 -U 676965ab frag u_fog_desat 816 float 1 0 +U 676965ab frag u_hand_reach 784 float 1 0 +U 676965ab frag u_ts_origin 792 vec2 1 0 +U 676965ab frag u_ts_half 800 float 1 0 +U 676965ab frag u_ts_on 804 float 1 0 +U 676965ab frag u_force_cascade 808 int 1 0 +U 676965ab frag u_cloud_shadow 812 float 1 0 +U 676965ab frag u_time 816 float 1 0 +U 676965ab frag u_fog_inscatter 820 float 1 0 +U 676965ab frag u_fog_desat 824 float 1 0 U 676965ab frag u_inv_proj 832 mat4 1 0 U 676965ab frag u_proj 896 mat4 1 0 U 676965ab frag u_texel 960 vec2 1 0 @@ -520,7 +531,7 @@ T 676965ab u_shadow 7 T 676965ab u_tershadow 8 T 676965ab u_ts_height 9 P a45356c7 fullscreen.vert ternormal.frag -B a45356c7 frag 1 824 +B a45356c7 frag 1 832 U a45356c7 frag u_cascade_vp 0 mat4 5 64 U a45356c7 frag u_cascade_split 320 float 5 16 U a45356c7 frag u_cascade_range 400 float 5 16 @@ -547,15 +558,16 @@ U a45356c7 frag u_hand_pos 736 vec3 1 0 U a45356c7 frag u_hand_color 752 vec3 1 0 U a45356c7 frag u_hand_dir 768 vec3 1 0 U a45356c7 frag u_hand_cone 780 float 1 0 -U a45356c7 frag u_ts_origin 784 vec2 1 0 -U a45356c7 frag u_ts_half 792 float 1 0 -U a45356c7 frag u_ts_on 796 float 1 0 -U a45356c7 frag u_force_cascade 800 int 1 0 -U a45356c7 frag u_cloud_shadow 804 float 1 0 -U a45356c7 frag u_time 808 float 1 0 -U a45356c7 frag u_fog_inscatter 812 float 1 0 -U a45356c7 frag u_fog_desat 816 float 1 0 -U a45356c7 frag u_half 820 float 1 0 +U a45356c7 frag u_hand_reach 784 float 1 0 +U a45356c7 frag u_ts_origin 792 vec2 1 0 +U a45356c7 frag u_ts_half 800 float 1 0 +U a45356c7 frag u_ts_on 804 float 1 0 +U a45356c7 frag u_force_cascade 808 int 1 0 +U a45356c7 frag u_cloud_shadow 812 float 1 0 +U a45356c7 frag u_time 816 float 1 0 +U a45356c7 frag u_fog_inscatter 820 float 1 0 +U a45356c7 frag u_fog_desat 824 float 1 0 +U a45356c7 frag u_half 828 float 1 0 T a45356c7 u_brdf 2 T a45356c7 u_irradiance 3 T a45356c7 u_prefilter 4 @@ -591,15 +603,16 @@ U 4a8e9f28 frag u_hand_pos 736 vec3 1 0 U 4a8e9f28 frag u_hand_color 752 vec3 1 0 U 4a8e9f28 frag u_hand_dir 768 vec3 1 0 U 4a8e9f28 frag u_hand_cone 780 float 1 0 -U 4a8e9f28 frag u_ts_origin 784 vec2 1 0 -U 4a8e9f28 frag u_ts_half 792 float 1 0 -U 4a8e9f28 frag u_ts_on 796 float 1 0 -U 4a8e9f28 frag u_force_cascade 800 int 1 0 -U 4a8e9f28 frag u_cloud_shadow 804 float 1 0 -U 4a8e9f28 frag u_time 808 float 1 0 -U 4a8e9f28 frag u_fog_inscatter 812 float 1 0 -U 4a8e9f28 frag u_fog_desat 816 float 1 0 -U 4a8e9f28 frag u_half 820 float 1 0 +U 4a8e9f28 frag u_hand_reach 784 float 1 0 +U 4a8e9f28 frag u_ts_origin 792 vec2 1 0 +U 4a8e9f28 frag u_ts_half 800 float 1 0 +U 4a8e9f28 frag u_ts_on 804 float 1 0 +U 4a8e9f28 frag u_force_cascade 808 int 1 0 +U 4a8e9f28 frag u_cloud_shadow 812 float 1 0 +U 4a8e9f28 frag u_time 816 float 1 0 +U 4a8e9f28 frag u_fog_inscatter 820 float 1 0 +U 4a8e9f28 frag u_fog_desat 824 float 1 0 +U 4a8e9f28 frag u_half 828 float 1 0 U 4a8e9f28 frag u_sun 832 vec3 1 0 T 4a8e9f28 u_brdf 2 T 4a8e9f28 u_height 3 @@ -609,7 +622,7 @@ T 4a8e9f28 u_shadow 6 T 4a8e9f28 u_tershadow 7 T 4a8e9f28 u_ts_height 8 P 725523d9 fullscreen.vert tonemap.frag -B 725523d9 frag 1 900 +B 725523d9 frag 1 916 U 725523d9 frag u_cascade_vp 0 mat4 5 64 U 725523d9 frag u_cascade_split 320 float 5 16 U 725523d9 frag u_cascade_range 400 float 5 16 @@ -636,25 +649,26 @@ U 725523d9 frag u_hand_pos 736 vec3 1 0 U 725523d9 frag u_hand_color 752 vec3 1 0 U 725523d9 frag u_hand_dir 768 vec3 1 0 U 725523d9 frag u_hand_cone 780 float 1 0 -U 725523d9 frag u_ts_origin 784 vec2 1 0 -U 725523d9 frag u_ts_half 792 float 1 0 -U 725523d9 frag u_ts_on 796 float 1 0 -U 725523d9 frag u_force_cascade 800 int 1 0 -U 725523d9 frag u_cloud_shadow 804 float 1 0 -U 725523d9 frag u_time 808 float 1 0 -U 725523d9 frag u_fog_inscatter 812 float 1 0 -U 725523d9 frag u_fog_desat 816 float 1 0 -U 725523d9 frag u_ao_strength 820 float 1 0 -U 725523d9 frag u_gi_strength 824 float 1 0 -U 725523d9 frag u_wb 832 vec3 1 0 -U 725523d9 frag u_lift 848 vec3 1 0 -U 725523d9 frag u_gain 864 vec3 1 0 -U 725523d9 frag u_exposure 876 float 1 0 -U 725523d9 frag u_auto 880 float 1 0 -U 725523d9 frag u_bloom_strength 884 float 1 0 -U 725523d9 frag u_vignette 888 float 1 0 -U 725523d9 frag u_saturation 892 float 1 0 -U 725523d9 frag u_contrast 896 float 1 0 +U 725523d9 frag u_hand_reach 784 float 1 0 +U 725523d9 frag u_ts_origin 792 vec2 1 0 +U 725523d9 frag u_ts_half 800 float 1 0 +U 725523d9 frag u_ts_on 804 float 1 0 +U 725523d9 frag u_force_cascade 808 int 1 0 +U 725523d9 frag u_cloud_shadow 812 float 1 0 +U 725523d9 frag u_time 816 float 1 0 +U 725523d9 frag u_fog_inscatter 820 float 1 0 +U 725523d9 frag u_fog_desat 824 float 1 0 +U 725523d9 frag u_ao_strength 828 float 1 0 +U 725523d9 frag u_gi_strength 832 float 1 0 +U 725523d9 frag u_wb 848 vec3 1 0 +U 725523d9 frag u_lift 864 vec3 1 0 +U 725523d9 frag u_gain 880 vec3 1 0 +U 725523d9 frag u_exposure 892 float 1 0 +U 725523d9 frag u_auto 896 float 1 0 +U 725523d9 frag u_bloom_strength 900 float 1 0 +U 725523d9 frag u_vignette 904 float 1 0 +U 725523d9 frag u_saturation 908 float 1 0 +U 725523d9 frag u_contrast 912 float 1 0 T 725523d9 u_adapt 2 T 725523d9 u_ao 3 T 725523d9 u_bloom 4 @@ -666,7 +680,7 @@ T 725523d9 u_shadow 9 T 725523d9 u_tershadow 10 T 725523d9 u_ts_height 11 P a4683767 fullscreen.vert tonemap.frag #define HDR10; -B a4683767 frag 1 912 +B a4683767 frag 1 928 U a4683767 frag u_cascade_vp 0 mat4 5 64 U a4683767 frag u_cascade_split 320 float 5 16 U a4683767 frag u_cascade_range 400 float 5 16 @@ -693,28 +707,29 @@ U a4683767 frag u_hand_pos 736 vec3 1 0 U a4683767 frag u_hand_color 752 vec3 1 0 U a4683767 frag u_hand_dir 768 vec3 1 0 U a4683767 frag u_hand_cone 780 float 1 0 -U a4683767 frag u_ts_origin 784 vec2 1 0 -U a4683767 frag u_ts_half 792 float 1 0 -U a4683767 frag u_ts_on 796 float 1 0 -U a4683767 frag u_force_cascade 800 int 1 0 -U a4683767 frag u_cloud_shadow 804 float 1 0 -U a4683767 frag u_time 808 float 1 0 -U a4683767 frag u_fog_inscatter 812 float 1 0 -U a4683767 frag u_fog_desat 816 float 1 0 -U a4683767 frag u_ao_strength 820 float 1 0 -U a4683767 frag u_gi_strength 824 float 1 0 -U a4683767 frag u_wb 832 vec3 1 0 -U a4683767 frag u_lift 848 vec3 1 0 -U a4683767 frag u_gain 864 vec3 1 0 -U a4683767 frag u_exposure 876 float 1 0 -U a4683767 frag u_auto 880 float 1 0 -U a4683767 frag u_bloom_strength 884 float 1 0 -U a4683767 frag u_vignette 888 float 1 0 -U a4683767 frag u_saturation 892 float 1 0 -U a4683767 frag u_contrast 896 float 1 0 -U a4683767 frag u_hdr_paper 900 float 1 0 -U a4683767 frag u_hdr_peak 904 float 1 0 -U a4683767 frag u_hdr_black 908 float 1 0 +U a4683767 frag u_hand_reach 784 float 1 0 +U a4683767 frag u_ts_origin 792 vec2 1 0 +U a4683767 frag u_ts_half 800 float 1 0 +U a4683767 frag u_ts_on 804 float 1 0 +U a4683767 frag u_force_cascade 808 int 1 0 +U a4683767 frag u_cloud_shadow 812 float 1 0 +U a4683767 frag u_time 816 float 1 0 +U a4683767 frag u_fog_inscatter 820 float 1 0 +U a4683767 frag u_fog_desat 824 float 1 0 +U a4683767 frag u_ao_strength 828 float 1 0 +U a4683767 frag u_gi_strength 832 float 1 0 +U a4683767 frag u_wb 848 vec3 1 0 +U a4683767 frag u_lift 864 vec3 1 0 +U a4683767 frag u_gain 880 vec3 1 0 +U a4683767 frag u_exposure 892 float 1 0 +U a4683767 frag u_auto 896 float 1 0 +U a4683767 frag u_bloom_strength 900 float 1 0 +U a4683767 frag u_vignette 904 float 1 0 +U a4683767 frag u_saturation 908 float 1 0 +U a4683767 frag u_contrast 912 float 1 0 +U a4683767 frag u_hdr_paper 916 float 1 0 +U a4683767 frag u_hdr_peak 920 float 1 0 +U a4683767 frag u_hdr_black 924 float 1 0 T a4683767 u_adapt 2 T a4683767 u_ao 3 T a4683767 u_bloom 4 @@ -746,7 +761,7 @@ U d48d6a48 vert u_s0 4368 float 1 0 U d48d6a48 vert u_d0 4372 float 1 0 U d48d6a48 vert u_radius 4376 float 1 0 U d48d6a48 vert u_dbg 4380 int 1 0 -B d48d6a48 frag 1 956 +B d48d6a48 frag 1 964 U d48d6a48 frag u_cascade_vp 0 mat4 5 64 U d48d6a48 frag u_cascade_split 320 float 5 16 U d48d6a48 frag u_cascade_range 400 float 5 16 @@ -773,31 +788,35 @@ U d48d6a48 frag u_hand_pos 736 vec3 1 0 U d48d6a48 frag u_hand_color 752 vec3 1 0 U d48d6a48 frag u_hand_dir 768 vec3 1 0 U d48d6a48 frag u_hand_cone 780 float 1 0 -U d48d6a48 frag u_ts_origin 784 vec2 1 0 -U d48d6a48 frag u_ts_half 792 float 1 0 -U d48d6a48 frag u_ts_on 796 float 1 0 -U d48d6a48 frag u_force_cascade 800 int 1 0 -U d48d6a48 frag u_cloud_shadow 804 float 1 0 -U d48d6a48 frag u_time 808 float 1 0 -U d48d6a48 frag u_fog_inscatter 812 float 1 0 -U d48d6a48 frag u_fog_desat 816 float 1 0 -U d48d6a48 frag u_model_h 820 float 1 0 +U d48d6a48 frag u_hand_reach 784 float 1 0 +U d48d6a48 frag u_ts_origin 792 vec2 1 0 +U d48d6a48 frag u_ts_half 800 float 1 0 +U d48d6a48 frag u_ts_on 804 float 1 0 +U d48d6a48 frag u_force_cascade 808 int 1 0 +U d48d6a48 frag u_cloud_shadow 812 float 1 0 +U d48d6a48 frag u_time 816 float 1 0 +U d48d6a48 frag u_fog_inscatter 820 float 1 0 +U d48d6a48 frag u_fog_desat 824 float 1 0 +U d48d6a48 frag u_model_h 828 float 1 0 U d48d6a48 frag u_view 832 mat4 1 0 U d48d6a48 frag u_tint 896 vec3 1 0 U d48d6a48 frag u_rough_scale 908 float 1 0 U d48d6a48 frag u_emissive 912 float 1 0 U d48d6a48 frag u_blade_base 928 vec3 1 0 U d48d6a48 frag u_blade_tip 944 vec3 1 0 +U d48d6a48 frag u_blade_cols 956 float 1 0 +U d48d6a48 frag u_blade_tex_on 960 float 1 0 T d48d6a48 u_arm 2 -T d48d6a48 u_brdf 3 -T d48d6a48 u_diff 4 -T d48d6a48 u_irradiance 5 -T d48d6a48 u_nrm 6 -T d48d6a48 u_ortho 7 -T d48d6a48 u_prefilter 8 -T d48d6a48 u_shadow 9 -T d48d6a48 u_tershadow 10 -T d48d6a48 u_ts_height 11 +T d48d6a48 u_blade_tex 3 +T d48d6a48 u_brdf 4 +T d48d6a48 u_diff 5 +T d48d6a48 u_irradiance 6 +T d48d6a48 u_nrm 7 +T d48d6a48 u_ortho 8 +T d48d6a48 u_prefilter 9 +T d48d6a48 u_shadow 10 +T d48d6a48 u_tershadow 11 +T d48d6a48 u_ts_height 12 P 7ed7de52 grass.vert model.frag #define FOLIAGE;#define BLADE; B 7ed7de52 vert 0 320 U 7ed7de52 vert u_view 0 mat4 1 0 @@ -823,7 +842,7 @@ 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 +B 7ed7de52 frag 1 964 U 7ed7de52 frag u_cascade_vp 0 mat4 5 64 U 7ed7de52 frag u_cascade_split 320 float 5 16 U 7ed7de52 frag u_cascade_range 400 float 5 16 @@ -850,31 +869,35 @@ U 7ed7de52 frag u_hand_pos 736 vec3 1 0 U 7ed7de52 frag u_hand_color 752 vec3 1 0 U 7ed7de52 frag u_hand_dir 768 vec3 1 0 U 7ed7de52 frag u_hand_cone 780 float 1 0 -U 7ed7de52 frag u_ts_origin 784 vec2 1 0 -U 7ed7de52 frag u_ts_half 792 float 1 0 -U 7ed7de52 frag u_ts_on 796 float 1 0 -U 7ed7de52 frag u_force_cascade 800 int 1 0 -U 7ed7de52 frag u_cloud_shadow 804 float 1 0 -U 7ed7de52 frag u_time 808 float 1 0 -U 7ed7de52 frag u_fog_inscatter 812 float 1 0 -U 7ed7de52 frag u_fog_desat 816 float 1 0 -U 7ed7de52 frag u_model_h 820 float 1 0 +U 7ed7de52 frag u_hand_reach 784 float 1 0 +U 7ed7de52 frag u_ts_origin 792 vec2 1 0 +U 7ed7de52 frag u_ts_half 800 float 1 0 +U 7ed7de52 frag u_ts_on 804 float 1 0 +U 7ed7de52 frag u_force_cascade 808 int 1 0 +U 7ed7de52 frag u_cloud_shadow 812 float 1 0 +U 7ed7de52 frag u_time 816 float 1 0 +U 7ed7de52 frag u_fog_inscatter 820 float 1 0 +U 7ed7de52 frag u_fog_desat 824 float 1 0 +U 7ed7de52 frag u_model_h 828 float 1 0 U 7ed7de52 frag u_view 832 mat4 1 0 U 7ed7de52 frag u_tint 896 vec3 1 0 U 7ed7de52 frag u_rough_scale 908 float 1 0 U 7ed7de52 frag u_emissive 912 float 1 0 U 7ed7de52 frag u_blade_base 928 vec3 1 0 U 7ed7de52 frag u_blade_tip 944 vec3 1 0 +U 7ed7de52 frag u_blade_cols 956 float 1 0 +U 7ed7de52 frag u_blade_tex_on 960 float 1 0 T 7ed7de52 u_arm 2 -T 7ed7de52 u_brdf 3 -T 7ed7de52 u_diff 4 -T 7ed7de52 u_irradiance 5 -T 7ed7de52 u_nrm 6 -T 7ed7de52 u_ortho 7 -T 7ed7de52 u_prefilter 8 -T 7ed7de52 u_shadow 9 -T 7ed7de52 u_tershadow 10 -T 7ed7de52 u_ts_height 11 +T 7ed7de52 u_blade_tex 3 +T 7ed7de52 u_brdf 4 +T 7ed7de52 u_diff 5 +T 7ed7de52 u_irradiance 6 +T 7ed7de52 u_nrm 7 +T 7ed7de52 u_ortho 8 +T 7ed7de52 u_prefilter 9 +T 7ed7de52 u_shadow 10 +T 7ed7de52 u_tershadow 11 +T 7ed7de52 u_ts_height 12 P 7f096322 grass.vert model.frag #define FOLIAGE;#define BLADE;#define TILES; B 7f096322 vert 0 4416 U 7f096322 vert u_view 0 mat4 1 0 @@ -901,7 +924,7 @@ 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 +B 7f096322 frag 1 964 U 7f096322 frag u_cascade_vp 0 mat4 5 64 U 7f096322 frag u_cascade_split 320 float 5 16 U 7f096322 frag u_cascade_range 400 float 5 16 @@ -928,31 +951,35 @@ U 7f096322 frag u_hand_pos 736 vec3 1 0 U 7f096322 frag u_hand_color 752 vec3 1 0 U 7f096322 frag u_hand_dir 768 vec3 1 0 U 7f096322 frag u_hand_cone 780 float 1 0 -U 7f096322 frag u_ts_origin 784 vec2 1 0 -U 7f096322 frag u_ts_half 792 float 1 0 -U 7f096322 frag u_ts_on 796 float 1 0 -U 7f096322 frag u_force_cascade 800 int 1 0 -U 7f096322 frag u_cloud_shadow 804 float 1 0 -U 7f096322 frag u_time 808 float 1 0 -U 7f096322 frag u_fog_inscatter 812 float 1 0 -U 7f096322 frag u_fog_desat 816 float 1 0 -U 7f096322 frag u_model_h 820 float 1 0 +U 7f096322 frag u_hand_reach 784 float 1 0 +U 7f096322 frag u_ts_origin 792 vec2 1 0 +U 7f096322 frag u_ts_half 800 float 1 0 +U 7f096322 frag u_ts_on 804 float 1 0 +U 7f096322 frag u_force_cascade 808 int 1 0 +U 7f096322 frag u_cloud_shadow 812 float 1 0 +U 7f096322 frag u_time 816 float 1 0 +U 7f096322 frag u_fog_inscatter 820 float 1 0 +U 7f096322 frag u_fog_desat 824 float 1 0 +U 7f096322 frag u_model_h 828 float 1 0 U 7f096322 frag u_view 832 mat4 1 0 U 7f096322 frag u_tint 896 vec3 1 0 U 7f096322 frag u_rough_scale 908 float 1 0 U 7f096322 frag u_emissive 912 float 1 0 U 7f096322 frag u_blade_base 928 vec3 1 0 U 7f096322 frag u_blade_tip 944 vec3 1 0 +U 7f096322 frag u_blade_cols 956 float 1 0 +U 7f096322 frag u_blade_tex_on 960 float 1 0 T 7f096322 u_arm 2 -T 7f096322 u_brdf 3 -T 7f096322 u_diff 4 -T 7f096322 u_irradiance 5 -T 7f096322 u_nrm 6 -T 7f096322 u_ortho 7 -T 7f096322 u_prefilter 8 -T 7f096322 u_shadow 9 -T 7f096322 u_tershadow 10 -T 7f096322 u_ts_height 11 +T 7f096322 u_blade_tex 3 +T 7f096322 u_brdf 4 +T 7f096322 u_diff 5 +T 7f096322 u_irradiance 6 +T 7f096322 u_nrm 7 +T 7f096322 u_ortho 8 +T 7f096322 u_prefilter 9 +T 7f096322 u_shadow 10 +T 7f096322 u_tershadow 11 +T 7f096322 u_ts_height 12 P 3733fc38 impostor.vert impostor.frag B 3733fc38 vert 0 232 U 3733fc38 vert u_view 0 mat4 1 0 @@ -994,14 +1021,15 @@ U 3733fc38 frag u_hand_pos 736 vec3 1 0 U 3733fc38 frag u_hand_color 752 vec3 1 0 U 3733fc38 frag u_hand_dir 768 vec3 1 0 U 3733fc38 frag u_hand_cone 780 float 1 0 -U 3733fc38 frag u_ts_origin 784 vec2 1 0 -U 3733fc38 frag u_ts_half 792 float 1 0 -U 3733fc38 frag u_ts_on 796 float 1 0 -U 3733fc38 frag u_force_cascade 800 int 1 0 -U 3733fc38 frag u_cloud_shadow 804 float 1 0 -U 3733fc38 frag u_time 808 float 1 0 -U 3733fc38 frag u_fog_inscatter 812 float 1 0 -U 3733fc38 frag u_fog_desat 816 float 1 0 +U 3733fc38 frag u_hand_reach 784 float 1 0 +U 3733fc38 frag u_ts_origin 792 vec2 1 0 +U 3733fc38 frag u_ts_half 800 float 1 0 +U 3733fc38 frag u_ts_on 804 float 1 0 +U 3733fc38 frag u_force_cascade 808 int 1 0 +U 3733fc38 frag u_cloud_shadow 812 float 1 0 +U 3733fc38 frag u_time 816 float 1 0 +U 3733fc38 frag u_fog_inscatter 820 float 1 0 +U 3733fc38 frag u_fog_desat 824 float 1 0 U 3733fc38 frag u_view 832 mat4 1 0 U 3733fc38 frag u_tiles 896 float 1 0 U 3733fc38 frag u_tint 912 vec3 1 0 @@ -1055,14 +1083,15 @@ U 4d4fa91b frag u_hand_pos 736 vec3 1 0 U 4d4fa91b frag u_hand_color 752 vec3 1 0 U 4d4fa91b frag u_hand_dir 768 vec3 1 0 U 4d4fa91b frag u_hand_cone 780 float 1 0 -U 4d4fa91b frag u_ts_origin 784 vec2 1 0 -U 4d4fa91b frag u_ts_half 792 float 1 0 -U 4d4fa91b frag u_ts_on 796 float 1 0 -U 4d4fa91b frag u_force_cascade 800 int 1 0 -U 4d4fa91b frag u_cloud_shadow 804 float 1 0 -U 4d4fa91b frag u_time 808 float 1 0 -U 4d4fa91b frag u_fog_inscatter 812 float 1 0 -U 4d4fa91b frag u_fog_desat 816 float 1 0 +U 4d4fa91b frag u_hand_reach 784 float 1 0 +U 4d4fa91b frag u_ts_origin 792 vec2 1 0 +U 4d4fa91b frag u_ts_half 800 float 1 0 +U 4d4fa91b frag u_ts_on 804 float 1 0 +U 4d4fa91b frag u_force_cascade 808 int 1 0 +U 4d4fa91b frag u_cloud_shadow 812 float 1 0 +U 4d4fa91b frag u_time 816 float 1 0 +U 4d4fa91b frag u_fog_inscatter 820 float 1 0 +U 4d4fa91b frag u_fog_desat 824 float 1 0 U 4d4fa91b frag u_view 832 mat4 1 0 U 4d4fa91b frag u_tiles 896 float 1 0 U 4d4fa91b frag u_tint 912 vec3 1 0 @@ -1094,7 +1123,7 @@ I 9dce3246 a_pos 0 vec3 I 9dce3246 i_pos 3 vec4 I 9dce3246 a_nrm 1 vec3 I 9dce3246 a_uv 2 vec2 -B 9dce3246 frag 0 820 +B 9dce3246 frag 0 828 U 9dce3246 frag u_cascade_vp 0 mat4 5 64 U 9dce3246 frag u_cascade_split 320 float 5 16 U 9dce3246 frag u_cascade_range 400 float 5 16 @@ -1121,14 +1150,15 @@ U 9dce3246 frag u_hand_pos 736 vec3 1 0 U 9dce3246 frag u_hand_color 752 vec3 1 0 U 9dce3246 frag u_hand_dir 768 vec3 1 0 U 9dce3246 frag u_hand_cone 780 float 1 0 -U 9dce3246 frag u_ts_origin 784 vec2 1 0 -U 9dce3246 frag u_ts_half 792 float 1 0 -U 9dce3246 frag u_ts_on 796 float 1 0 -U 9dce3246 frag u_force_cascade 800 int 1 0 -U 9dce3246 frag u_cloud_shadow 804 float 1 0 -U 9dce3246 frag u_time 808 float 1 0 -U 9dce3246 frag u_fog_inscatter 812 float 1 0 -U 9dce3246 frag u_fog_desat 816 float 1 0 +U 9dce3246 frag u_hand_reach 784 float 1 0 +U 9dce3246 frag u_ts_origin 792 vec2 1 0 +U 9dce3246 frag u_ts_half 800 float 1 0 +U 9dce3246 frag u_ts_on 804 float 1 0 +U 9dce3246 frag u_force_cascade 808 int 1 0 +U 9dce3246 frag u_cloud_shadow 812 float 1 0 +U 9dce3246 frag u_time 816 float 1 0 +U 9dce3246 frag u_fog_inscatter 820 float 1 0 +U 9dce3246 frag u_fog_desat 824 float 1 0 T 9dce3246 u_arm 2 T 9dce3246 u_brdf 3 T 9dce3246 u_diff 4 @@ -1156,7 +1186,7 @@ I 439a2253 a_pos 0 vec3 I 439a2253 i_pos 3 vec4 I 439a2253 a_nrm 1 vec3 I 439a2253 a_uv 2 vec2 -B 439a2253 frag 0 820 +B 439a2253 frag 0 828 U 439a2253 frag u_cascade_vp 0 mat4 5 64 U 439a2253 frag u_cascade_split 320 float 5 16 U 439a2253 frag u_cascade_range 400 float 5 16 @@ -1183,14 +1213,15 @@ U 439a2253 frag u_hand_pos 736 vec3 1 0 U 439a2253 frag u_hand_color 752 vec3 1 0 U 439a2253 frag u_hand_dir 768 vec3 1 0 U 439a2253 frag u_hand_cone 780 float 1 0 -U 439a2253 frag u_ts_origin 784 vec2 1 0 -U 439a2253 frag u_ts_half 792 float 1 0 -U 439a2253 frag u_ts_on 796 float 1 0 -U 439a2253 frag u_force_cascade 800 int 1 0 -U 439a2253 frag u_cloud_shadow 804 float 1 0 -U 439a2253 frag u_time 808 float 1 0 -U 439a2253 frag u_fog_inscatter 812 float 1 0 -U 439a2253 frag u_fog_desat 816 float 1 0 +U 439a2253 frag u_hand_reach 784 float 1 0 +U 439a2253 frag u_ts_origin 792 vec2 1 0 +U 439a2253 frag u_ts_half 800 float 1 0 +U 439a2253 frag u_ts_on 804 float 1 0 +U 439a2253 frag u_force_cascade 808 int 1 0 +U 439a2253 frag u_cloud_shadow 812 float 1 0 +U 439a2253 frag u_time 816 float 1 0 +U 439a2253 frag u_fog_inscatter 820 float 1 0 +U 439a2253 frag u_fog_desat 824 float 1 0 T 439a2253 u_arm 2 T 439a2253 u_brdf 3 T 439a2253 u_diff 4 @@ -1218,7 +1249,7 @@ I 86f427b0 a_pos 0 vec3 I 86f427b0 i_pos 3 vec4 I 86f427b0 a_nrm 1 vec3 I 86f427b0 a_uv 2 vec2 -B 86f427b0 frag 0 820 +B 86f427b0 frag 0 828 U 86f427b0 frag u_cascade_vp 0 mat4 5 64 U 86f427b0 frag u_cascade_split 320 float 5 16 U 86f427b0 frag u_cascade_range 400 float 5 16 @@ -1245,14 +1276,15 @@ U 86f427b0 frag u_hand_pos 736 vec3 1 0 U 86f427b0 frag u_hand_color 752 vec3 1 0 U 86f427b0 frag u_hand_dir 768 vec3 1 0 U 86f427b0 frag u_hand_cone 780 float 1 0 -U 86f427b0 frag u_ts_origin 784 vec2 1 0 -U 86f427b0 frag u_ts_half 792 float 1 0 -U 86f427b0 frag u_ts_on 796 float 1 0 -U 86f427b0 frag u_force_cascade 800 int 1 0 -U 86f427b0 frag u_cloud_shadow 804 float 1 0 -U 86f427b0 frag u_time 808 float 1 0 -U 86f427b0 frag u_fog_inscatter 812 float 1 0 -U 86f427b0 frag u_fog_desat 816 float 1 0 +U 86f427b0 frag u_hand_reach 784 float 1 0 +U 86f427b0 frag u_ts_origin 792 vec2 1 0 +U 86f427b0 frag u_ts_half 800 float 1 0 +U 86f427b0 frag u_ts_on 804 float 1 0 +U 86f427b0 frag u_force_cascade 808 int 1 0 +U 86f427b0 frag u_cloud_shadow 812 float 1 0 +U 86f427b0 frag u_time 816 float 1 0 +U 86f427b0 frag u_fog_inscatter 820 float 1 0 +U 86f427b0 frag u_fog_desat 824 float 1 0 T 86f427b0 u_arm 2 T 86f427b0 u_brdf 3 T 86f427b0 u_diff 4 @@ -1280,7 +1312,7 @@ I bfa15301 a_pos 0 vec3 I bfa15301 i_pos 3 vec4 I bfa15301 a_nrm 1 vec3 I bfa15301 a_uv 2 vec2 -B bfa15301 frag 1 820 +B bfa15301 frag 1 828 U bfa15301 frag u_cascade_vp 0 mat4 5 64 U bfa15301 frag u_cascade_split 320 float 5 16 U bfa15301 frag u_cascade_range 400 float 5 16 @@ -1307,14 +1339,15 @@ U bfa15301 frag u_hand_pos 736 vec3 1 0 U bfa15301 frag u_hand_color 752 vec3 1 0 U bfa15301 frag u_hand_dir 768 vec3 1 0 U bfa15301 frag u_hand_cone 780 float 1 0 -U bfa15301 frag u_ts_origin 784 vec2 1 0 -U bfa15301 frag u_ts_half 792 float 1 0 -U bfa15301 frag u_ts_on 796 float 1 0 -U bfa15301 frag u_force_cascade 800 int 1 0 -U bfa15301 frag u_cloud_shadow 804 float 1 0 -U bfa15301 frag u_time 808 float 1 0 -U bfa15301 frag u_fog_inscatter 812 float 1 0 -U bfa15301 frag u_fog_desat 816 float 1 0 +U bfa15301 frag u_hand_reach 784 float 1 0 +U bfa15301 frag u_ts_origin 792 vec2 1 0 +U bfa15301 frag u_ts_half 800 float 1 0 +U bfa15301 frag u_ts_on 804 float 1 0 +U bfa15301 frag u_force_cascade 808 int 1 0 +U bfa15301 frag u_cloud_shadow 812 float 1 0 +U bfa15301 frag u_time 816 float 1 0 +U bfa15301 frag u_fog_inscatter 820 float 1 0 +U bfa15301 frag u_fog_desat 824 float 1 0 T bfa15301 u_brdf 2 T bfa15301 u_diff 3 T bfa15301 u_irradiance 4 @@ -1368,28 +1401,30 @@ U 01089da8 frag u_hand_pos 736 vec3 1 0 U 01089da8 frag u_hand_color 752 vec3 1 0 U 01089da8 frag u_hand_dir 768 vec3 1 0 U 01089da8 frag u_hand_cone 780 float 1 0 -U 01089da8 frag u_ts_origin 784 vec2 1 0 -U 01089da8 frag u_ts_half 792 float 1 0 -U 01089da8 frag u_ts_on 796 float 1 0 -U 01089da8 frag u_force_cascade 800 int 1 0 -U 01089da8 frag u_cloud_shadow 804 float 1 0 -U 01089da8 frag u_time 808 float 1 0 -U 01089da8 frag u_fog_inscatter 812 float 1 0 -U 01089da8 frag u_fog_desat 816 float 1 0 -U 01089da8 frag u_model_h 820 float 1 0 +U 01089da8 frag u_hand_reach 784 float 1 0 +U 01089da8 frag u_ts_origin 792 vec2 1 0 +U 01089da8 frag u_ts_half 800 float 1 0 +U 01089da8 frag u_ts_on 804 float 1 0 +U 01089da8 frag u_force_cascade 808 int 1 0 +U 01089da8 frag u_cloud_shadow 812 float 1 0 +U 01089da8 frag u_time 816 float 1 0 +U 01089da8 frag u_fog_inscatter 820 float 1 0 +U 01089da8 frag u_fog_desat 824 float 1 0 +U 01089da8 frag u_model_h 828 float 1 0 U 01089da8 frag u_view 832 mat4 1 0 U 01089da8 frag u_tint 896 vec3 1 0 U 01089da8 frag u_rough_scale 908 float 1 0 U 01089da8 frag u_emissive 912 float 1 0 T 01089da8 u_arm 2 -T 01089da8 u_brdf 3 -T 01089da8 u_diff 4 -T 01089da8 u_irradiance 5 -T 01089da8 u_nrm 6 -T 01089da8 u_prefilter 7 -T 01089da8 u_shadow 8 -T 01089da8 u_tershadow 9 -T 01089da8 u_ts_height 10 +T 01089da8 u_blade_tex 3 +T 01089da8 u_brdf 4 +T 01089da8 u_diff 5 +T 01089da8 u_irradiance 6 +T 01089da8 u_nrm 7 +T 01089da8 u_prefilter 8 +T 01089da8 u_shadow 9 +T 01089da8 u_tershadow 10 +T 01089da8 u_ts_height 11 P 254e7887 model.vert model.frag #define CARD;#define CHEAP; B 254e7887 vert 0 236 U 254e7887 vert u_view 0 mat4 1 0 @@ -1436,29 +1471,31 @@ U 254e7887 frag u_hand_pos 736 vec3 1 0 U 254e7887 frag u_hand_color 752 vec3 1 0 U 254e7887 frag u_hand_dir 768 vec3 1 0 U 254e7887 frag u_hand_cone 780 float 1 0 -U 254e7887 frag u_ts_origin 784 vec2 1 0 -U 254e7887 frag u_ts_half 792 float 1 0 -U 254e7887 frag u_ts_on 796 float 1 0 -U 254e7887 frag u_force_cascade 800 int 1 0 -U 254e7887 frag u_cloud_shadow 804 float 1 0 -U 254e7887 frag u_time 808 float 1 0 -U 254e7887 frag u_fog_inscatter 812 float 1 0 -U 254e7887 frag u_fog_desat 816 float 1 0 -U 254e7887 frag u_model_h 820 float 1 0 +U 254e7887 frag u_hand_reach 784 float 1 0 +U 254e7887 frag u_ts_origin 792 vec2 1 0 +U 254e7887 frag u_ts_half 800 float 1 0 +U 254e7887 frag u_ts_on 804 float 1 0 +U 254e7887 frag u_force_cascade 808 int 1 0 +U 254e7887 frag u_cloud_shadow 812 float 1 0 +U 254e7887 frag u_time 816 float 1 0 +U 254e7887 frag u_fog_inscatter 820 float 1 0 +U 254e7887 frag u_fog_desat 824 float 1 0 +U 254e7887 frag u_model_h 828 float 1 0 U 254e7887 frag u_view 832 mat4 1 0 U 254e7887 frag u_tint 896 vec3 1 0 U 254e7887 frag u_rough_scale 908 float 1 0 U 254e7887 frag u_emissive 912 float 1 0 U 254e7887 frag u_cull 916 float 1 0 T 254e7887 u_arm 2 -T 254e7887 u_brdf 3 -T 254e7887 u_diff 4 -T 254e7887 u_irradiance 5 -T 254e7887 u_nrm 6 -T 254e7887 u_prefilter 7 -T 254e7887 u_shadow 8 -T 254e7887 u_tershadow 9 -T 254e7887 u_ts_height 10 +T 254e7887 u_blade_tex 3 +T 254e7887 u_brdf 4 +T 254e7887 u_diff 5 +T 254e7887 u_irradiance 6 +T 254e7887 u_nrm 7 +T 254e7887 u_prefilter 8 +T 254e7887 u_shadow 9 +T 254e7887 u_tershadow 10 +T 254e7887 u_ts_height 11 P 1ce5c5d1 model.vert model.frag #define FOLIAGE;#define WIND;#define ALPHA_TEST; B 1ce5c5d1 vert 0 236 U 1ce5c5d1 vert u_view 0 mat4 1 0 @@ -1505,28 +1542,30 @@ U 1ce5c5d1 frag u_hand_pos 736 vec3 1 0 U 1ce5c5d1 frag u_hand_color 752 vec3 1 0 U 1ce5c5d1 frag u_hand_dir 768 vec3 1 0 U 1ce5c5d1 frag u_hand_cone 780 float 1 0 -U 1ce5c5d1 frag u_ts_origin 784 vec2 1 0 -U 1ce5c5d1 frag u_ts_half 792 float 1 0 -U 1ce5c5d1 frag u_ts_on 796 float 1 0 -U 1ce5c5d1 frag u_force_cascade 800 int 1 0 -U 1ce5c5d1 frag u_cloud_shadow 804 float 1 0 -U 1ce5c5d1 frag u_time 808 float 1 0 -U 1ce5c5d1 frag u_fog_inscatter 812 float 1 0 -U 1ce5c5d1 frag u_fog_desat 816 float 1 0 -U 1ce5c5d1 frag u_model_h 820 float 1 0 +U 1ce5c5d1 frag u_hand_reach 784 float 1 0 +U 1ce5c5d1 frag u_ts_origin 792 vec2 1 0 +U 1ce5c5d1 frag u_ts_half 800 float 1 0 +U 1ce5c5d1 frag u_ts_on 804 float 1 0 +U 1ce5c5d1 frag u_force_cascade 808 int 1 0 +U 1ce5c5d1 frag u_cloud_shadow 812 float 1 0 +U 1ce5c5d1 frag u_time 816 float 1 0 +U 1ce5c5d1 frag u_fog_inscatter 820 float 1 0 +U 1ce5c5d1 frag u_fog_desat 824 float 1 0 +U 1ce5c5d1 frag u_model_h 828 float 1 0 U 1ce5c5d1 frag u_view 832 mat4 1 0 U 1ce5c5d1 frag u_tint 896 vec3 1 0 U 1ce5c5d1 frag u_rough_scale 908 float 1 0 U 1ce5c5d1 frag u_emissive 912 float 1 0 T 1ce5c5d1 u_arm 2 -T 1ce5c5d1 u_brdf 3 -T 1ce5c5d1 u_diff 4 -T 1ce5c5d1 u_irradiance 5 -T 1ce5c5d1 u_nrm 6 -T 1ce5c5d1 u_prefilter 7 -T 1ce5c5d1 u_shadow 8 -T 1ce5c5d1 u_tershadow 9 -T 1ce5c5d1 u_ts_height 10 +T 1ce5c5d1 u_blade_tex 3 +T 1ce5c5d1 u_brdf 4 +T 1ce5c5d1 u_diff 5 +T 1ce5c5d1 u_irradiance 6 +T 1ce5c5d1 u_nrm 7 +T 1ce5c5d1 u_prefilter 8 +T 1ce5c5d1 u_shadow 9 +T 1ce5c5d1 u_tershadow 10 +T 1ce5c5d1 u_ts_height 11 P f4a2b586 model.vert model.frag #define FOLIAGE;#define WIND;#define BLADE; B f4a2b586 vert 0 252 U f4a2b586 vert u_view 0 mat4 1 0 @@ -1548,7 +1587,7 @@ I f4a2b586 a_pos 0 vec3 I f4a2b586 i_pos 3 vec4 I f4a2b586 a_nrm 1 vec3 I f4a2b586 a_uv 2 vec2 -B f4a2b586 frag 1 956 +B f4a2b586 frag 1 964 U f4a2b586 frag u_cascade_vp 0 mat4 5 64 U f4a2b586 frag u_cascade_split 320 float 5 16 U f4a2b586 frag u_cascade_range 400 float 5 16 @@ -1575,30 +1614,34 @@ U f4a2b586 frag u_hand_pos 736 vec3 1 0 U f4a2b586 frag u_hand_color 752 vec3 1 0 U f4a2b586 frag u_hand_dir 768 vec3 1 0 U f4a2b586 frag u_hand_cone 780 float 1 0 -U f4a2b586 frag u_ts_origin 784 vec2 1 0 -U f4a2b586 frag u_ts_half 792 float 1 0 -U f4a2b586 frag u_ts_on 796 float 1 0 -U f4a2b586 frag u_force_cascade 800 int 1 0 -U f4a2b586 frag u_cloud_shadow 804 float 1 0 -U f4a2b586 frag u_time 808 float 1 0 -U f4a2b586 frag u_fog_inscatter 812 float 1 0 -U f4a2b586 frag u_fog_desat 816 float 1 0 -U f4a2b586 frag u_model_h 820 float 1 0 +U f4a2b586 frag u_hand_reach 784 float 1 0 +U f4a2b586 frag u_ts_origin 792 vec2 1 0 +U f4a2b586 frag u_ts_half 800 float 1 0 +U f4a2b586 frag u_ts_on 804 float 1 0 +U f4a2b586 frag u_force_cascade 808 int 1 0 +U f4a2b586 frag u_cloud_shadow 812 float 1 0 +U f4a2b586 frag u_time 816 float 1 0 +U f4a2b586 frag u_fog_inscatter 820 float 1 0 +U f4a2b586 frag u_fog_desat 824 float 1 0 +U f4a2b586 frag u_model_h 828 float 1 0 U f4a2b586 frag u_view 832 mat4 1 0 U f4a2b586 frag u_tint 896 vec3 1 0 U f4a2b586 frag u_rough_scale 908 float 1 0 U f4a2b586 frag u_emissive 912 float 1 0 U f4a2b586 frag u_blade_base 928 vec3 1 0 U f4a2b586 frag u_blade_tip 944 vec3 1 0 +U f4a2b586 frag u_blade_cols 956 float 1 0 +U f4a2b586 frag u_blade_tex_on 960 float 1 0 T f4a2b586 u_arm 2 -T f4a2b586 u_brdf 3 -T f4a2b586 u_diff 4 -T f4a2b586 u_irradiance 5 -T f4a2b586 u_nrm 6 -T f4a2b586 u_prefilter 7 -T f4a2b586 u_shadow 8 -T f4a2b586 u_tershadow 9 -T f4a2b586 u_ts_height 10 +T f4a2b586 u_blade_tex 3 +T f4a2b586 u_brdf 4 +T f4a2b586 u_diff 5 +T f4a2b586 u_irradiance 6 +T f4a2b586 u_nrm 7 +T f4a2b586 u_prefilter 8 +T f4a2b586 u_shadow 9 +T f4a2b586 u_tershadow 10 +T f4a2b586 u_ts_height 11 P b4587cd4 model.vert model.frag #define FOLIAGE;#define WIND;#define CARD; B b4587cd4 vert 0 236 U b4587cd4 vert u_view 0 mat4 1 0 @@ -1645,29 +1688,31 @@ U b4587cd4 frag u_hand_pos 736 vec3 1 0 U b4587cd4 frag u_hand_color 752 vec3 1 0 U b4587cd4 frag u_hand_dir 768 vec3 1 0 U b4587cd4 frag u_hand_cone 780 float 1 0 -U b4587cd4 frag u_ts_origin 784 vec2 1 0 -U b4587cd4 frag u_ts_half 792 float 1 0 -U b4587cd4 frag u_ts_on 796 float 1 0 -U b4587cd4 frag u_force_cascade 800 int 1 0 -U b4587cd4 frag u_cloud_shadow 804 float 1 0 -U b4587cd4 frag u_time 808 float 1 0 -U b4587cd4 frag u_fog_inscatter 812 float 1 0 -U b4587cd4 frag u_fog_desat 816 float 1 0 -U b4587cd4 frag u_model_h 820 float 1 0 +U b4587cd4 frag u_hand_reach 784 float 1 0 +U b4587cd4 frag u_ts_origin 792 vec2 1 0 +U b4587cd4 frag u_ts_half 800 float 1 0 +U b4587cd4 frag u_ts_on 804 float 1 0 +U b4587cd4 frag u_force_cascade 808 int 1 0 +U b4587cd4 frag u_cloud_shadow 812 float 1 0 +U b4587cd4 frag u_time 816 float 1 0 +U b4587cd4 frag u_fog_inscatter 820 float 1 0 +U b4587cd4 frag u_fog_desat 824 float 1 0 +U b4587cd4 frag u_model_h 828 float 1 0 U b4587cd4 frag u_view 832 mat4 1 0 U b4587cd4 frag u_tint 896 vec3 1 0 U b4587cd4 frag u_rough_scale 908 float 1 0 U b4587cd4 frag u_emissive 912 float 1 0 U b4587cd4 frag u_cull 916 float 1 0 T b4587cd4 u_arm 2 -T b4587cd4 u_brdf 3 -T b4587cd4 u_diff 4 -T b4587cd4 u_irradiance 5 -T b4587cd4 u_nrm 6 -T b4587cd4 u_prefilter 7 -T b4587cd4 u_shadow 8 -T b4587cd4 u_tershadow 9 -T b4587cd4 u_ts_height 10 +T b4587cd4 u_blade_tex 3 +T b4587cd4 u_brdf 4 +T b4587cd4 u_diff 5 +T b4587cd4 u_irradiance 6 +T b4587cd4 u_nrm 7 +T b4587cd4 u_prefilter 8 +T b4587cd4 u_shadow 9 +T b4587cd4 u_tershadow 10 +T b4587cd4 u_ts_height 11 P 4dda406a model.vert model.frag #define FOLIAGE;#define WIND;#define EQ_PASS; B 4dda406a vert 0 236 U 4dda406a vert u_view 0 mat4 1 0 @@ -1714,28 +1759,30 @@ U 4dda406a frag u_hand_pos 736 vec3 1 0 U 4dda406a frag u_hand_color 752 vec3 1 0 U 4dda406a frag u_hand_dir 768 vec3 1 0 U 4dda406a frag u_hand_cone 780 float 1 0 -U 4dda406a frag u_ts_origin 784 vec2 1 0 -U 4dda406a frag u_ts_half 792 float 1 0 -U 4dda406a frag u_ts_on 796 float 1 0 -U 4dda406a frag u_force_cascade 800 int 1 0 -U 4dda406a frag u_cloud_shadow 804 float 1 0 -U 4dda406a frag u_time 808 float 1 0 -U 4dda406a frag u_fog_inscatter 812 float 1 0 -U 4dda406a frag u_fog_desat 816 float 1 0 -U 4dda406a frag u_model_h 820 float 1 0 +U 4dda406a frag u_hand_reach 784 float 1 0 +U 4dda406a frag u_ts_origin 792 vec2 1 0 +U 4dda406a frag u_ts_half 800 float 1 0 +U 4dda406a frag u_ts_on 804 float 1 0 +U 4dda406a frag u_force_cascade 808 int 1 0 +U 4dda406a frag u_cloud_shadow 812 float 1 0 +U 4dda406a frag u_time 816 float 1 0 +U 4dda406a frag u_fog_inscatter 820 float 1 0 +U 4dda406a frag u_fog_desat 824 float 1 0 +U 4dda406a frag u_model_h 828 float 1 0 U 4dda406a frag u_view 832 mat4 1 0 U 4dda406a frag u_tint 896 vec3 1 0 U 4dda406a frag u_rough_scale 908 float 1 0 U 4dda406a frag u_emissive 912 float 1 0 T 4dda406a u_arm 2 -T 4dda406a u_brdf 3 -T 4dda406a u_diff 4 -T 4dda406a u_irradiance 5 -T 4dda406a u_nrm 6 -T 4dda406a u_prefilter 7 -T 4dda406a u_shadow 8 -T 4dda406a u_tershadow 9 -T 4dda406a u_ts_height 10 +T 4dda406a u_blade_tex 3 +T 4dda406a u_brdf 4 +T 4dda406a u_diff 5 +T 4dda406a u_irradiance 6 +T 4dda406a u_nrm 7 +T 4dda406a u_prefilter 8 +T 4dda406a u_shadow 9 +T 4dda406a u_tershadow 10 +T 4dda406a u_ts_height 11 P 3b183d8f model.vert model.frag #define FOLIAGE;#define WIND;#define FLOWER; B 3b183d8f vert 0 236 U 3b183d8f vert u_view 0 mat4 1 0 @@ -1782,28 +1829,30 @@ U 3b183d8f frag u_hand_pos 736 vec3 1 0 U 3b183d8f frag u_hand_color 752 vec3 1 0 U 3b183d8f frag u_hand_dir 768 vec3 1 0 U 3b183d8f frag u_hand_cone 780 float 1 0 -U 3b183d8f frag u_ts_origin 784 vec2 1 0 -U 3b183d8f frag u_ts_half 792 float 1 0 -U 3b183d8f frag u_ts_on 796 float 1 0 -U 3b183d8f frag u_force_cascade 800 int 1 0 -U 3b183d8f frag u_cloud_shadow 804 float 1 0 -U 3b183d8f frag u_time 808 float 1 0 -U 3b183d8f frag u_fog_inscatter 812 float 1 0 -U 3b183d8f frag u_fog_desat 816 float 1 0 -U 3b183d8f frag u_model_h 820 float 1 0 +U 3b183d8f frag u_hand_reach 784 float 1 0 +U 3b183d8f frag u_ts_origin 792 vec2 1 0 +U 3b183d8f frag u_ts_half 800 float 1 0 +U 3b183d8f frag u_ts_on 804 float 1 0 +U 3b183d8f frag u_force_cascade 808 int 1 0 +U 3b183d8f frag u_cloud_shadow 812 float 1 0 +U 3b183d8f frag u_time 816 float 1 0 +U 3b183d8f frag u_fog_inscatter 820 float 1 0 +U 3b183d8f frag u_fog_desat 824 float 1 0 +U 3b183d8f frag u_model_h 828 float 1 0 U 3b183d8f frag u_view 832 mat4 1 0 U 3b183d8f frag u_tint 896 vec3 1 0 U 3b183d8f frag u_rough_scale 908 float 1 0 U 3b183d8f frag u_emissive 912 float 1 0 T 3b183d8f u_arm 2 -T 3b183d8f u_brdf 3 -T 3b183d8f u_diff 4 -T 3b183d8f u_irradiance 5 -T 3b183d8f u_nrm 6 -T 3b183d8f u_prefilter 7 -T 3b183d8f u_shadow 8 -T 3b183d8f u_tershadow 9 -T 3b183d8f u_ts_height 10 +T 3b183d8f u_blade_tex 3 +T 3b183d8f u_brdf 4 +T 3b183d8f u_diff 5 +T 3b183d8f u_irradiance 6 +T 3b183d8f u_nrm 7 +T 3b183d8f u_prefilter 8 +T 3b183d8f u_shadow 9 +T 3b183d8f u_tershadow 10 +T 3b183d8f u_ts_height 11 P 79b77ed9 model.vert model.frag #define SHADOW_PASS;#define WIND;#define CARD; B 79b77ed9 vert 0 236 U 79b77ed9 vert u_view 0 mat4 1 0 @@ -1850,29 +1899,31 @@ U 79b77ed9 frag u_hand_pos 736 vec3 1 0 U 79b77ed9 frag u_hand_color 752 vec3 1 0 U 79b77ed9 frag u_hand_dir 768 vec3 1 0 U 79b77ed9 frag u_hand_cone 780 float 1 0 -U 79b77ed9 frag u_ts_origin 784 vec2 1 0 -U 79b77ed9 frag u_ts_half 792 float 1 0 -U 79b77ed9 frag u_ts_on 796 float 1 0 -U 79b77ed9 frag u_force_cascade 800 int 1 0 -U 79b77ed9 frag u_cloud_shadow 804 float 1 0 -U 79b77ed9 frag u_time 808 float 1 0 -U 79b77ed9 frag u_fog_inscatter 812 float 1 0 -U 79b77ed9 frag u_fog_desat 816 float 1 0 -U 79b77ed9 frag u_model_h 820 float 1 0 +U 79b77ed9 frag u_hand_reach 784 float 1 0 +U 79b77ed9 frag u_ts_origin 792 vec2 1 0 +U 79b77ed9 frag u_ts_half 800 float 1 0 +U 79b77ed9 frag u_ts_on 804 float 1 0 +U 79b77ed9 frag u_force_cascade 808 int 1 0 +U 79b77ed9 frag u_cloud_shadow 812 float 1 0 +U 79b77ed9 frag u_time 816 float 1 0 +U 79b77ed9 frag u_fog_inscatter 820 float 1 0 +U 79b77ed9 frag u_fog_desat 824 float 1 0 +U 79b77ed9 frag u_model_h 828 float 1 0 U 79b77ed9 frag u_view 832 mat4 1 0 U 79b77ed9 frag u_tint 896 vec3 1 0 U 79b77ed9 frag u_rough_scale 908 float 1 0 U 79b77ed9 frag u_emissive 912 float 1 0 U 79b77ed9 frag u_cull 916 float 1 0 T 79b77ed9 u_arm 2 -T 79b77ed9 u_brdf 3 -T 79b77ed9 u_diff 4 -T 79b77ed9 u_irradiance 5 -T 79b77ed9 u_nrm 6 -T 79b77ed9 u_prefilter 7 -T 79b77ed9 u_shadow 8 -T 79b77ed9 u_tershadow 9 -T 79b77ed9 u_ts_height 10 +T 79b77ed9 u_blade_tex 3 +T 79b77ed9 u_brdf 4 +T 79b77ed9 u_diff 5 +T 79b77ed9 u_irradiance 6 +T 79b77ed9 u_nrm 7 +T 79b77ed9 u_prefilter 8 +T 79b77ed9 u_shadow 9 +T 79b77ed9 u_tershadow 10 +T 79b77ed9 u_ts_height 11 P b9fc2041 model.vert model.frag #define WIND; B b9fc2041 vert 0 236 U b9fc2041 vert u_view 0 mat4 1 0 @@ -1919,28 +1970,30 @@ U b9fc2041 frag u_hand_pos 736 vec3 1 0 U b9fc2041 frag u_hand_color 752 vec3 1 0 U b9fc2041 frag u_hand_dir 768 vec3 1 0 U b9fc2041 frag u_hand_cone 780 float 1 0 -U b9fc2041 frag u_ts_origin 784 vec2 1 0 -U b9fc2041 frag u_ts_half 792 float 1 0 -U b9fc2041 frag u_ts_on 796 float 1 0 -U b9fc2041 frag u_force_cascade 800 int 1 0 -U b9fc2041 frag u_cloud_shadow 804 float 1 0 -U b9fc2041 frag u_time 808 float 1 0 -U b9fc2041 frag u_fog_inscatter 812 float 1 0 -U b9fc2041 frag u_fog_desat 816 float 1 0 -U b9fc2041 frag u_model_h 820 float 1 0 +U b9fc2041 frag u_hand_reach 784 float 1 0 +U b9fc2041 frag u_ts_origin 792 vec2 1 0 +U b9fc2041 frag u_ts_half 800 float 1 0 +U b9fc2041 frag u_ts_on 804 float 1 0 +U b9fc2041 frag u_force_cascade 808 int 1 0 +U b9fc2041 frag u_cloud_shadow 812 float 1 0 +U b9fc2041 frag u_time 816 float 1 0 +U b9fc2041 frag u_fog_inscatter 820 float 1 0 +U b9fc2041 frag u_fog_desat 824 float 1 0 +U b9fc2041 frag u_model_h 828 float 1 0 U b9fc2041 frag u_view 832 mat4 1 0 U b9fc2041 frag u_tint 896 vec3 1 0 U b9fc2041 frag u_rough_scale 908 float 1 0 U b9fc2041 frag u_emissive 912 float 1 0 T b9fc2041 u_arm 2 -T b9fc2041 u_brdf 3 -T b9fc2041 u_diff 4 -T b9fc2041 u_irradiance 5 -T b9fc2041 u_nrm 6 -T b9fc2041 u_prefilter 7 -T b9fc2041 u_shadow 8 -T b9fc2041 u_tershadow 9 -T b9fc2041 u_ts_height 10 +T b9fc2041 u_blade_tex 3 +T b9fc2041 u_brdf 4 +T b9fc2041 u_diff 5 +T b9fc2041 u_irradiance 6 +T b9fc2041 u_nrm 7 +T b9fc2041 u_prefilter 8 +T b9fc2041 u_shadow 9 +T b9fc2041 u_tershadow 10 +T b9fc2041 u_ts_height 11 P f34dce08 model.vert shadow.frag #define SHADOW_PASS; B f34dce08 vert 0 236 U f34dce08 vert u_view 0 mat4 1 0 @@ -1960,7 +2013,7 @@ I f34dce08 a_pos 0 vec3 I f34dce08 i_pos 3 vec4 I f34dce08 a_nrm 1 vec3 I f34dce08 a_uv 2 vec2 -B f34dce08 frag 0 820 +B f34dce08 frag 0 828 U f34dce08 frag u_cascade_vp 0 mat4 5 64 U f34dce08 frag u_cascade_split 320 float 5 16 U f34dce08 frag u_cascade_range 400 float 5 16 @@ -1987,14 +2040,15 @@ U f34dce08 frag u_hand_pos 736 vec3 1 0 U f34dce08 frag u_hand_color 752 vec3 1 0 U f34dce08 frag u_hand_dir 768 vec3 1 0 U f34dce08 frag u_hand_cone 780 float 1 0 -U f34dce08 frag u_ts_origin 784 vec2 1 0 -U f34dce08 frag u_ts_half 792 float 1 0 -U f34dce08 frag u_ts_on 796 float 1 0 -U f34dce08 frag u_force_cascade 800 int 1 0 -U f34dce08 frag u_cloud_shadow 804 float 1 0 -U f34dce08 frag u_time 808 float 1 0 -U f34dce08 frag u_fog_inscatter 812 float 1 0 -U f34dce08 frag u_fog_desat 816 float 1 0 +U f34dce08 frag u_hand_reach 784 float 1 0 +U f34dce08 frag u_ts_origin 792 vec2 1 0 +U f34dce08 frag u_ts_half 800 float 1 0 +U f34dce08 frag u_ts_on 804 float 1 0 +U f34dce08 frag u_force_cascade 808 int 1 0 +U f34dce08 frag u_cloud_shadow 812 float 1 0 +U f34dce08 frag u_time 816 float 1 0 +U f34dce08 frag u_fog_inscatter 820 float 1 0 +U f34dce08 frag u_fog_desat 824 float 1 0 T f34dce08 u_brdf 2 T f34dce08 u_diff 3 T f34dce08 u_irradiance 4 @@ -2021,7 +2075,7 @@ I 512004a1 a_pos 0 vec3 I 512004a1 i_pos 3 vec4 I 512004a1 a_nrm 1 vec3 I 512004a1 a_uv 2 vec2 -B 512004a1 frag 0 820 +B 512004a1 frag 0 828 U 512004a1 frag u_cascade_vp 0 mat4 5 64 U 512004a1 frag u_cascade_split 320 float 5 16 U 512004a1 frag u_cascade_range 400 float 5 16 @@ -2048,14 +2102,15 @@ U 512004a1 frag u_hand_pos 736 vec3 1 0 U 512004a1 frag u_hand_color 752 vec3 1 0 U 512004a1 frag u_hand_dir 768 vec3 1 0 U 512004a1 frag u_hand_cone 780 float 1 0 -U 512004a1 frag u_ts_origin 784 vec2 1 0 -U 512004a1 frag u_ts_half 792 float 1 0 -U 512004a1 frag u_ts_on 796 float 1 0 -U 512004a1 frag u_force_cascade 800 int 1 0 -U 512004a1 frag u_cloud_shadow 804 float 1 0 -U 512004a1 frag u_time 808 float 1 0 -U 512004a1 frag u_fog_inscatter 812 float 1 0 -U 512004a1 frag u_fog_desat 816 float 1 0 +U 512004a1 frag u_hand_reach 784 float 1 0 +U 512004a1 frag u_ts_origin 792 vec2 1 0 +U 512004a1 frag u_ts_half 800 float 1 0 +U 512004a1 frag u_ts_on 804 float 1 0 +U 512004a1 frag u_force_cascade 808 int 1 0 +U 512004a1 frag u_cloud_shadow 812 float 1 0 +U 512004a1 frag u_time 816 float 1 0 +U 512004a1 frag u_fog_inscatter 820 float 1 0 +U 512004a1 frag u_fog_desat 824 float 1 0 T 512004a1 u_brdf 2 T 512004a1 u_diff 3 T 512004a1 u_irradiance 4 @@ -2082,7 +2137,7 @@ I b964507f a_pos 0 vec3 I b964507f i_pos 3 vec4 I b964507f a_nrm 1 vec3 I b964507f a_uv 2 vec2 -B b964507f frag 0 820 +B b964507f frag 0 828 U b964507f frag u_cascade_vp 0 mat4 5 64 U b964507f frag u_cascade_split 320 float 5 16 U b964507f frag u_cascade_range 400 float 5 16 @@ -2109,14 +2164,15 @@ U b964507f frag u_hand_pos 736 vec3 1 0 U b964507f frag u_hand_color 752 vec3 1 0 U b964507f frag u_hand_dir 768 vec3 1 0 U b964507f frag u_hand_cone 780 float 1 0 -U b964507f frag u_ts_origin 784 vec2 1 0 -U b964507f frag u_ts_half 792 float 1 0 -U b964507f frag u_ts_on 796 float 1 0 -U b964507f frag u_force_cascade 800 int 1 0 -U b964507f frag u_cloud_shadow 804 float 1 0 -U b964507f frag u_time 808 float 1 0 -U b964507f frag u_fog_inscatter 812 float 1 0 -U b964507f frag u_fog_desat 816 float 1 0 +U b964507f frag u_hand_reach 784 float 1 0 +U b964507f frag u_ts_origin 792 vec2 1 0 +U b964507f frag u_ts_half 800 float 1 0 +U b964507f frag u_ts_on 804 float 1 0 +U b964507f frag u_force_cascade 808 int 1 0 +U b964507f frag u_cloud_shadow 812 float 1 0 +U b964507f frag u_time 816 float 1 0 +U b964507f frag u_fog_inscatter 820 float 1 0 +U b964507f frag u_fog_desat 824 float 1 0 T b964507f u_brdf 2 T b964507f u_diff 3 T b964507f u_irradiance 4 @@ -2130,7 +2186,7 @@ U 1b654972 vert u_screen 0 vec2 1 0 I 1b654972 a_pos 0 vec2 I 1b654972 a_uv 1 vec2 I 1b654972 a_col 2 vec4 -B 1b654972 frag 0 820 +B 1b654972 frag 0 828 U 1b654972 frag u_cascade_vp 0 mat4 5 64 U 1b654972 frag u_cascade_split 320 float 5 16 U 1b654972 frag u_cascade_range 400 float 5 16 @@ -2157,14 +2213,15 @@ U 1b654972 frag u_hand_pos 736 vec3 1 0 U 1b654972 frag u_hand_color 752 vec3 1 0 U 1b654972 frag u_hand_dir 768 vec3 1 0 U 1b654972 frag u_hand_cone 780 float 1 0 -U 1b654972 frag u_ts_origin 784 vec2 1 0 -U 1b654972 frag u_ts_half 792 float 1 0 -U 1b654972 frag u_ts_on 796 float 1 0 -U 1b654972 frag u_force_cascade 800 int 1 0 -U 1b654972 frag u_cloud_shadow 804 float 1 0 -U 1b654972 frag u_time 808 float 1 0 -U 1b654972 frag u_fog_inscatter 812 float 1 0 -U 1b654972 frag u_fog_desat 816 float 1 0 +U 1b654972 frag u_hand_reach 784 float 1 0 +U 1b654972 frag u_ts_origin 792 vec2 1 0 +U 1b654972 frag u_ts_half 800 float 1 0 +U 1b654972 frag u_ts_on 804 float 1 0 +U 1b654972 frag u_force_cascade 808 int 1 0 +U 1b654972 frag u_cloud_shadow 812 float 1 0 +U 1b654972 frag u_time 816 float 1 0 +U 1b654972 frag u_fog_inscatter 820 float 1 0 +U 1b654972 frag u_fog_desat 824 float 1 0 T 1b654972 u_brdf 2 T 1b654972 u_font 3 T 1b654972 u_irradiance 4 @@ -2179,7 +2236,7 @@ U e86f78e8 vert u_screen 0 vec2 1 0 I e86f78e8 a_pos 0 vec2 I e86f78e8 a_uv 1 vec2 I e86f78e8 a_col 2 vec4 -B e86f78e8 frag 1 828 +B e86f78e8 frag 1 836 U e86f78e8 frag u_cascade_vp 0 mat4 5 64 U e86f78e8 frag u_cascade_split 320 float 5 16 U e86f78e8 frag u_cascade_range 400 float 5 16 @@ -2206,16 +2263,17 @@ U e86f78e8 frag u_hand_pos 736 vec3 1 0 U e86f78e8 frag u_hand_color 752 vec3 1 0 U e86f78e8 frag u_hand_dir 768 vec3 1 0 U e86f78e8 frag u_hand_cone 780 float 1 0 -U e86f78e8 frag u_ts_origin 784 vec2 1 0 -U e86f78e8 frag u_ts_half 792 float 1 0 -U e86f78e8 frag u_ts_on 796 float 1 0 -U e86f78e8 frag u_force_cascade 800 int 1 0 -U e86f78e8 frag u_cloud_shadow 804 float 1 0 -U e86f78e8 frag u_time 808 float 1 0 -U e86f78e8 frag u_fog_inscatter 812 float 1 0 -U e86f78e8 frag u_fog_desat 816 float 1 0 -U e86f78e8 frag u_hdr_paper 820 float 1 0 -U e86f78e8 frag u_hdr_scale 824 float 1 0 +U e86f78e8 frag u_hand_reach 784 float 1 0 +U e86f78e8 frag u_ts_origin 792 vec2 1 0 +U e86f78e8 frag u_ts_half 800 float 1 0 +U e86f78e8 frag u_ts_on 804 float 1 0 +U e86f78e8 frag u_force_cascade 808 int 1 0 +U e86f78e8 frag u_cloud_shadow 812 float 1 0 +U e86f78e8 frag u_time 816 float 1 0 +U e86f78e8 frag u_fog_inscatter 820 float 1 0 +U e86f78e8 frag u_fog_desat 824 float 1 0 +U e86f78e8 frag u_hdr_paper 828 float 1 0 +U e86f78e8 frag u_hdr_scale 832 float 1 0 T e86f78e8 u_brdf 2 T e86f78e8 u_font 3 T e86f78e8 u_irradiance 4 @@ -2264,28 +2322,30 @@ U 1fde9cd2 frag u_hand_pos 736 vec3 1 0 U 1fde9cd2 frag u_hand_color 752 vec3 1 0 U 1fde9cd2 frag u_hand_dir 768 vec3 1 0 U 1fde9cd2 frag u_hand_cone 780 float 1 0 -U 1fde9cd2 frag u_ts_origin 784 vec2 1 0 -U 1fde9cd2 frag u_ts_half 792 float 1 0 -U 1fde9cd2 frag u_ts_on 796 float 1 0 -U 1fde9cd2 frag u_force_cascade 800 int 1 0 -U 1fde9cd2 frag u_cloud_shadow 804 float 1 0 -U 1fde9cd2 frag u_time 808 float 1 0 -U 1fde9cd2 frag u_fog_inscatter 812 float 1 0 -U 1fde9cd2 frag u_fog_desat 816 float 1 0 -U 1fde9cd2 frag u_model_h 820 float 1 0 +U 1fde9cd2 frag u_hand_reach 784 float 1 0 +U 1fde9cd2 frag u_ts_origin 792 vec2 1 0 +U 1fde9cd2 frag u_ts_half 800 float 1 0 +U 1fde9cd2 frag u_ts_on 804 float 1 0 +U 1fde9cd2 frag u_force_cascade 808 int 1 0 +U 1fde9cd2 frag u_cloud_shadow 812 float 1 0 +U 1fde9cd2 frag u_time 816 float 1 0 +U 1fde9cd2 frag u_fog_inscatter 820 float 1 0 +U 1fde9cd2 frag u_fog_desat 824 float 1 0 +U 1fde9cd2 frag u_model_h 828 float 1 0 U 1fde9cd2 frag u_view 832 mat4 1 0 U 1fde9cd2 frag u_tint 896 vec3 1 0 U 1fde9cd2 frag u_rough_scale 908 float 1 0 U 1fde9cd2 frag u_emissive 912 float 1 0 T 1fde9cd2 u_arm 2 -T 1fde9cd2 u_brdf 3 -T 1fde9cd2 u_diff 4 -T 1fde9cd2 u_irradiance 5 -T 1fde9cd2 u_nrm 6 -T 1fde9cd2 u_prefilter 7 -T 1fde9cd2 u_shadow 8 -T 1fde9cd2 u_tershadow 9 -T 1fde9cd2 u_ts_height 10 +T 1fde9cd2 u_blade_tex 3 +T 1fde9cd2 u_brdf 4 +T 1fde9cd2 u_diff 5 +T 1fde9cd2 u_irradiance 6 +T 1fde9cd2 u_nrm 7 +T 1fde9cd2 u_prefilter 8 +T 1fde9cd2 u_shadow 9 +T 1fde9cd2 u_tershadow 10 +T 1fde9cd2 u_ts_height 11 P a5ad521e skin.vert model.frag #define ALPHA_TEST; B a5ad521e vert 0 3344 U a5ad521e vert u_model 0 mat4 1 0 @@ -2326,28 +2386,30 @@ U a5ad521e frag u_hand_pos 736 vec3 1 0 U a5ad521e frag u_hand_color 752 vec3 1 0 U a5ad521e frag u_hand_dir 768 vec3 1 0 U a5ad521e frag u_hand_cone 780 float 1 0 -U a5ad521e frag u_ts_origin 784 vec2 1 0 -U a5ad521e frag u_ts_half 792 float 1 0 -U a5ad521e frag u_ts_on 796 float 1 0 -U a5ad521e frag u_force_cascade 800 int 1 0 -U a5ad521e frag u_cloud_shadow 804 float 1 0 -U a5ad521e frag u_time 808 float 1 0 -U a5ad521e frag u_fog_inscatter 812 float 1 0 -U a5ad521e frag u_fog_desat 816 float 1 0 -U a5ad521e frag u_model_h 820 float 1 0 +U a5ad521e frag u_hand_reach 784 float 1 0 +U a5ad521e frag u_ts_origin 792 vec2 1 0 +U a5ad521e frag u_ts_half 800 float 1 0 +U a5ad521e frag u_ts_on 804 float 1 0 +U a5ad521e frag u_force_cascade 808 int 1 0 +U a5ad521e frag u_cloud_shadow 812 float 1 0 +U a5ad521e frag u_time 816 float 1 0 +U a5ad521e frag u_fog_inscatter 820 float 1 0 +U a5ad521e frag u_fog_desat 824 float 1 0 +U a5ad521e frag u_model_h 828 float 1 0 U a5ad521e frag u_view 832 mat4 1 0 U a5ad521e frag u_tint 896 vec3 1 0 U a5ad521e frag u_rough_scale 908 float 1 0 U a5ad521e frag u_emissive 912 float 1 0 T a5ad521e u_arm 2 -T a5ad521e u_brdf 3 -T a5ad521e u_diff 4 -T a5ad521e u_irradiance 5 -T a5ad521e u_nrm 6 -T a5ad521e u_prefilter 7 -T a5ad521e u_shadow 8 -T a5ad521e u_tershadow 9 -T a5ad521e u_ts_height 10 +T a5ad521e u_blade_tex 3 +T a5ad521e u_brdf 4 +T a5ad521e u_diff 5 +T a5ad521e u_irradiance 6 +T a5ad521e u_nrm 7 +T a5ad521e u_prefilter 8 +T a5ad521e u_shadow 9 +T a5ad521e u_tershadow 10 +T a5ad521e u_ts_height 11 P 9068df1c skin.vert outline.frag #define OUTLINE; B 9068df1c vert 0 3348 U 9068df1c vert u_model 0 mat4 1 0 @@ -2389,14 +2451,15 @@ U 9068df1c frag u_hand_pos 736 vec3 1 0 U 9068df1c frag u_hand_color 752 vec3 1 0 U 9068df1c frag u_hand_dir 768 vec3 1 0 U 9068df1c frag u_hand_cone 780 float 1 0 -U 9068df1c frag u_ts_origin 784 vec2 1 0 -U 9068df1c frag u_ts_half 792 float 1 0 -U 9068df1c frag u_ts_on 796 float 1 0 -U 9068df1c frag u_force_cascade 800 int 1 0 -U 9068df1c frag u_cloud_shadow 804 float 1 0 -U 9068df1c frag u_time 808 float 1 0 -U 9068df1c frag u_fog_inscatter 812 float 1 0 -U 9068df1c frag u_fog_desat 816 float 1 0 +U 9068df1c frag u_hand_reach 784 float 1 0 +U 9068df1c frag u_ts_origin 792 vec2 1 0 +U 9068df1c frag u_ts_half 800 float 1 0 +U 9068df1c frag u_ts_on 804 float 1 0 +U 9068df1c frag u_force_cascade 808 int 1 0 +U 9068df1c frag u_cloud_shadow 812 float 1 0 +U 9068df1c frag u_time 816 float 1 0 +U 9068df1c frag u_fog_inscatter 820 float 1 0 +U 9068df1c frag u_fog_desat 824 float 1 0 U 9068df1c frag u_outline_col 832 vec3 1 0 T 9068df1c u_brdf 2 T 9068df1c u_diff 3 @@ -2446,14 +2509,15 @@ U e9b6300c frag u_hand_pos 736 vec3 1 0 U e9b6300c frag u_hand_color 752 vec3 1 0 U e9b6300c frag u_hand_dir 768 vec3 1 0 U e9b6300c frag u_hand_cone 780 float 1 0 -U e9b6300c frag u_ts_origin 784 vec2 1 0 -U e9b6300c frag u_ts_half 792 float 1 0 -U e9b6300c frag u_ts_on 796 float 1 0 -U e9b6300c frag u_force_cascade 800 int 1 0 -U e9b6300c frag u_cloud_shadow 804 float 1 0 -U e9b6300c frag u_time 808 float 1 0 -U e9b6300c frag u_fog_inscatter 812 float 1 0 -U e9b6300c frag u_fog_desat 816 float 1 0 +U e9b6300c frag u_hand_reach 784 float 1 0 +U e9b6300c frag u_ts_origin 792 vec2 1 0 +U e9b6300c frag u_ts_half 800 float 1 0 +U e9b6300c frag u_ts_on 804 float 1 0 +U e9b6300c frag u_force_cascade 808 int 1 0 +U e9b6300c frag u_cloud_shadow 812 float 1 0 +U e9b6300c frag u_time 816 float 1 0 +U e9b6300c frag u_fog_inscatter 820 float 1 0 +U e9b6300c frag u_fog_desat 824 float 1 0 U e9b6300c frag u_outline_col 832 vec3 1 0 T e9b6300c u_brdf 2 T e9b6300c u_diff 3 @@ -2475,7 +2539,7 @@ I b79a1f4e a_joints 5 vec4 I b79a1f4e a_pos 0 vec3 I b79a1f4e a_nrm 1 vec3 I b79a1f4e a_uv 2 vec2 -B b79a1f4e frag 0 820 +B b79a1f4e frag 0 828 U b79a1f4e frag u_cascade_vp 0 mat4 5 64 U b79a1f4e frag u_cascade_split 320 float 5 16 U b79a1f4e frag u_cascade_range 400 float 5 16 @@ -2502,14 +2566,15 @@ U b79a1f4e frag u_hand_pos 736 vec3 1 0 U b79a1f4e frag u_hand_color 752 vec3 1 0 U b79a1f4e frag u_hand_dir 768 vec3 1 0 U b79a1f4e frag u_hand_cone 780 float 1 0 -U b79a1f4e frag u_ts_origin 784 vec2 1 0 -U b79a1f4e frag u_ts_half 792 float 1 0 -U b79a1f4e frag u_ts_on 796 float 1 0 -U b79a1f4e frag u_force_cascade 800 int 1 0 -U b79a1f4e frag u_cloud_shadow 804 float 1 0 -U b79a1f4e frag u_time 808 float 1 0 -U b79a1f4e frag u_fog_inscatter 812 float 1 0 -U b79a1f4e frag u_fog_desat 816 float 1 0 +U b79a1f4e frag u_hand_reach 784 float 1 0 +U b79a1f4e frag u_ts_origin 792 vec2 1 0 +U b79a1f4e frag u_ts_half 800 float 1 0 +U b79a1f4e frag u_ts_on 804 float 1 0 +U b79a1f4e frag u_force_cascade 808 int 1 0 +U b79a1f4e frag u_cloud_shadow 812 float 1 0 +U b79a1f4e frag u_time 816 float 1 0 +U b79a1f4e frag u_fog_inscatter 820 float 1 0 +U b79a1f4e frag u_fog_desat 824 float 1 0 T b79a1f4e u_brdf 2 T b79a1f4e u_diff 3 T b79a1f4e u_irradiance 4 @@ -2530,7 +2595,7 @@ I a64015f2 a_joints 5 vec4 I a64015f2 a_pos 0 vec3 I a64015f2 a_nrm 1 vec3 I a64015f2 a_uv 2 vec2 -B a64015f2 frag 0 820 +B a64015f2 frag 0 828 U a64015f2 frag u_cascade_vp 0 mat4 5 64 U a64015f2 frag u_cascade_split 320 float 5 16 U a64015f2 frag u_cascade_range 400 float 5 16 @@ -2557,14 +2622,15 @@ U a64015f2 frag u_hand_pos 736 vec3 1 0 U a64015f2 frag u_hand_color 752 vec3 1 0 U a64015f2 frag u_hand_dir 768 vec3 1 0 U a64015f2 frag u_hand_cone 780 float 1 0 -U a64015f2 frag u_ts_origin 784 vec2 1 0 -U a64015f2 frag u_ts_half 792 float 1 0 -U a64015f2 frag u_ts_on 796 float 1 0 -U a64015f2 frag u_force_cascade 800 int 1 0 -U a64015f2 frag u_cloud_shadow 804 float 1 0 -U a64015f2 frag u_time 808 float 1 0 -U a64015f2 frag u_fog_inscatter 812 float 1 0 -U a64015f2 frag u_fog_desat 816 float 1 0 +U a64015f2 frag u_hand_reach 784 float 1 0 +U a64015f2 frag u_ts_origin 792 vec2 1 0 +U a64015f2 frag u_ts_half 800 float 1 0 +U a64015f2 frag u_ts_on 804 float 1 0 +U a64015f2 frag u_force_cascade 808 int 1 0 +U a64015f2 frag u_cloud_shadow 812 float 1 0 +U a64015f2 frag u_time 816 float 1 0 +U a64015f2 frag u_fog_inscatter 820 float 1 0 +U a64015f2 frag u_fog_desat 824 float 1 0 T a64015f2 u_brdf 2 T a64015f2 u_diff 3 T a64015f2 u_irradiance 4 @@ -2610,22 +2676,23 @@ U 2e2908c8 frag u_hand_pos 736 vec3 1 0 U 2e2908c8 frag u_hand_color 752 vec3 1 0 U 2e2908c8 frag u_hand_dir 768 vec3 1 0 U 2e2908c8 frag u_hand_cone 780 float 1 0 -U 2e2908c8 frag u_ts_origin 784 vec2 1 0 -U 2e2908c8 frag u_ts_half 792 float 1 0 -U 2e2908c8 frag u_ts_on 796 float 1 0 -U 2e2908c8 frag u_force_cascade 800 int 1 0 -U 2e2908c8 frag u_cloud_shadow 804 float 1 0 -U 2e2908c8 frag u_time 808 float 1 0 -U 2e2908c8 frag u_fog_inscatter 812 float 1 0 -U 2e2908c8 frag u_fog_desat 816 float 1 0 -U 2e2908c8 frag u_half 820 float 1 0 -U 2e2908c8 frag u_texel 824 float 1 0 -U 2e2908c8 frag u_ortho_on 828 float 1 0 -U 2e2908c8 frag u_carpet_on 832 float 1 0 -U 2e2908c8 frag u_snow_line 836 float 1 0 -U 2e2908c8 frag u_lake_level 840 float 1 0 -U 2e2908c8 frag u_wet 844 float 1 0 -U 2e2908c8 frag u_sea_level 848 float 1 0 +U 2e2908c8 frag u_hand_reach 784 float 1 0 +U 2e2908c8 frag u_ts_origin 792 vec2 1 0 +U 2e2908c8 frag u_ts_half 800 float 1 0 +U 2e2908c8 frag u_ts_on 804 float 1 0 +U 2e2908c8 frag u_force_cascade 808 int 1 0 +U 2e2908c8 frag u_cloud_shadow 812 float 1 0 +U 2e2908c8 frag u_time 816 float 1 0 +U 2e2908c8 frag u_fog_inscatter 820 float 1 0 +U 2e2908c8 frag u_fog_desat 824 float 1 0 +U 2e2908c8 frag u_half 828 float 1 0 +U 2e2908c8 frag u_texel 832 float 1 0 +U 2e2908c8 frag u_ortho_on 836 float 1 0 +U 2e2908c8 frag u_carpet_on 840 float 1 0 +U 2e2908c8 frag u_snow_line 844 float 1 0 +U 2e2908c8 frag u_lake_level 848 float 1 0 +U 2e2908c8 frag u_wet 852 float 1 0 +U 2e2908c8 frag u_sea_level 856 float 1 0 U 2e2908c8 frag u_lake 864 vec4 1 0 U 2e2908c8 frag u_origin 880 vec2 1 0 U 2e2908c8 frag u_view 896 mat4 1 0 @@ -2686,22 +2753,23 @@ U 1f95f31b frag u_hand_pos 736 vec3 1 0 U 1f95f31b frag u_hand_color 752 vec3 1 0 U 1f95f31b frag u_hand_dir 768 vec3 1 0 U 1f95f31b frag u_hand_cone 780 float 1 0 -U 1f95f31b frag u_ts_origin 784 vec2 1 0 -U 1f95f31b frag u_ts_half 792 float 1 0 -U 1f95f31b frag u_ts_on 796 float 1 0 -U 1f95f31b frag u_force_cascade 800 int 1 0 -U 1f95f31b frag u_cloud_shadow 804 float 1 0 -U 1f95f31b frag u_time 808 float 1 0 -U 1f95f31b frag u_fog_inscatter 812 float 1 0 -U 1f95f31b frag u_fog_desat 816 float 1 0 -U 1f95f31b frag u_half 820 float 1 0 -U 1f95f31b frag u_texel 824 float 1 0 -U 1f95f31b frag u_ortho_on 828 float 1 0 -U 1f95f31b frag u_carpet_on 832 float 1 0 -U 1f95f31b frag u_snow_line 836 float 1 0 -U 1f95f31b frag u_lake_level 840 float 1 0 -U 1f95f31b frag u_wet 844 float 1 0 -U 1f95f31b frag u_sea_level 848 float 1 0 +U 1f95f31b frag u_hand_reach 784 float 1 0 +U 1f95f31b frag u_ts_origin 792 vec2 1 0 +U 1f95f31b frag u_ts_half 800 float 1 0 +U 1f95f31b frag u_ts_on 804 float 1 0 +U 1f95f31b frag u_force_cascade 808 int 1 0 +U 1f95f31b frag u_cloud_shadow 812 float 1 0 +U 1f95f31b frag u_time 816 float 1 0 +U 1f95f31b frag u_fog_inscatter 820 float 1 0 +U 1f95f31b frag u_fog_desat 824 float 1 0 +U 1f95f31b frag u_half 828 float 1 0 +U 1f95f31b frag u_texel 832 float 1 0 +U 1f95f31b frag u_ortho_on 836 float 1 0 +U 1f95f31b frag u_carpet_on 840 float 1 0 +U 1f95f31b frag u_snow_line 844 float 1 0 +U 1f95f31b frag u_lake_level 848 float 1 0 +U 1f95f31b frag u_wet 852 float 1 0 +U 1f95f31b frag u_sea_level 856 float 1 0 U 1f95f31b frag u_lake 864 vec4 1 0 U 1f95f31b frag u_origin 880 vec2 1 0 U 1f95f31b frag u_view 896 mat4 1 0 @@ -2762,22 +2830,23 @@ U f4382918 frag u_hand_pos 736 vec3 1 0 U f4382918 frag u_hand_color 752 vec3 1 0 U f4382918 frag u_hand_dir 768 vec3 1 0 U f4382918 frag u_hand_cone 780 float 1 0 -U f4382918 frag u_ts_origin 784 vec2 1 0 -U f4382918 frag u_ts_half 792 float 1 0 -U f4382918 frag u_ts_on 796 float 1 0 -U f4382918 frag u_force_cascade 800 int 1 0 -U f4382918 frag u_cloud_shadow 804 float 1 0 -U f4382918 frag u_time 808 float 1 0 -U f4382918 frag u_fog_inscatter 812 float 1 0 -U f4382918 frag u_fog_desat 816 float 1 0 -U f4382918 frag u_half 820 float 1 0 -U f4382918 frag u_texel 824 float 1 0 -U f4382918 frag u_ortho_on 828 float 1 0 -U f4382918 frag u_carpet_on 832 float 1 0 -U f4382918 frag u_snow_line 836 float 1 0 -U f4382918 frag u_lake_level 840 float 1 0 -U f4382918 frag u_wet 844 float 1 0 -U f4382918 frag u_sea_level 848 float 1 0 +U f4382918 frag u_hand_reach 784 float 1 0 +U f4382918 frag u_ts_origin 792 vec2 1 0 +U f4382918 frag u_ts_half 800 float 1 0 +U f4382918 frag u_ts_on 804 float 1 0 +U f4382918 frag u_force_cascade 808 int 1 0 +U f4382918 frag u_cloud_shadow 812 float 1 0 +U f4382918 frag u_time 816 float 1 0 +U f4382918 frag u_fog_inscatter 820 float 1 0 +U f4382918 frag u_fog_desat 824 float 1 0 +U f4382918 frag u_half 828 float 1 0 +U f4382918 frag u_texel 832 float 1 0 +U f4382918 frag u_ortho_on 836 float 1 0 +U f4382918 frag u_carpet_on 840 float 1 0 +U f4382918 frag u_snow_line 844 float 1 0 +U f4382918 frag u_lake_level 848 float 1 0 +U f4382918 frag u_wet 852 float 1 0 +U f4382918 frag u_sea_level 856 float 1 0 U f4382918 frag u_lake 864 vec4 1 0 U f4382918 frag u_origin 880 vec2 1 0 U f4382918 frag u_view 896 mat4 1 0 @@ -2838,22 +2907,23 @@ U f2952361 frag u_hand_pos 736 vec3 1 0 U f2952361 frag u_hand_color 752 vec3 1 0 U f2952361 frag u_hand_dir 768 vec3 1 0 U f2952361 frag u_hand_cone 780 float 1 0 -U f2952361 frag u_ts_origin 784 vec2 1 0 -U f2952361 frag u_ts_half 792 float 1 0 -U f2952361 frag u_ts_on 796 float 1 0 -U f2952361 frag u_force_cascade 800 int 1 0 -U f2952361 frag u_cloud_shadow 804 float 1 0 -U f2952361 frag u_time 808 float 1 0 -U f2952361 frag u_fog_inscatter 812 float 1 0 -U f2952361 frag u_fog_desat 816 float 1 0 -U f2952361 frag u_half 820 float 1 0 -U f2952361 frag u_texel 824 float 1 0 -U f2952361 frag u_ortho_on 828 float 1 0 -U f2952361 frag u_carpet_on 832 float 1 0 -U f2952361 frag u_snow_line 836 float 1 0 -U f2952361 frag u_lake_level 840 float 1 0 -U f2952361 frag u_wet 844 float 1 0 -U f2952361 frag u_sea_level 848 float 1 0 +U f2952361 frag u_hand_reach 784 float 1 0 +U f2952361 frag u_ts_origin 792 vec2 1 0 +U f2952361 frag u_ts_half 800 float 1 0 +U f2952361 frag u_ts_on 804 float 1 0 +U f2952361 frag u_force_cascade 808 int 1 0 +U f2952361 frag u_cloud_shadow 812 float 1 0 +U f2952361 frag u_time 816 float 1 0 +U f2952361 frag u_fog_inscatter 820 float 1 0 +U f2952361 frag u_fog_desat 824 float 1 0 +U f2952361 frag u_half 828 float 1 0 +U f2952361 frag u_texel 832 float 1 0 +U f2952361 frag u_ortho_on 836 float 1 0 +U f2952361 frag u_carpet_on 840 float 1 0 +U f2952361 frag u_snow_line 844 float 1 0 +U f2952361 frag u_lake_level 848 float 1 0 +U f2952361 frag u_wet 852 float 1 0 +U f2952361 frag u_sea_level 856 float 1 0 U f2952361 frag u_lake 864 vec4 1 0 U f2952361 frag u_origin 880 vec2 1 0 U f2952361 frag u_view 896 mat4 1 0 @@ -2914,22 +2984,23 @@ U a0f2dbac frag u_hand_pos 736 vec3 1 0 U a0f2dbac frag u_hand_color 752 vec3 1 0 U a0f2dbac frag u_hand_dir 768 vec3 1 0 U a0f2dbac frag u_hand_cone 780 float 1 0 -U a0f2dbac frag u_ts_origin 784 vec2 1 0 -U a0f2dbac frag u_ts_half 792 float 1 0 -U a0f2dbac frag u_ts_on 796 float 1 0 -U a0f2dbac frag u_force_cascade 800 int 1 0 -U a0f2dbac frag u_cloud_shadow 804 float 1 0 -U a0f2dbac frag u_time 808 float 1 0 -U a0f2dbac frag u_fog_inscatter 812 float 1 0 -U a0f2dbac frag u_fog_desat 816 float 1 0 -U a0f2dbac frag u_half 820 float 1 0 -U a0f2dbac frag u_texel 824 float 1 0 -U a0f2dbac frag u_ortho_on 828 float 1 0 -U a0f2dbac frag u_carpet_on 832 float 1 0 -U a0f2dbac frag u_snow_line 836 float 1 0 -U a0f2dbac frag u_lake_level 840 float 1 0 -U a0f2dbac frag u_wet 844 float 1 0 -U a0f2dbac frag u_sea_level 848 float 1 0 +U a0f2dbac frag u_hand_reach 784 float 1 0 +U a0f2dbac frag u_ts_origin 792 vec2 1 0 +U a0f2dbac frag u_ts_half 800 float 1 0 +U a0f2dbac frag u_ts_on 804 float 1 0 +U a0f2dbac frag u_force_cascade 808 int 1 0 +U a0f2dbac frag u_cloud_shadow 812 float 1 0 +U a0f2dbac frag u_time 816 float 1 0 +U a0f2dbac frag u_fog_inscatter 820 float 1 0 +U a0f2dbac frag u_fog_desat 824 float 1 0 +U a0f2dbac frag u_half 828 float 1 0 +U a0f2dbac frag u_texel 832 float 1 0 +U a0f2dbac frag u_ortho_on 836 float 1 0 +U a0f2dbac frag u_carpet_on 840 float 1 0 +U a0f2dbac frag u_snow_line 844 float 1 0 +U a0f2dbac frag u_lake_level 848 float 1 0 +U a0f2dbac frag u_wet 852 float 1 0 +U a0f2dbac frag u_sea_level 856 float 1 0 U a0f2dbac frag u_lake 864 vec4 1 0 U a0f2dbac frag u_origin 880 vec2 1 0 U a0f2dbac frag u_view 896 mat4 1 0 @@ -2990,22 +3061,23 @@ U 5e4589a1 frag u_hand_pos 736 vec3 1 0 U 5e4589a1 frag u_hand_color 752 vec3 1 0 U 5e4589a1 frag u_hand_dir 768 vec3 1 0 U 5e4589a1 frag u_hand_cone 780 float 1 0 -U 5e4589a1 frag u_ts_origin 784 vec2 1 0 -U 5e4589a1 frag u_ts_half 792 float 1 0 -U 5e4589a1 frag u_ts_on 796 float 1 0 -U 5e4589a1 frag u_force_cascade 800 int 1 0 -U 5e4589a1 frag u_cloud_shadow 804 float 1 0 -U 5e4589a1 frag u_time 808 float 1 0 -U 5e4589a1 frag u_fog_inscatter 812 float 1 0 -U 5e4589a1 frag u_fog_desat 816 float 1 0 -U 5e4589a1 frag u_half 820 float 1 0 -U 5e4589a1 frag u_texel 824 float 1 0 -U 5e4589a1 frag u_ortho_on 828 float 1 0 -U 5e4589a1 frag u_carpet_on 832 float 1 0 -U 5e4589a1 frag u_snow_line 836 float 1 0 -U 5e4589a1 frag u_lake_level 840 float 1 0 -U 5e4589a1 frag u_wet 844 float 1 0 -U 5e4589a1 frag u_sea_level 848 float 1 0 +U 5e4589a1 frag u_hand_reach 784 float 1 0 +U 5e4589a1 frag u_ts_origin 792 vec2 1 0 +U 5e4589a1 frag u_ts_half 800 float 1 0 +U 5e4589a1 frag u_ts_on 804 float 1 0 +U 5e4589a1 frag u_force_cascade 808 int 1 0 +U 5e4589a1 frag u_cloud_shadow 812 float 1 0 +U 5e4589a1 frag u_time 816 float 1 0 +U 5e4589a1 frag u_fog_inscatter 820 float 1 0 +U 5e4589a1 frag u_fog_desat 824 float 1 0 +U 5e4589a1 frag u_half 828 float 1 0 +U 5e4589a1 frag u_texel 832 float 1 0 +U 5e4589a1 frag u_ortho_on 836 float 1 0 +U 5e4589a1 frag u_carpet_on 840 float 1 0 +U 5e4589a1 frag u_snow_line 844 float 1 0 +U 5e4589a1 frag u_lake_level 848 float 1 0 +U 5e4589a1 frag u_wet 852 float 1 0 +U 5e4589a1 frag u_sea_level 856 float 1 0 U 5e4589a1 frag u_lake 864 vec4 1 0 U 5e4589a1 frag u_origin 880 vec2 1 0 U 5e4589a1 frag u_view 896 mat4 1 0 @@ -3066,14 +3138,15 @@ U bf3151c8 frag u_hand_pos 736 vec3 1 0 U bf3151c8 frag u_hand_color 752 vec3 1 0 U bf3151c8 frag u_hand_dir 768 vec3 1 0 U bf3151c8 frag u_hand_cone 780 float 1 0 -U bf3151c8 frag u_ts_origin 784 vec2 1 0 -U bf3151c8 frag u_ts_half 792 float 1 0 -U bf3151c8 frag u_ts_on 796 float 1 0 -U bf3151c8 frag u_force_cascade 800 int 1 0 -U bf3151c8 frag u_cloud_shadow 804 float 1 0 -U bf3151c8 frag u_time 808 float 1 0 -U bf3151c8 frag u_fog_inscatter 812 float 1 0 -U bf3151c8 frag u_fog_desat 816 float 1 0 +U bf3151c8 frag u_hand_reach 784 float 1 0 +U bf3151c8 frag u_ts_origin 792 vec2 1 0 +U bf3151c8 frag u_ts_half 800 float 1 0 +U bf3151c8 frag u_ts_on 804 float 1 0 +U bf3151c8 frag u_force_cascade 808 int 1 0 +U bf3151c8 frag u_cloud_shadow 812 float 1 0 +U bf3151c8 frag u_time 816 float 1 0 +U bf3151c8 frag u_fog_inscatter 820 float 1 0 +U bf3151c8 frag u_fog_desat 824 float 1 0 U bf3151c8 frag u_view 832 mat4 1 0 U bf3151c8 frag u_far_split 896 float 1 0 U bf3151c8 frag u_far_band 900 float 1 0 @@ -3119,14 +3192,15 @@ U 46e2325c frag u_hand_pos 736 vec3 1 0 U 46e2325c frag u_hand_color 752 vec3 1 0 U 46e2325c frag u_hand_dir 768 vec3 1 0 U 46e2325c frag u_hand_cone 780 float 1 0 -U 46e2325c frag u_ts_origin 784 vec2 1 0 -U 46e2325c frag u_ts_half 792 float 1 0 -U 46e2325c frag u_ts_on 796 float 1 0 -U 46e2325c frag u_force_cascade 800 int 1 0 -U 46e2325c frag u_cloud_shadow 804 float 1 0 -U 46e2325c frag u_time 808 float 1 0 -U 46e2325c frag u_fog_inscatter 812 float 1 0 -U 46e2325c frag u_fog_desat 816 float 1 0 +U 46e2325c frag u_hand_reach 784 float 1 0 +U 46e2325c frag u_ts_origin 792 vec2 1 0 +U 46e2325c frag u_ts_half 800 float 1 0 +U 46e2325c frag u_ts_on 804 float 1 0 +U 46e2325c frag u_force_cascade 808 int 1 0 +U 46e2325c frag u_cloud_shadow 812 float 1 0 +U 46e2325c frag u_time 816 float 1 0 +U 46e2325c frag u_fog_inscatter 820 float 1 0 +U 46e2325c frag u_fog_desat 824 float 1 0 U 46e2325c frag u_view 832 mat4 1 0 U 46e2325c frag u_wade 896 vec3 1 0 U 46e2325c frag u_inv_vp 912 mat4 1 0 @@ -3172,14 +3246,15 @@ U 74258189 frag u_hand_pos 736 vec3 1 0 U 74258189 frag u_hand_color 752 vec3 1 0 U 74258189 frag u_hand_dir 768 vec3 1 0 U 74258189 frag u_hand_cone 780 float 1 0 -U 74258189 frag u_ts_origin 784 vec2 1 0 -U 74258189 frag u_ts_half 792 float 1 0 -U 74258189 frag u_ts_on 796 float 1 0 -U 74258189 frag u_force_cascade 800 int 1 0 -U 74258189 frag u_cloud_shadow 804 float 1 0 -U 74258189 frag u_time 808 float 1 0 -U 74258189 frag u_fog_inscatter 812 float 1 0 -U 74258189 frag u_fog_desat 816 float 1 0 +U 74258189 frag u_hand_reach 784 float 1 0 +U 74258189 frag u_ts_origin 792 vec2 1 0 +U 74258189 frag u_ts_half 800 float 1 0 +U 74258189 frag u_ts_on 804 float 1 0 +U 74258189 frag u_force_cascade 808 int 1 0 +U 74258189 frag u_cloud_shadow 812 float 1 0 +U 74258189 frag u_time 816 float 1 0 +U 74258189 frag u_fog_inscatter 820 float 1 0 +U 74258189 frag u_fog_desat 824 float 1 0 U 74258189 frag u_inv_vp 832 mat4 1 0 U 74258189 frag u_vol_steps 896 float 1 0 U 74258189 frag u_vol_density 900 float 1 0 @@ -3223,14 +3298,15 @@ U 5161e6ba frag u_hand_pos 736 vec3 1 0 U 5161e6ba frag u_hand_color 752 vec3 1 0 U 5161e6ba frag u_hand_dir 768 vec3 1 0 U 5161e6ba frag u_hand_cone 780 float 1 0 -U 5161e6ba frag u_ts_origin 784 vec2 1 0 -U 5161e6ba frag u_ts_half 792 float 1 0 -U 5161e6ba frag u_ts_on 796 float 1 0 -U 5161e6ba frag u_force_cascade 800 int 1 0 -U 5161e6ba frag u_cloud_shadow 804 float 1 0 -U 5161e6ba frag u_time 808 float 1 0 -U 5161e6ba frag u_fog_inscatter 812 float 1 0 -U 5161e6ba frag u_fog_desat 816 float 1 0 +U 5161e6ba frag u_hand_reach 784 float 1 0 +U 5161e6ba frag u_ts_origin 792 vec2 1 0 +U 5161e6ba frag u_ts_half 800 float 1 0 +U 5161e6ba frag u_ts_on 804 float 1 0 +U 5161e6ba frag u_force_cascade 808 int 1 0 +U 5161e6ba frag u_cloud_shadow 812 float 1 0 +U 5161e6ba frag u_time 816 float 1 0 +U 5161e6ba frag u_fog_inscatter 820 float 1 0 +U 5161e6ba frag u_fog_desat 824 float 1 0 U 5161e6ba frag u_inv_proj 832 mat4 1 0 U 5161e6ba frag u_texel 896 vec2 1 0 U 5161e6ba frag u_focus 904 float 1 0 diff --git a/selfhost/backend/emit_addr.ludic b/selfhost/backend/emit_addr.ludic index 15c60360..af9dec04 100644 --- a/selfhost/backend/emit_addr.ludic +++ b/selfhost/backend/emit_addr.ludic @@ -57,6 +57,28 @@ function emit_index_addr(e: Node) -> pointer { let data = nreg() emit(" "); emit(data); emit(" = load ptr, ptr "); emit(dp); emit("\n") let ix = emit_expr(e.b) # (evaluate index BEFORE setting + # THE INDEX IS CHECKED AGAINST THE LENGTH. A slice has carried { ptr, len, cap } since it + # existed, and nothing ever read the len: every index was a bare getelementptr, so running + # off the end of one wrote into whatever the allocator had put next and the program died + # somewhere else entirely, minutes later, with a stack that named an innocent function. + # The comparison is UNSIGNED, which rejects a negative index in the same instruction. + if g_bounds { + g_uses_bounds = true + let lnp = nreg() + emit(" "); emit(lnp); emit(" = getelementptr inbounds %LSlice, ptr ") + emit(base.code); emit(", i32 0, i32 1\n") + let lnv = emit_bind(`load i32, ptr {lnp}`) + let okc = emit_bind(`icmp ult i32 {ix.code}, {lnv}`) + let lok = lbl("ixok") + let lbad = lbl("ixbad") + emit(` br i1 {okc}, label %{lok}, label %{lbad}\n`) + emit(`{lbad}:\n`) + let bmsg = emit_str_const(`{g_src_name}:{itoa(e.line)}: index out of range: `) + let bse = emit_bind(stdstream_rhs(2)) + emit(` call i32 (ptr, ptr, ...) @fprintf(ptr {bse}, ptr @.fmt_bounds, ptr {bmsg}, i32 {ix.code}, i32 {lnv})\n`) + emit(" call void @exit(i32 1)\n unreachable\n") + emit(`{lok}:\n`) + } let r = nreg() # g_addr_ty — a member-access index emit(" "); emit(r); emit(" = getelementptr inbounds "); emit(llty(el)) # overwrites it) emit(", ptr "); emit(data); emit(", i32 "); emit(ix.code); emit("\n") diff --git a/selfhost/backend/emit_core.ludic b/selfhost/backend/emit_core.ludic index b71873a3..ddaeb98c 100644 --- a/selfhost/backend/emit_core.ludic +++ b/selfhost/backend/emit_core.ludic @@ -41,6 +41,9 @@ var g_uses_pak: bool = false # file_open was emitted -> emit the asset-pack ru var g_uses_datert: bool = false # Date.*/DateTime.* was emitted -> emit the civil<->epoch conversions var g_uses_expect: bool = false # expect/expect_eq/expect_near was emitted -> emit the test-assert globals var g_uses_panic: bool = false # panic/assert was emitted -> declare @fprintf + the panic format +var g_uses_bounds: bool = false # a checked slice index was emitted -> declare the bounds format +var g_fprintf_declared: bool = false # @fprintf is declared once, by whoever needs it first +var g_bounds: bool = true # check every slice index (--no-bounds turns it off) var g_uses_result: bool = false # ok()/err()/try was emitted -> define the %Result value type (issue #46) var g_uses_option: bool = false # some()/none() was emitted -> define the %Option value type (issue #53) var g_tests: []Node # test "name" { ... } blocks collected by the parser diff --git a/selfhost/backend/emit_decl.ludic b/selfhost/backend/emit_decl.ludic index 86c07165..415291db 100644 --- a/selfhost/backend/emit_decl.ludic +++ b/selfhost/backend/emit_decl.ludic @@ -217,6 +217,7 @@ function emit_program() -> void { g_uses_loopback = false g_uses_expect = false g_uses_panic = false + g_fprintf_declared = false g_uses_result = false g_uses_option = false g_uses_world_despawn = false # #84: set when a world_despawn call is emitted (below) @@ -281,8 +282,13 @@ function emit_program() -> void { if g_uses_datert { emit_datetime_prelude() } # @lp_days_from_civil / @lp_civil_from_days conversions if g_uses_panic { # panic/assert: located abort to stderr emith("declare i32 @fprintf(ptr, ptr, ...)\n") + g_fprintf_declared = true emith("@.fmt_panic = private unnamed_addr constant [6 x i8] c\"%s%s\\0A\\00\"\n") } + if g_uses_bounds { # a slice index out of range: located abort + if not g_fprintf_declared { emith("declare i32 @fprintf(ptr, ptr, ...)\n"); g_fprintf_declared = true } + emith("@.fmt_bounds = private unnamed_addr constant [14 x i8] c\"%s%d, len %d\\0A\\00\"\n") + } if g_uses_result { emith("%Result = type { i32, i32, ptr }\n") } # issue #46: ok/err/try value if g_uses_option { emith("%Option = type { i32, i32 }\n") } # issue #53: some/none value emit_cov_runtime() # issue #45: --coverage tables + exit dump @@ -318,7 +324,7 @@ function emit_cov_runtime() -> void { let modec = emit_str_const("w") emith("@.cov_filefmt = private unnamed_addr constant [9 x i8] c\"FILE %s\\0A\\00\"\n") emith("@.cov_rowfmt = private unnamed_addr constant [7 x i8] c\"%d %d\\0A\\00\"\n") - if not g_uses_panic { emith("declare i32 @fprintf(ptr, ptr, ...)\n") } + if not g_fprintf_declared { emith("declare i32 @fprintf(ptr, ptr, ...)\n"); g_fprintf_declared = true } emith("declare i32 @atexit(ptr)\n") # @cov_dump: open $LUDIC_COVERAGE (or "ludic.cov"), write a FILE header then one