SlimeEngine is my personal playground for learning modern Vulkan and its 1.3 features. This project serves as both a learning tool and a growing graphics framework, focusing on clean, understandable implementation of advanced Vulkan concepts. It's a work in progress, evolving as I explore and understand more about low-level graphics programming.
Implement a robust lighting system to enhance scene realism and visual quality. This system should support multiple light types and include shadow capabilities.
To start I wanna try a cel-shaded shader as this requires very basic materials and should look very effective.
Light Types to Implement:
Directional Lights
Spot Lights
Area Lights
Key Features:
Support for multiple lights of each type in a scene
Shadow mapping for all light types
Efficient rendering to handle many lights simultaneously
Adjustable properties (color, intensity, range, etc.) for each light
Implementation Details:
Create a base Light class with common properties
Derive specific classes for each light type (DirectionalLight, SpotLight, AreaLight)
Implement shadow mapping techniques appropriate for each light type
Optimize for performance, potentially using techniques like deferred lighting or tiled forward rendering
Engine Modifications:
Update shader system to incorporate multiple light sources
Modify render pipeline to handle shadow map generation and usage
Implement a light culling system for performance optimization
Considerations:
Scalability for handling a large number of lights
Balance between visual quality and performance
Flexibility for easy addition of new light types in the future
Implement Light System
Implement a robust lighting system to enhance scene realism and visual quality. This system should support multiple light types and include shadow capabilities. To start I wanna try a cel-shaded shader as this requires very basic materials and should look very effective.
Light Types to Implement:
Key Features:
Implementation Details:
Light
class with common propertiesEngine Modifications:
Considerations: