Project Page |
|Welcome to the SoftPixel Engine
Welcome to the homepage of the SoftPixel Engine, a high-level real-time 3d engine written in C++ for Windows and Linux.
It is designed for writing 2d- and 3d games and graphics applications.
You will see the performance and the big collection of functions for rendering 3d worlds and drawing
primitives or complex 2d objects.
Look at the features to see the highlights!
|Follow us on ...
3rd January 2014:
DEVELOPMENT ON STANDBY (since winter 2013)
Happy Birthday SoftPixel Engine! You are six years old (over 175,000 LoC).
It's been a long time now that I was working on the engine intensely. And unfortunately this project never became
a huge success in the open-source community :-(. But nevertheless I had a lot of fun and ambition by developing this game engine :-).
I hope someone can make use of it in the future, even if it's used for educational purposes only ;-).
Please take a look at my new project: The XičXič Programming Language,
with trans-compiler and virutal-machine.
|Easy to handle
The SoftPixel Engine is very easy to handle such as the getting started example shows. With one function you can create
the following 'primitive' objects:
cube, cone, cylinder, sphere, icosphere, torus (ring), torusknot, pipe, spiral, disk, plane,
tetrahedron, cuboctahedron, octahedron, odecahedron, icosahedron, teapot ("Utah" teapot), supershape.
It is also very easy to use the virtual-reality. You can use a 3d glasses with the red-/ and the green glace.
Write applications with the simplicity of Basic languages but the power of C++ and OpenGL!
Getting started with a very small program (C++ & SoftPixel Engine v.3.2):
// SoftPixel Engine - Getting started
// Main namespace
// The softpixel-device opens the screen (windowed screen / fullscreen are possible)
SoftPixelDevice* spDevice =
dim::size2di(640, 480), 32,
spRenderer = spDevice->getRenderSystem(); // Render system for drawing operations
spContext = spDevice->getRenderContext(); // Render context for back buffer controll
spControl = spDevice->getInputControl(); // Controller for keyboard- and the mouse input events
spScene = spDevice->createSceneGraph(); // Scene graph system to handle a lots of scene objects
spScene->setLighting(true); // Activates global lighting
Cam = spScene->createCamera(); // Creates a camera to see our scene
Light = spScene->createLight(); // Creates a light (by default Directional light)
Obj = spScene->createMesh(scene::MESH_TEAPOT); // Creates one of the 16 standard objects
0, 2.5)); // Sets the object position (x, y, z)
// The main loop will update our device
while (spDevice->updateEvents() &&
spRenderer->clearBuffers(); // Clears the video buffers (pixel- and depth buffer)
spScene->renderScene(); // Renders the scene
1, 1)); // Rotates our object
spContext->flipBuffers(); // Swaps the video buffer, so we can see the current frame
deleteDevice(); // Deletes the device context and closes the screen