<feed xmlns='http://www.w3.org/2005/Atom'>
<title>engine.git/src/fb, branch main</title>
<subtitle>Small graphics engine.</subtitle>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/'/>
<entry>
<title>improved software shaders</title>
<updated>2026-01-16T23:06:31+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2026-01-16T23:06:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=0d10b77f77459333c5549711334f417623ab1f3e'/>
<id>0d10b77f77459333c5549711334f417623ab1f3e</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>added textures for the hardware renderer</title>
<updated>2026-01-13T01:04:52+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2026-01-13T01:04:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=db41d43345ea73cf7c1bbb29448e52ffb822e3e0'/>
<id>db41d43345ea73cf7c1bbb29448e52ffb822e3e0</id>
<content type='text'>
- 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()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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()
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed wrong header guard</title>
<updated>2026-01-12T21:30:16+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2026-01-12T21:30:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=c6e180ed8ba897620327938dc19f6ee792860fd4'/>
<id>c6e180ed8ba897620327938dc19f6ee792860fd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>added back the software renderer</title>
<updated>2025-12-31T17:34:54+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2025-12-31T17:34:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=f9c6bd77af826423fba4aeec86b227ccd7102b4e'/>
<id>f9c6bd77af826423fba4aeec86b227ccd7102b4e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>renamed .h to .hpp</title>
<updated>2025-12-10T19:40:42+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2025-12-10T19:40:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=761604f9e4815e8f4355637ebb46052314cbed86'/>
<id>761604f9e4815e8f4355637ebb46052314cbed86</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>various improvements</title>
<updated>2025-01-02T12:25:14+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2025-01-02T12:25:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=26b4b82a7be2c029491f3009b66b3cbf8db5d93c'/>
<id>26b4b82a7be2c029491f3009b66b3cbf8db5d93c</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>added brightness to terminal frame buffers</title>
<updated>2024-12-31T07:58:28+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2024-12-31T07:58:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=4eede3d13227f2e9be03629db1a299c8119a7c59'/>
<id>4eede3d13227f2e9be03629db1a299c8119a7c59</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed parse_object by implementing custom parsers</title>
<updated>2024-12-31T07:38:30+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2024-12-31T07:38:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=1e19d706fc5f5e3490d4ce204a6c5ca56c6614f8'/>
<id>1e19d706fc5f5e3490d4ce204a6c5ca56c6614f8</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>various improvements</title>
<updated>2024-12-31T02:40:14+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2024-12-31T02:40:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=cc6fb8c33637566a7b116d46440e6063f016deea'/>
<id>cc6fb8c33637566a7b116d46440e6063f016deea</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>improved mesh definition</title>
<updated>2023-12-11T11:42:46+00:00</updated>
<author>
<name>vimene</name>
<email>vincent.menegaux@gmail.com</email>
</author>
<published>2023-12-11T11:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vimene.fr/engine.git/commit/?id=6b765a85cf81bf4b7162e4c9280dd4054581c611'/>
<id>6b765a85cf81bf4b7162e4c9280dd4054581c611</id>
<content type='text'>
- In the context of mesh definition, splited
  indices into vertex index, normal index and
  vertex data index to be able to specify
  different normals and vertex data for
  different faces using the same vertex
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- In the context of mesh definition, splited
  indices into vertex index, normal index and
  vertex data index to be able to specify
  different normals and vertex data for
  different faces using the same vertex
</pre>
</div>
</content>
</entry>
</feed>
