aboutsummaryrefslogtreecommitdiff
path: root/src/shaders
Commit message (Collapse)AuthorAgeFilesLines
* added mipmaps for the hw renderer, improvementsHEADmainvimene11 hours2-24/+21
| | | | | | | | | | | | | This commit add mipmaps, but for now, mipmaps are generated on the gpu at runtime. We should generate them in advance. - added mipmaps for the hardware renderer - renamed stb_image.c to stb_image.cpp - add compiler flag to stb_image.cpp to prevent warning - added pipe notation for various objects to have all clipping functions be left to right. We need this for the time being because dot notation would considerably complicate the current implementation - small improvements
* improved software shadersvimene2026-01-173-0/+125
| | | | | | | | - unified terminal and graphical software renderer shaders - added vertex shaders for software renderers - removed VertexData - moved shaders from frame buffers to their own class - added FrameBufferConcept and ShadersConcept
* added textures for the hardware renderervimene2026-01-131-16/+18
| | | | | | | | | | | | | | | | | - removed "using" directive in .hpp - reverse order of arguments for quaternion rotation, i.e. q.rot(v) instead of v.rot(q), where q is a quaterinon and v a vector - pass the inverse of the view matrix to render_and_present_frame, to allow light calculation in shaders (we used to just pass the matrix of the quaternion of the transformation, i.e. discard scaling and translations) - added another mesh and texture (viking_room) for testing purposes - added transparent background option - added Quaternion::look_towards(), which is the equivalent of Matrix4::look_at() but only for rotations - various improvement to .obj parsing - load texture coordinates from .obj file - merged duplicate vertices in Mesh::linearize_indices()
* added back the software renderervulkanvimene2025-12-311-3/+4
|
* starting to merge vulkan with the enginevimene2025-12-291-8/+19
| | | | | | | | | | | | | - refactored scene_main to be able to share code between software and hardware renderers, while still sharing code between terminal software renderer and graphical software renderer - made the hardware renderer use scene objects vertices and transforms, instead of hardcoded ones - made the hardware renderer use the scene's camera - made .obj parser create Vector3 instead of Vector4, which didn't made sense - removed unnecessary std:: - lots of small changes
* added depth buffervimene2025-12-281-2/+2
|
* finished adding texturesvimene2025-12-271-1/+6
|
* added uniform buffers, small tweaksvimene2025-12-241-1/+8
| | | | | | | | | | - fixed aspect ratio being the inverse of what it's supposed to be - use std::chrono::high_resolution_clock instead of system_clock - convert ellapsed time to float representing seconds - renamed engine::math::Matrix4::projection to perspective - use [0,1] instead of [-1,1] for the range of z values, to be aligned with vulkan - added engine::math::Matrix4::{look_at,transpose}
* added {vertex,index} buffersvimene2025-12-221-21/+13
|
* added basic graphics pipeline and shadersvimene2025-12-181-0/+30