ccab39f140
Re-sincroniza las fuentes desde el monorepo (estaba en vello 0.5/wgpu 24 y con la estructura vieja de eventloop) y suma el 3D: - bump del workspace a vello 0.7 / wgpu 27 / parley 0.6, + accesskit 0.24 / accesskit_winit 0.33 / vello_hybrid 0.0.9. - nuevos crates: llimphi-3d (voxels ray-march + mallas en un depth compartido, montable dentro de un View 2D vía set_viewport+scissor) y llimphi-voxel (world-gen, personajes, director de escenas) + shared/foreign-vox (puente .vox). - README: sección "Not just 2D — a 3D voxel engine" + GIF (docs/llimphi_voxel.gif). - excluido modules/allichay (arrastra deps fuera del alcance del front-door). - cargo check --workspace: verde. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55 lines
1.9 KiB
Rust
55 lines
1.9 KiB
Rust
//! # llimphi-3d — pase 3D base de Llimphi (M0 del motor 3D)
|
|
//!
|
|
//! Lo mínimo para tener **3D real dentro de un `View` de Llimphi**: una
|
|
//! [`Camera3d`] (matrices view/proj con `glam`), un depth buffer propio y un
|
|
//! [`Renderer3d`] que dibuja geometría indexada con test de profundidad sobre
|
|
//! la textura intermedia del frame.
|
|
//!
|
|
//! ## Cómo encaja con el bucle Elm + vello + wgpu
|
|
//!
|
|
//! Llimphi ya rasteriza la UI con vello sobre una textura intermedia y expone
|
|
//! [`View::gpu_paint_with`] para inyectar una pasada GPU directa *después* de
|
|
//! vello (con `LoadOp::Load`, preservando la UI). [`Renderer3d::render`] tiene
|
|
//! **exactamente** la firma que esa closure necesita
|
|
//! (`device, queue, encoder, target_view, (w, h), &camera`), así que un nodo 3D
|
|
//! es:
|
|
//!
|
|
//! ```ignore
|
|
//! let r3d = Arc::new(Mutex::new(Renderer3d::new(&device, fmt)));
|
|
//! View::empty().gpu_paint_with(move |dev, q, enc, view, rect, vp| {
|
|
//! r3d.lock().unwrap().render(dev, q, enc, view, vp, &camera);
|
|
//! })
|
|
//! ```
|
|
//!
|
|
//! No es un segundo motor: corre sobre el **mismo wgpu** que ya usa Llimphi,
|
|
//! que a su vez traduce a Vulkan/Metal/DX12/GL/WebGPU. Ver
|
|
//! `01_yachay/dominium/MOTOR-VOXEL.md` §11 para la ruta completa (M0..M4,
|
|
//! ray-march de voxels sparse en los hitos siguientes).
|
|
//!
|
|
//! [`View::gpu_paint_with`]: https://docs/llimphi-compositor
|
|
|
|
pub use glam;
|
|
pub use wgpu;
|
|
|
|
mod camera;
|
|
mod cinema;
|
|
mod dimensions;
|
|
mod hud;
|
|
mod mesh;
|
|
mod renderer;
|
|
mod scene;
|
|
mod voxel;
|
|
mod voxel_renderer;
|
|
|
|
pub use camera::Camera3d;
|
|
pub use cinema::{CamKey, CameraTrack};
|
|
pub use dimensions::{Dimension, Multiverse};
|
|
pub use hud::{Hud, HudQuad};
|
|
pub use mesh::{cube, push_cube, Vertex3d, CUBE_INDICES};
|
|
pub use renderer::Renderer3d;
|
|
pub use scene::Scene3d;
|
|
pub use voxel::{DirtyBox, VoxelGrid};
|
|
pub use voxel_renderer::{
|
|
Atmosphere, Entity3d, PointLight, VoxelRenderer, VOXEL_BRICK, VOXEL_MAX_LIGHTS,
|
|
};
|