|
Home |
Project Page |
API Docu
|
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 ... |
|
News |
DEVELOPMENT ON STANDBY (since winter 2013)
3rd January 2014:
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.
Kind regards,
Lukas Hermanns
News archive
|
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 |
Getting started with a very small program (C++ & SoftPixel Engine v.3.2):
// SoftPixel Engine - Getting started
#include <SoftPixelEngine.hpp>
using namespace
sp;
// Main namespace
int main()
{
// The softpixel-device opens the screen (windowed screen / fullscreen are possible)
SoftPixelDevice* spDevice =
createGraphicsDevice(
video::RENDERER_OPENGL,
dim::size2di(640, 480), 32,
"Getting Started"
);
video::RenderSystem*
spRenderer = spDevice->getRenderSystem(); // Render system for drawing operations
video::RenderContext*
spContext = spDevice->getRenderContext(); // Render context for back buffer controll
io::InputControl*
spControl = spDevice->getInputControl(); // Controller for keyboard- and the mouse input events
scene::SceneGraph*
spScene = spDevice->createSceneGraph(); // Scene graph system to handle a lots of scene objects
spScene->setLighting(true); // Activates global lighting
scene::Camera*
Cam = spScene->createCamera(); // Creates a camera to see our scene
scene::Light*
Light = spScene->createLight(); // Creates a light (by default Directional light)
scene::Mesh*
Obj = spScene->createMesh(scene::MESH_TEAPOT); // Creates one of the 16 standard objects
Obj->setPosition(dim::vector3df(0,
0, 2.5)); // Sets the object position (x, y, z)
// The main loop will update our device
while (spDevice->updateEvents() &&
!spControl->keyDown(io::KEY_ESCAPE))
{
spRenderer->clearBuffers(); // Clears the video buffers (pixel- and depth buffer)
spScene->renderScene(); // Renders the scene
Obj->turn(dim::vector3df(1,
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
return 0;
}
// END-OF-LINE
|
|