cglm
plutovg
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cglm
-
converting a vec4 into a mat4
It's too bad you are using C. If you were using C++, you could use teh fantastic GLM library, which implements the vector math stuff from GLSL as CPU/C++ code. you might want to have a look at CLGM: https://github.com/recp/cglm
-
Matrix multiplication in C
But you can use cglm, it will do looooong way.
There's cglm, but I don't know how good it is. Really though for hobby OpenGL stuff, it's going to be 3x3, 4x4, 1x4 matrices, so rolling one's own stuff is not that terrible, if it proves to be a bottleneck (probably won't), you can drop in some fancy SIMD bullshit later.
- Portable SIMD library
-
In what way should I write a matrix library for my OpenGL game?
There is a cglm: repo
-
I want to make a game for Linux. Where do I even start?
GLM and CGLM should probably be mentioned as well since you'll probably want a good linear algebra library if you are going with just a rendering library instead of a full game engine.
-
GLSL like header only math library I made for C. What do you think about it? I am using it at work (3d image proc. & robotics) and for some hobby projects (games, etc.)
Another nice library is https://github.com/recp/cglm. It uses manually vectorized code (SSE2), so the vectors must be aligned. It would be interesting to know what the compiler can do with auto vectorization, in compersion.
plutovg
-
2D graphics lib recommendation?
That being said, OpenGL is a pretty big dependency (although fairly ubiquitous these days), if you only want a lightweight 2d graphics library that render in a framebuffer, you can also check out this project.
-
Supersample CRGB array
Sub-pixel positioned anti-aliased lines and dots are simple. Extending that idea to drawing any shape is far more fiddly. I found this excellent rasteriser and this article which explains how it works. PlutoVG wraps that rasteriser in an easy-to-use API. I'm very happy with the results.
What are some alternatives?
GLM - OpenGL Mathematics (GLM)
plutosvg - Tiny SVG rendering library in C
linmath.h - a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions
raylib - A simple and easy-to-use library to enjoy videogames programming
vkvg - Vulkan 2D graphics library
sse2neon - A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation
simd_utils - A header only library implementing common mathematical functions using SIMD intrinsics
Mathc - A simple and clean, glsl like, math (linear algebra) header only library for C.
Box2D - Box2D is a 2D physics engine for games
deka - Haskell decimal arithmetic
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Torque3D - MIT Licensed Open Source version of Torque 3D from GarageGames