3D oriented library releasing

Started by
0 comments, last by swiftcoder 9 years, 7 months ago

Hi,

I am the developer of Raiseland(http://steamcommunity.com/sharedfiles/filedetails/?id=280019434), developing it required a lot of generic/typical functions. I found some useful libraries. However, for some tasks I didn't find these (too much complex, not C, bloated...). Because of this I created my own library and I'm considering releasing it under a BSD-like license. However I don't know if it would be useful for the community, would it be?

This is the list of features.

  • Tested on Windows (Vista, 7, 8) compiled with MSVC2013 and on Linux(Ubuntu 14.04.1 LTS and ArchLinux) compiled with clang and gcc.
  • Needs OpenGL 4.0 or later, some parts need GLFW3, zlib and freetype2 (these parts can be removed)
  • Source code written in C99.
  • Very simple: ~7000 LOCs
  • Modular
  • Logging
  • Getting time (microsecond resolution)
  • Faster replacement for typical srand/rand functions
  • Import .obj/Wavefront mesh files with smooth or flat normal generation
  • Export .obj/Wavefront mesh files
  • Import and export own compressed mesh format (60% smaller than standar .obj)
  • Bounding box calculation
  • Basic primitive drawing: lines, axis and cylinders
  • Basic GUI: labels, buttons, combo boxes, "number editors", switches (on or off), sliders, typical customizable header menu (File, Edit...), containers...
  • Basic mesh drawing
  • Skydome
  • Stats (elapsed time, triangles per frame, meshes per frame)
  • DDS image loader (loads DXT1, DXT3 and DXT5 files)
  • Cached text rendering system using TrueType fonts (uses freetype2)
  • Basic input system
  • Typical vectorial and matrix math operations including getProjectionMatrix and getViewMatrix
  • Window/context creation using GLFW3
  • Texture manager
  • Library examples

Developer of Raiseland, a real-time procedural terrain generator. Check out our Greenlight: http://steamcommunity.com/sharedfiles/filedetails/?id=280019434

Advertisement


Modular

This is key to making this a successful library, to my mind.

I need to be able to cherry-pick the functionality I need for a given project, and leave the rest on the floor. There is nothing worse than taking on a dependent library that starts to invade your entire software stack...

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement