All Projects → HandmadeMath → Handmade Math

HandmadeMath / Handmade Math

Licence: cc0-1.0
A simple math library for games and computer graphics. Compatible with both C and C++.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Handmade Math

Dmitrysengine
[abandoned] C99 cross-platform 3D game engine with absolute minimum of external dependencies
Stars: ✭ 119 (-76.98%)
Mutual labels:  game-development, game-engine, math
Rengfx
lightweight, expressive, extensible 2D/3D game engine
Stars: ✭ 41 (-92.07%)
Mutual labels:  game-development, game-engine, graphics
Vortice.windows
.NET standard bindings for DirectX, WIC, Direct2D1, XInput, XAudio and X3DAudio
Stars: ✭ 427 (-17.41%)
Mutual labels:  game-development, game-engine, graphics
Rtm
Realtime Math
Stars: ✭ 373 (-27.85%)
Mutual labels:  game-development, game-engine, math
Inline Engine
Game engine written in C++ with ease of use and next-gen parallel computing in focus.
Stars: ✭ 237 (-54.16%)
Mutual labels:  game-development, game-engine, graphics
Alimer
Cross-platform game engine.
Stars: ✭ 172 (-66.73%)
Mutual labels:  game-development, game-engine, graphics
Ktx
LibKTX: Kotlin extensions for LibGDX games and applications
Stars: ✭ 913 (+76.6%)
Mutual labels:  game-development, game-engine, graphics
Opentk
The Open Toolkit library is a fast, low-level C# wrapper for OpenGL, OpenAL & OpenCL. It also includes windowing, mouse, keyboard and joystick input and a robust and fast math library, giving you everything you need to write your own renderer or game engine. OpenTK can be used standalone or inside a GUI on Windows, Linux, Mac.
Stars: ✭ 2,284 (+341.78%)
Mutual labels:  game-development, game-engine, graphics
Sucle
Common Lisp Voxel Game Engine
Stars: ✭ 239 (-53.77%)
Mutual labels:  game-development, game-engine, graphics
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-22.63%)
Mutual labels:  game-development, game-engine, graphics
Lollipopgo
稳定分支2.9.X 版本已更新,由【Golang语言游戏服务器】维护,全球服游戏服务器及区域服框架,目前协议支持websocket、http、KCP、TCP及RPC,采用状态同步(帧同步内测),愿景:打造MMO多人竞技游戏框架! 功能持续更新中... ...
Stars: ✭ 500 (-3.29%)
Mutual labels:  game-development, game-engine
Rizz
Small C game development framework
Stars: ✭ 428 (-17.21%)
Mutual labels:  game-development, game-engine
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (-19.34%)
Mutual labels:  game-development, game-engine
React Native Game Engine Handbook
A React Native app showcasing some examples using react-native-game-engine 🐒✨
Stars: ✭ 416 (-19.54%)
Mutual labels:  game-development, game-engine
Verticaldissolve
Procedural vertical dissolve shader. Highly customizable. Tweak edge color, noisiness & waviness, rim light, emission scrolling and more.
Stars: ✭ 434 (-16.05%)
Mutual labels:  game-development, graphics
Ebiten
A dead simple 2D game library for Go
Stars: ✭ 5,563 (+976.02%)
Mutual labels:  game-development, game-engine
Et
Unity3D Client And C# Server Framework
Stars: ✭ 5,138 (+893.81%)
Mutual labels:  game-development, game-engine
Iogrid
Multiplayer game engine/framework built using SocketCluster and Phaser
Stars: ✭ 455 (-11.99%)
Mutual labels:  game-development, game-engine
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (-21.08%)
Mutual labels:  game-development, game-engine
Gideros
Gideros Release version
Stars: ✭ 442 (-14.51%)
Mutual labels:  game-development, game-engine

Handmade Math

Build Status

A single-file, cross-platform, public domain game math library for C/C++.

To get started, go download the latest release.


Version Changes
1.12.0 Added Unary Minus operator for HMM_Vec2, HMM_Vec3, and HMM_Vec4.
1.11.1 Added HMM_PREFIX macro to a few functions that were missing it.
1.11.0 Added ability to customize or remove the default HMM_ prefix on function names by defining a macro called HMM_PREFIX(name).
1.10.1 Removed stdint.h, this doesn't exist on some really old compilers and we didn't really use it anyways.
1.10.0 Made HMM_Perspective use vertical FOV instead of horizontal FOV for consistency with other graphics APIs.
1.9.0 Added SSE versions of quaternion operations.
1.8.0 Added fast vector normalization routines that use fast inverse square roots.
1.7.1 Changed operator[] to take a const ref int instead of an int.
1.7.0 Renamed the 'Rows' member of hmm_mat4 to 'Columns'. Since our matrices are column-major, this should have been named 'Columns' from the start. 'Rows' is still present, but has been deprecated.
1.6.0 Added array subscript operators for vector and matrix types in C++. This is provided as a convenience, but be aware that it may incur an extra function call in unoptimized builds.
1.5.1 Fixed a bug with uninitialized elements in HMM_LookAt.
1.5.0 Changed internal structure for better performance and inlining. As a result, HANDMADE_MATH_NO_INLINE has been removed and no longer has any effect.
1.4.0 Fixed bug when using C mode. SSE'd all vec4 operations. Removed zeroing for better performance.
1.3.0 Removed need to #define HANDMADE_MATH_CPP_MODE. C++ definitions are now included automatically in C++ environments.
1.2.0 Added equality functions for HMM_Vec2, HMM_Vec3, and HMM_Vec4, and SSE'd HMM_MultiplyMat4 and HMM_Transpose.
1.1.5 Added Width and Height to HMM_Vec2, and made it so you can supply your own SqrtF.
1.1.4 Fixed SSE being included on platforms that don't support it, and fixed divide-by-zero errors when normalizing zero vectors.
1.1.3 Fixed compile error in C mode
1.1.2 Fixed invalid HMMDEF's in the function definitions
1.1.1 Resolved compiler warnings on gcc and g++
1.1 Quaternions!
1.0 Lots of testing
0.7 Added HMM_Vec2, and HMM_Vec4 versions of HMM_LengthSquared, HMM_Length, and HMM_Normalize.
0.6 Made HMM_Power faster, Fixed possible efficiency problem with HMM_Normalize, RENAMED HMM_LengthSquareRoot to HMM_LengthSquared, RENAMED HMM_RSqrtF to HMM_RSquareRootF, RENAMED HMM_SqrtF to HMM_SquareRootF, REMOVED Inner function (user should use Dot now), REMOVED HMM_FastInverseSquareRoot function declaration
0.5.2 Fixed SSE code in HMM_SqrtF and HMM_RSqrtF
0.5.1 Fixed HMM_Translate producing row-major matrices, ensured column-major order for matrices throughout
0.5 Added scalar operations on vectors and matrices, added += and -= for hmm_mat4, reconciled headers and implementations, tidied up in general
0.4 Added SSE Optimized HMM_SqrtF, HMM_RSqrtF, Removed use of C Runtime
0.3 Added +=,-=, *=, /= for hmm_vec2, hmm_vec3, hmm_vec4
0.2b Disabled warning C4201 on MSVC, Added 64bit percision on HMM_PI
0.2a Prefixed Macros
0.2 Updated Documentation, Fixed C Compliance, Prefixed all functions, and added better operator overloading
0.1 Initial Version

FAQ

What's the license?

This library is in the public domain. You can do whatever you want with it.

Where can I contact you to ask questions?

Feel free to make Github issues for any questions, concerns, or problems you encounter.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].