Releases: alexlitty/randar
Releases · alexlitty/randar
v1.0.0
This pre-release marks a moderate state of stability and maturity.
Features
The combined engine, adapter, and wrapper primarily feature:
System
- Multiple OpenGL 4.5 contexts in a single program
- Basic window creation and destruction
- Simple filesystem manipulation and path specification
- Reading and writing binary file streams
Math
- Random int and float generation
- Angle objects with radian and degree interfaces
- Two- and Three-dimensional vectors with arithmetic, cross, dot, and normalizing methods
- Quaternions
- Matrix calculations provided by
glm
- Transform objects with translations, rotations, and scale
Color
- Colors with float (0.0f - 1.0f) and integer (0 - 255) interfaces
- Palettes for fine-controlled random color generation
Images
- Image objects with configurable & exposable raw data
- Reading framebuffers & windows as images
- Reading textures as images
- PNG importing and exporting
Framebuffers
- Default framebuffers for window drawing
- Framebuffers attachable to RGBA and Depth textures, render buffers
Cameras
- Position, direction, and range
- Default to "pass-through" behavior mode
- Orthographic mode with configurable viewport
- Projection mode with configurable field of view and aspect ratio
Geometry
- Vertices with positions, colors, normals, texture data, and joint data
- Intelligently appending vertex data into separated index and unique-vertex buffers
- Merging geometries
- Wide variety of geometry generation methods
- Drawn to framebuffers with specified transformation, texture, shaders, lights, and skeleton
Models
- Container for geometry, transformation, texture, shader program, and skeleton
- Drawn to framebuffers, with or without world lighting
Skeletons
- Joint-based skeletons
- Joints are named and indexed by insertion time
- Parent and child joint relationships
Lights
- Only simple spotlights available (really more of a directional light)
- Position, direction, and range
- Cast shadows
- Generates user-accessible lightmaps
- Given to World objects. Affects all available geometries
Shaders
- Default shaders provided and automatically used
- Custom shaders easily creatable, programs easily compilable
- Program uniforms safely and semi-automatically set
- Provided with unlimited geometry textures, unlimited lights, and 4 joint weights per vertex
Scenes
- Simple action-based scene timelines
- Only translation actions supported at this time
- Frame states generated on-the-fly
Projects
- Exportable and importable projects
- Project items contain underlying engine objects (geometry, model, textures, etc)
- Folders for categorizing items
Recording
- Frame-by-frame image recording to PNG
- Frame image stitching to MP4
User Interface
- Prototype of an animation interface
- Will be moved to a separate repository