Open source graphics engine, for everyone!!!
Like an engine is an open source graphics engine with gpl licence, written in c++ and opengl (with glut), that encapsulates opengl for the user.
The project was developed using CodeBlocks C++ IDE and GLUT libraries.
+demos Source of some projects that use the library
+src Source of the library
+lib Compiled version of library
I want a cube, in x,y position with this color… cube move in this direction… Load this .3ds model with this propertys… Draw a sphere in this position… with this texture…
BANG! you've got it in a simple way!
Daniel Gòmez Rico, danielgomezrico@gmail.com 12/02/2010
The thing now is imagination, only imagination
You must create:
-
WorldConf folder: it must have 3 things ALWAYS
- world.txt: file is described down...
- Textures folder: folder that contains the images of the textures
- Models folder: folder that contains the .3ds models
Each one of this must exist always
-
Include the LikeAnEngine.h header in the files that will use the engine.
-
There are 3 principal functions to run the engine in this order:
- initEngine
- setKeyboardManager -> only if you want to manage the keys press or unpress of the keyboard.
- startEngineLoop
- To compile, says to the compiler to use the libLikeAnEngine and the includes, then : Enjoy!!!.
Right click over the project, build options:
- Linker Settings: clic in add, and select the LibLikeAnEngine.so
- Search Directories: select add (in compiler) and select the includes directories.
then... RUN!!!
Glut - http://www.opengl.org/resources/libraries/glut/glut_downloads.php (in linux: $aptitude install freeglut3-dev)
In the WorldConf folder you can find the file "world.txt", that contents all the configurations for the scene
NOTE: you must define the limits and the textures BEFORE ALL always WARNING: the file must not contain errors, loader dont check sintax errors, EVERYTHING MUST BE COMPLETE.
How to define it:
-limits Number-of-spheres Number-of-planes Number-of-cubes Number-of-lights Number-of-textures Number-of-models
-textures Name-of-texture-01 Name-of-texture-02 Name-of-texture-03 . . .
-camera x y z deltaM upX upY upZ theta beta deltaT deltaB
-plane
v1-x v1-y v1-z v2-x v2-y v2-z v3-x v3-y v3-z v4-x v4-y v4-z
x y z
r g b alpha -> colosr
textureNumber
tc0X tc0Y tc1X tc1Y ->Text coords
tc2X tc2Y tc3X tc3Y
-model name-of-model.3ds or .3DS x y z dx dy dz r g b val -> Ambiental-material r g b val -> Diffuse-material r g b val -> Specular-material
-sphere x y z radius r g b alpha -> Color r g b val -> Ambiental-material r g b val -> Diffuse-material r g b val -> Specular-material textureNumber
-cube x y z side r g b alpha -> Color r g b val -> Ambiental-material r g b val -> Diffuse-material r g b val -> Specular-material textureNumber
-light
x y z -> Position
r g b val -> Ambiental-light
r g b val -> Diffuse-light
r g b val -> Specular-light
c l q -> Attenuation Constant Lineal Quadratic
- Reads Models in format 3ds using l3ds.cpp file , but with some bugs, NO READS TEXTURE