Serkyo
7cc43ca05e
fix(renderer): align mesher vertex placement with floor() block convention
2026-08-05 04:19:23 +02:00
Serkyo
10b035504c
fix(renderer): extend the far plane to cover the fog reach
...
The fixed 500-block far plane clipped geometry before fog saturated, making the clip plane itself the visible boundary at large view distances.
2026-08-05 01:57:44 +02:00
Serkyo
51b6b1e5e8
feat(renderer): fade distant geometry into the sky colour
2026-08-05 01:29:06 +02:00
Serkyo
d68cb966f7
feat(renderer): shade voxel faces with a directional light
2026-08-05 00:26:31 +02:00
Serkyo
0fd4378c3c
chore(renderer): compile shaders at build time
2026-08-04 02:41:33 +02:00
Serkyo
0e8ba02038
feat(renderer): expose physical device information
2026-07-31 00:38:02 +02:00
Serkyo
89887c5b98
feat(renderer): expose per-frame draw statistics
2026-07-30 23:31:18 +02:00
Serkyo
324d1b144d
feat(renderer): compose render modes from raster passes
2026-07-27 21:36:14 +02:00
Serkyo
5f4b30a4dc
feat(renderer): add selectable debug render modes
2026-07-27 21:10:26 +02:00
Serkyo
3b3a4a107b
feat(renderer): cull voxel faces against neighbouring chunks
2026-07-23 03:40:09 +02:00
Serkyo
d8d6635f37
refactor(renderer): rename mesh module to vertex
2026-07-23 02:49:14 +02:00
Serkyo
edc72a0f6f
perf(renderer): merge coplanar voxel faces with a greedy mesher
2026-07-23 02:49:14 +02:00
Serkyo
748e783f1e
test(renderer): relocate frustum tests into src/tests
2026-07-23 02:11:50 +02:00
Serkyo
a20d98a107
feat(renderer): cull chunk meshes outside the view frustum
2026-07-22 05:17:41 +02:00
Serkyo
8cfee29b53
fix(renderer): silence release-build warnings from debug-only validation
2026-07-16 03:01:02 +02:00
Serkyo
fd6ec10ce5
fix(renderer): recreate swapchain on resize and out-of-date present
2026-07-16 02:54:23 +02:00
Serkyo
dd8a969828
feat(renderer): render keyed collection of chunk meshes with per-chunk offset
2026-07-16 00:05:30 +02:00
Serkyo
092d546c52
docs(workspace): standardize function doc sections and enforce # Errors
2026-07-13 21:09:27 +02:00
Serkyo
6b3ae06031
chore(renderer): add reasons to expect attributes
2026-07-13 00:39:49 +02:00
Serkyo
81c578ad0a
chore(workspace): removed redundant license-file
2026-07-12 00:46:25 +02:00
Serkyo
2891ff1feb
refactor(workspace): centralize serde/postcard/thiserror pins and use concise dep inheritance
2026-07-12 00:41:34 +02:00
Serkyo
82cb8513be
chore(workspace): inherit license-file and normalize package key order
2026-07-11 23:52:20 +02:00
Serkyo
e940cf560e
chore(workspace): centralize shared deps and unify glam to 0.33
2026-07-08 15:05:55 +02:00
Serkyo
8045c3cae3
refactor(workspace): use #[expect] over #[allow] for lint suppressions
2026-07-07 01:28:56 +02:00
Serkyo
ea6fbf1624
feat(client): add free-fly camera with wasd and mouse-look
2026-07-06 00:20:57 +02:00
Serkyo
cd7ab3a3c5
chore(workspace): add SPDX identifiers to source files
2026-05-17 21:06:39 +02:00
Serkyo
de17b143db
chore(workspace): declare license metadata in Cargo.toml
2026-05-17 21:06:13 +02:00
Serkyo
928f0103a4
docs(renderer): collapse multi-line comments and note construction leak
2026-05-16 20:30:01 +02:00
Serkyo
f04912df70
fix(renderer): plug shader-module and stale-handle leaks
...
create_graphics_pipeline now destroys its shader modules on the error
path as well, and update_mesh nulls the buffer handles after destroying
them so a later Drop or retry cannot redestroy freed buffers.
2026-05-16 19:43:16 +02:00
Serkyo
19f79080b1
fix(renderer): correct resource teardown ordering in Drop
...
Replace ptr::read-based field consumption with Option<T> + take() for
sync primitives, GPU allocations, and the allocator itself. The prior
pattern left bitwise-duplicated values in the original fields, so Rust's
automatic field drop after Drop::drop returned freed the same heap
buffers (Vec backings inside SyncPrimitives) and Allocations twice.
The allocator is now explicitly dropped before destroy_device so its
own Drop impl, which releases vk::DeviceMemory blocks, runs while the
logical device is still valid. Swapchain image views are also now
destroyed before the swapchain, as required by the Vulkan spec.
2026-05-16 19:28:47 +02:00
Serkyo
5659469e17
chore(workspace): fix formatting and clippy warnings
2026-05-16 19:05:53 +02:00
Serkyo
203cc2a671
feat(renderer): add dynamic mesh updates via buffer reallocation
2026-05-16 19:04:20 +02:00
Serkyo
38077c980d
feat(renderer): implement depth testing and indexed 3d rendering
2026-05-12 23:00:30 +02:00
Serkyo
d30834e14f
chore(workspace): run cargo fmt
2026-05-12 18:53:56 +02:00
Serkyo
34f1a9d989
chore(workspace): enforce missing_docs and resolve all linting violations
2026-05-12 18:52:30 +02:00
Serkyo
fd5d5e4e4b
chore(workspace): configure linters and format codebase
2026-05-12 11:43:17 +02:00
Serkyo
e6f8414817
feat(renderer): implement vertex buffer allocation and memory mapping
2026-05-11 00:04:42 +02:00
Serkyo
8af89292b6
feat(renderer): integrate graphics pipeline and initialize gpu allocator with centralized frames in flight
2026-05-10 22:56:14 +02:00
Serkyo
c7fc5de690
docs(renderer): add detailed docstrings for all struct fields and logic
2026-05-10 22:16:53 +02:00
Serkyo
17d06a0423
feat(renderer): add pipeline module for graphics pipeline creation
2026-05-10 22:02:43 +02:00
Serkyo
560b1e4d0f
feat(renderer): add mesh module with Vertex struct
2026-05-10 22:02:09 +02:00
Serkyo
1c3eb69cbf
fix(renderer): align synchronization with working save and force FIFO
2026-05-09 21:49:40 +02:00
Serkyo
3997fa5fd9
refactor(renderer): modularize crate and enable vulkan 1.3 features
2026-05-09 21:43:30 +02:00
Serkyo
1805ae6aa6
feat(renderer): implement robust synchronized render loop
2026-05-09 21:33:57 +02:00
Serkyo
e005bf1c75
feat(renderer): create synchronization primitives
2026-05-09 21:03:34 +02:00
Serkyo
d0fa203743
feat(renderer): create command pool and buffer
2026-05-09 17:35:09 +02:00
Serkyo
65b43651bb
feat(renderer): create image views for swapchain images
2026-05-09 17:29:47 +02:00
Serkyo
636c44b29f
fix(renderer): handle u32::MAX swapchain extent
...
Fixed a crash where the renderer would attempt to create a swapchain with u32::MAX dimensions when the OS didn't provide a preferred extent. Updated Renderer::new to accept window dimensions and use them as a fallback. Also renamed InstanceCreateFailed to VulkanError for better generality.
2026-04-30 15:17:38 +02:00
Serkyo
76450da41f
feat(renderer): finalize swapchain initialization
...
Negotiated swapchain settings (format, present mode, extent), created the swapchain and its images, and ensured correct destruction order. Added comprehensive documentation for all new fields and methods.
2026-04-30 15:15:07 +02:00
Serkyo
5ee9fc1bd6
feat(renderer): implement surface creation and support checks
...
Created the OS surface and ensured that the selected GPU and queue family support presentation to that surface. Updated Drop to properly destroy the surface and improved documentation.
2026-04-30 14:56:45 +02:00