| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makefile.am is too ugly, but I don't have a better solution right now.
- fused Makefile.am and src/Makefile.am
- adding back windows cross-compilation
- improved README.md a lot
- added configure option to enable debug, which greatly simplifies
development when writing shaders
- removed dependency on LunarG's Vulkan SDK by having dependency only on
Vulkan headers, library and slangc
- removed print C++ header because I have an old MinGW which doesn't
support it. It will be restored in the future
- make every assets path relative to be able to build anywhere and run
elsewhere
- moved stb_image.h inside source directory instead of making it a
dependency, which is more aligned with stb philosophy
- moved assets inside source code to make it easy to compile and run the
engine
- improved configure.ac by checking Vulkan headers version directly in
the configure script instead of within C code, which allows us to also
do theses checks when cross-compiling
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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()
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- cleaned up the computation of the camera's matrix
- changed VertexData to being a struct which transmit data between the "vertex shader" and the "fragment shader"
- started working on keyboard and mouse controls
- added fov (field of view)
- changed quaternion to euler angles conversion, from zyx to zxy
- fixed computations of z coordinates in triangle rendering
- improved naming in the triangle rasterizer
|
| |
|
|
|
| |
std::setlocale also change the parsing of floats with std::stof. It is also more
future proof to use a parser specific to Wavefront .obj files.
|
|
|
- added quaternions and rewrote all rotations to use them
- added transforms to put all object transforms in a single place
- added Wavefront .obj file parser
- removed frame buffer's abstract class
- improved vectors, matrices, triangles, vertices and vertices data by putting all code in header file
- added vector's operations
- changed from NULL to nullptr
- miscellaneous improvements
|