Files
game_engine/crates/voltex_renderer/src/lib.rs

112 lines
4.0 KiB
Rust

pub mod json_parser;
pub mod gltf;
pub mod deflate;
pub mod png;
pub mod jpg;
pub mod progressive_jpeg;
pub mod gpu;
pub mod light;
pub mod obj;
pub mod pipeline;
pub mod texture;
pub mod vertex;
pub mod mesh;
pub mod camera;
pub mod material;
pub mod sphere;
pub mod pbr_pipeline;
pub mod shadow;
pub mod shadow_pipeline;
pub mod csm;
pub mod point_shadow;
pub mod spot_shadow;
pub mod frustum;
pub mod brdf_lut;
pub mod ibl;
pub mod sh;
pub mod gbuffer;
pub mod gbuffer_compress;
pub mod fullscreen_quad;
pub mod deferred_pipeline;
pub mod ssgi;
pub mod rt_accel;
pub mod rt_shadow;
pub mod rt_reflections;
pub mod rt_ao;
pub mod rt_point_shadow;
pub mod hdr;
pub mod bloom;
pub mod tonemap;
pub mod forward_pass;
pub mod auto_exposure;
pub mod instancing;
pub mod bilateral_blur;
pub mod temporal_accum;
pub mod taa;
pub mod ssr;
pub mod motion_blur;
pub mod dof;
pub use motion_blur::MotionBlur;
pub use dof::DepthOfField;
pub use gpu::{GpuContext, DEPTH_FORMAT};
pub use light::{CameraUniform, LightUniform, LightData, LightsUniform, MAX_LIGHTS, LIGHT_DIRECTIONAL, LIGHT_POINT, LIGHT_SPOT};
pub use mesh::Mesh;
pub use vertex::{Vertex, MeshVertex};
pub use camera::{Camera, FpsController};
pub use texture::{GpuTexture, pbr_texture_bind_group_layout, create_pbr_texture_bind_group, pbr_full_texture_bind_group_layout, create_pbr_full_texture_bind_group};
pub use material::MaterialUniform;
pub use sphere::generate_sphere;
pub use pbr_pipeline::create_pbr_pipeline;
pub use shadow::{ShadowMap, ShadowUniform, ShadowPassUniform, SHADOW_MAP_SIZE, SHADOW_FORMAT};
pub use shadow_pipeline::{create_shadow_pipeline, shadow_pass_bind_group_layout};
pub use csm::{CascadedShadowMap, CsmUniform, compute_cascade_matrices, CSM_CASCADE_COUNT, CSM_MAP_SIZE, CSM_FORMAT};
pub use point_shadow::{PointShadowMap, point_shadow_view_matrices, point_shadow_projection, POINT_SHADOW_SIZE, POINT_SHADOW_FORMAT};
pub use spot_shadow::{SpotShadowMap, spot_shadow_matrix};
pub use frustum::{Plane, Frustum, extract_frustum, sphere_vs_frustum, cull_lights};
pub use ibl::IblResources;
pub use sh::{compute_sh_coefficients, pack_sh_coefficients, evaluate_sh_cpu};
pub use gbuffer::GBuffer;
pub use fullscreen_quad::{create_fullscreen_vertex_buffer, FullscreenVertex};
pub use deferred_pipeline::{
create_gbuffer_pipeline, create_lighting_pipeline,
gbuffer_camera_bind_group_layout,
lighting_gbuffer_bind_group_layout, lighting_lights_bind_group_layout, lighting_shadow_bind_group_layout,
ssgi_gbuffer_bind_group_layout, ssgi_data_bind_group_layout, create_ssgi_pipeline,
rt_shadow_gbuffer_bind_group_layout, rt_shadow_data_bind_group_layout, create_rt_shadow_pipeline,
bloom_bind_group_layout, create_bloom_downsample_pipeline, create_bloom_upsample_pipeline,
tonemap_bind_group_layout, create_tonemap_pipeline,
};
pub use ssgi::{SsgiResources, SsgiUniform, SSGI_OUTPUT_FORMAT};
pub use rt_accel::{RtAccel, RtInstance, BlasMeshData, mat4_to_tlas_transform};
pub use rt_shadow::{RtShadowResources, RtShadowUniform, RT_SHADOW_FORMAT};
pub use rt_reflections::RtReflections;
pub use rt_ao::RtAo;
pub use rt_point_shadow::RtPointShadow;
pub use hdr::{HdrTarget, HDR_FORMAT};
pub use bloom::{BloomResources, BloomUniform, mip_sizes, BLOOM_MIP_COUNT};
pub use tonemap::{TonemapUniform, aces_tonemap};
pub use forward_pass::{ForwardPass, sort_transparent_back_to_front};
pub use auto_exposure::AutoExposure;
pub use instancing::{InstanceData, InstanceBuffer, create_instanced_pipeline};
pub use bilateral_blur::BilateralBlur;
pub use temporal_accum::TemporalAccumulation;
pub use taa::Taa;
pub use ssr::Ssr;
pub mod stencil_opt;
pub mod half_res_ssgi;
pub mod bilateral_bloom;
pub use png::parse_png;
pub use jpg::parse_jpg;
pub use gltf::{parse_gltf, GltfData, GltfMesh, GltfMaterial};
pub mod soft_rt_shadow;
pub mod blas_update;
pub use blas_update::BlasTracker;
pub mod rt_fallback;
pub use rt_fallback::{RtCapabilities, RenderMode};
pub mod light_probes;
pub use light_probes::{LightProbe, LightProbeGrid};
pub mod light_volumes;
pub use light_volumes::LightVolume;