Saludos Foro.
Buscando modelos3d gratuitos he encontrando este engine del que no había escuchado hablar en ningún foro, pero creo que tiene muchas posibilidades y futuro.
ESENTHEL Engine es GRATUITO para su uso NO comercial.
Página oficial:
http://www.esenthel.com/en/engine/screens.htmlMás imágenes:
http://es.youtube.com/watch?v=pwGkvEctT ... annel_pagehttp://es.youtube.com/watch?v=fMzXYALnp ... annel_pagehttp://es.youtube.com/watch?v=R99EUSYdS ... annel_pagehttp://es.youtube.com/watch?v=ODubyrnhA ... annel_pagehttp://es.youtube.com/user/drean37http://es.youtube.com/watch?v=ZXpDjwWCu ... annel_pagehttp://www.moddb.com/engines/esenthel-e ... el-engine2http://www.devmaster.net/forums/showthr ... #post64112Sitio de descarga de la SDK del engine:
http://www.esenthel.com/en/engine/download.htmlJuegos creados con el engine:
Esenthel Game:
http://www.esenthel.com/en/game/download.htmlCyber FX:
http://es.youtube.com/watch?v=DjzwOMUfX ... l/news.phpForest Valley:
http://es.youtube.com/watch?v=o7UqS6fRg ... eadmore=19HERRAMIENTAS: World Editor, Gui Editor, Mesh Editor, calculator, converter, Functions, Icons, Image Viewer, Mouse Extend, Pak Viewer, Synchronizer.
TEXTURAS: Each texture is required to be in GFX format, however importing of BMP PNG JPG TGA DDS formats is allowed.
Tipos de 'Mesh' que soporta:
3DS - 3D Studio (mesh, no custom normals)
ASE - Ascii Scene Export (mesh)
OBJ - Wavefront OBJ (mesh)
WRL - VRML97 (mesh)
X - DirectX (mesh + skin + animation)
XML - Ogre Xml (mesh + skin + animation)
SONIDO:
WAV - wave - no compression
OGG - ogg vorbis - lossy compression
VIDEO:
THEORA - ogg, ogm, ogv
Después de instalarlo he probado "algunos" ejemplos, todavía no he podido probarlos todos, que vienen en archivos de código fuente del c++ (.cpp). Estos son:
BASICOS:
Start.cpp, Drawing.cpp, Input.cpp, Image.cpp, Cache.cpp, Gui.cpp, 3D.cpp, Mesh.cpp
AVANZADOS:
*GEOMETRIA: Camera.cpp, Matrix.cpp
*GRAFICOS: 2D Effects.cpp, Color Transformations.cpp, Colors HSB.cpp, Dynamic Image.cpp, Font Make.cpp, Import Image.cpp, VI-Vertex Index Buffer.cpp
*GUI: Bars.cpp, Buttons.cpp, Tabs.cpp, Window Menu.cpp, List.cpp, ComboBox.cpp, Game Menu.cpp, Loading Gui Objects.cpp, Extending Gui Objects.cpp, Multiple Viewports.cpp
*MISC: Calculator.cpp, Config.cpp, Cpu.cpp, Cursor.cpp, Drag&Drop.cpp, File.cpp, FileFind.cpp, FileText.cpp, IO Path.cpp, Memory.cpp, Number.cpp, Pak.cpp, Pak Create.cpp, Pathfind.cpp, Random.cpp, Sort.cpp, States.cpp, Sort.cpp, States.cpp, Threads.cpp, Threads2.cpp, Video Playback.cpp, Zip.cpp
*SONIDO: Music.cpp, Sound.cpp, Sound 3D.cpp, Volume Groups.cpp
*NET: Downdload.cpp, Socket.cpp
*ANIMACION: Animation.cpp, Skeleton Points.cpp, Blending.cpp, Manual Editing.cpp
*PHYSICS: Physics.cpp, Multi shaped actor.cpp, Joints.cpp, Joints 2.cpp, Controllers.cpp, Testing.cpp, Detecting objects under cursor.cpp, Grabbing.cpp, Physical meshes.cpp, Ragdoll.cpp, Vehicle.cpp, Cloth.cpp
*RENDERING: Rendering.cpp, Sky.cpp, Fog.cpp, Bumpmapping.cpp, Viewport.cpp, Motion Blur.cpp, Materials.cpp, Shadows.cpp, Volumetric Lights.cpp, Ambient Occlusion.cpp, Early Z.cpp, Bloom.cpp, Depth of Field.cpp, Particles.cpp, Blood.cpp, Explosion.cpp, Layered Clouds.cpp, Volumetric Clouds.cpp, Water.cpp, Markers.cpp, Mesh Outline.cpp, Laser and Electricity.cpp, Multi-Threaded Rendering.cpp
*MESH: Grass.cpp, Grass 2.cpp, Separate parts rendering.cpp, Terrain.cpp, Tree.cpp
*DEMOS: Auto Depth of Field.cpp, Day Night Cycle.cpp, Facial Animation.cpp, Lights.cpp, Nature.cpp
*GAME BASICS: Character.cpp, World.cpp, World with Character.cpp, Lights.cpp, Saving and Loading.cpp, Pathfind.cpp, Doors.cpp, Custom Parameters.cpp, Extending Game Object Class.cpp, Dynamically Created Objects.cpp, Waypoints.cpp, Character Animations.cpp, Character Default Animations.cpp, Character Facial Animations.cpp, Character Ragdoll.cpp, Camera Modes.cpp, Camera Collisions.cpp, Object References.cpp, Big Overlays.cpp
*SIMPLE PROJECT (Simula el proceso de un juego convencional, pero no contiene ningún juego. Para que funcione tienes que agregar todos los archivos .cpp y .h de la carpeta): Intro.cpp, Menu.cpp, Main.cpp, Game.cpp
---------------------------------------
REQUISITOS INSTALACION:
Microsoft Visual C++ 2008 (ejecutarlo al menos una vez después de instalarlo):
http://www.microsoft.com/express/download/DirectX SDK Nov08:
http://www.microsoft.com/downloads/deta ... laylang=enPhysX System Software:
http://developer.nvidia.com/object/phys ... tml#SystemDespués de haber instalado el software anterior, extraemos la carpeta 'EsenthelEngineSDK' que se encuentra en el archivo .rar del engine que hemos descargado de aquí:
http://www.esenthel.com/en/engine/download.html . Si utilizas windows Vista, mejor extraerlo fuera de la carpeta 'Archivos de Programa'.
Una vez hecho esto, ejecutamos VC++ 2008 y vamos al menú 'Herramientas-->Opciones'. Desde la ventana 'Opciones' seleccionamos 'Proyectos y soluciones' en la lista que aparece a la izquierda. Se abrirá mostrando nuevas opciones donde seleccionamos 'Directorios de VC++'.
Ahora, en la esquina superior derecha aparece la casilla 'Mostrar directorios para:' y la cambiamos, pinchando sobre ella, seleccionando 'Archivos de Inclusion'. Debajo de esta casilla se muestra una lista de rutas que comienzan por el signo $. Haz doble click debajo del último elemento de esa lista (utiliza la barra de desplazamiento si es necesario para ver el último elemento de la lista).
A continuación, mostrará un botón con 3 puntos seguidos '...'. Pincha sobre él y busca la carpeta 'Installation' que se encuentra dentro de la carpeta del engine que hemos instalado (es decir, dentro de la carpeta 'EsenthelEngineSDK'). Pulsa el botón 'Seleccionar Carpeta' para aceptar.
Seguimos, y cambiamos 'Mostrar directorios para:' a 'Archivos de biblioteca'. Volvemos a repetir los pasos anteriores para agregar otra vez la carpeta 'Installation' que se encuentra dentro de la carpeta del engine (otra vez, dentro de la carpeta 'EsenthelEngineSDK').
Pulsamos el botón Aceptar para cerrar la ventana Opciones.
Dentro de la carpeta del engine, para ejecutar los ejemplos vamos a la carpeta 'Tutorials'. Allí se encuentra la solución 'Tutorials.sln', pero sólo contiene el archivo 'Start.cpp' (dentro de la carpeta 'Source' de la solución). Pulsa F5. Si aparece el mensaje 'Este proyecto no está actualizado: ¿Desea Generarla?'. Pulsamos 'Sí'. Luego pulsa la telca 'Escape' para finalizar la demostración.
Para ir probando cada uno de los archivos .cpp, haz lo siguiente. Pincha con el botón derecho del ratón sobre el archivo .cpp (lista a la izquierda de la ventana), en este caso Start.cpp, y seleccionas 'Excluir del Proyecto'. Con esto lo habremos eliminado del proyecto.
Ahora para seleccionar un nuevo .cpp, ejecutamos la orden del menú 'Proyecto-->Agregar Elemento Existente' y abrimos un archivo .cpp que se encuentra en la carpeta 'Source' dentro de 'Tutorials'. Para ejecutarlo vuelve a pulsar F5.
Tienes que ir probándolos 1 a 1, de otro modo te daría errores de compilación. Dentro de la carpeta 'Source' existe la carpeta 'Advanced' donde se encuentran el resto de ejemplos.
------------------------------------------
Ejemplo de Código. (Drawing.cpp)
================================
/***************************************************/
#include "stdafx.h"
/***************************************************/
Here are presented the most basic drawing functions
/***************************************************/
void InitPre()
{
App.name="Drawing";
App.flag=APP_NO_FX;
PakAdd("../data/engine.pak");
}
/****************************************************/
Bool Init()
{
return true;
}
/******************************************************/
void Shut()
{
}
/******************************************************/
Bool Main()
{
if(Kb.bp(KB_ESC))return false;
return true;
}
/******************************************************/
void Draw()
{
D.clear(WHITE); // clear to white
// draw texts
{
D.text(0,0,"Default text settings"); // default text draw
TextDS tds; // text draw settings, contains information about font size, aligning, color, ..
tds.color=BLACK; // set black color
tds.scale*=1.4f; // change scale
D.text(tds,0,-0.2,"Bigger");
tds.scale/=1.4f; // reset scale
tds.align.set(1,0); // change aligning
D.text(tds,0,-0.4,"Right Aligned");
tds.color=GREEN; // change color to green
tds.align.set(-1,0); // change aligning
D.text(tds,0,-0.6,"Colored Left Aligned");
tds.align.set(0,0); // reset aligning
tds.color=ColorHue(Tm.time()/2); // assign color to Color Hue according to current time
D.text(tds,0,-0.8,"Multi colored");
}
// draw shapes
{
D.rect (BLUE , 0.5,0.5, 0.6,0.6); // draw blue rectangle at given coordinates
D.circle(RED , 0.1, -0.5,0.5); // draw red circle with 0.1 radius at (-0.5,0.5) position
D.dot (BLACK , 0,0.5); // draw black dot at (0,0.5) position
D.line (GREEN , -0.4,0.5, 0.4,0.6); // draw green line
D.tri (YELLOW,Vec2(-0.5,-0.4),Vec2(-0.4,-0.2),Vec2(-0.4,-0.4)); // draw yellow triangle from given points
}
}
/******************************************************/