kaige_renderer 0.0.1

2D and 3D renderer made for KaiGE, but is usable in other cases.
Documentation
# kaige_renderer

## Checklist

1. **Learn wgpu Basics:**
    - [ ] Understand wgpu concepts, such as devices, queues, and command buffers.
    - [ ] Familiarize yourself with wgpu's pipeline architecture.

2. **Set Up wgpu:**
    - [ ] Use the [wgpu crate]https://crates.io/crates/wgpu to access the wgpu API.
    - [ ] Set up a wgpu instance and adapter.

3. **Window Integration:**
    - [ ] Integrate wgpu with a windowing system (e.g., winit) to handle window creation and input.

4. **Surface and Swap Chain:**
    - [ ] Create a surface from the window.
    - [ ] Set up a swap chain for presenting images to the screen.

5. **Create Graphics Pipeline:**
    - [ ] Define the shader stages (vertex, fragment, etc.).
    - [ ] Specify the vertex input format.
    - [ ] Configure rasterization settings.
    - [ ] Set up depth and stencil testing.

6. **Buffers and Memory Management:**
    - [ ] Create vertex and index buffers for 3D rendering.
    - [ ] Manage uniform buffers for shaders.
    - [ ] Handle memory allocation and synchronization.

7. **Texture Loading:**
    - [ ] Load and manage textures for both 2D and 3D rendering.

8. **Implement 2D Rendering:**
    - [ ] Develop a sprite rendering system.
    - [ ] Support transformations (translation, rotation, scaling).
    - [ ] Handle layering and blending for 2D elements.

9. **Implement 3D Rendering:**
    - [ ] Build a 3D model loading system.
    - [ ] Implement a camera system for 3D scenes.
    - [ ] Integrate lighting and shading techniques.

10. **Optimization:**
     - [ ] Implement frustum culling for 3D objects.
     - [ ] Explore wgpu's multithreading capabilities for parallel processing.

11. **Error Handling and Validation:**
     - [ ] Implement robust error handling and validation checks.
     - [ ] Utilize wgpu validation layers during development.

### Resources

1. **wgpu Documentation:**
    - [wgpu API Documentation]https://docs.rs/wgpu/

2. **Tutorials and Examples:**
    - [wgpu Examples]https://github.com/gfx-rs/wgpu-rs/tree/master/examples

3. **Books:**
    - "WebGPU Programming Guide" by David Rousset

4. **GitHub Repositories:**
    - [wgpu-rs]https://github.com/gfx-rs/wgpu-rs
    - [wgpu-hal]https://github.com/gfx-rs/wgpu-hal

5. **Community and Forums:**
    - [wgpu Discord Server]https://discord.gg/8qAWxha
    - [gfx-rs Discourse]https://community.amethyst.rs/c/graphics/gfx-rs/