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.html
Más imágenes:
http://es.youtube.com/watch?v=pwGkvEctT4Q&feature=channel_page
http://es.youtube.com/watch?v=fMzXYALnpsQ&feature=channel_page
http://es.youtube.com/watch?v=R99EUSYdSVM&feature=channel_page
http://es.youtube.com/watch?v=ODubyrnhAb8&feature=channel_page
http://es.youtube.com/user/drean37
http://es.youtube.com/watch?v=ZXpDjwWCu4Y&feature=channel_page
http://www.moddb.com/engines/esenthel-engine/images/esenthel-engine2
http://www.devmaster.net/forums/showthread.php?p=64112#post64112
Sitio de descarga de la SDK del engine: http://www.esenthel.com/en/engine/download.html
Juegos creados con el engine:
Esenthel Game: http://www.esenthel.com/en/game/download.html
Cyber FX: http://es.youtube.com/watch?v=DjzwOMUfX90&eurl=http://grabonstudio.tnb.pl/news.php
Forest Valley: http://es.youtube.com/watch?v=o7UqS6fRg7M&eurl=http://www.pbgame.dbv.pl/news.php?readmore=19
HERRAMIENTAS: 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/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en
PhysX System Software:
http://developer.nvidia.com/object/physx_downloads.html#System
Despué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 carpte 'Source'. 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
}
}
/******************************************************/
Pues yo no lo conocia, 8o es alucinante tiene mucha potencia.
gracias por el enlace
Estos archivos contienen los archivos binarios (o ejecutables) de los más de 100 ejemplos o tutoriales incluidos en la SDK del engine, sin la necesidad de tener instalado Visual C++ ni tampoco DirectX SDK
REQUISITOS:
-Solo instalar ESENTHEL Engine.
-Shader 2.0 o superior.
INSTRUCCIONES: http://perso.orange.es/tomas_cg75/Instrucciones.pdf
ARCHIVOS:
Animation: http://www.mediafire.com/?qh2mmojjumm
Basics: http://www.mediafire.com/?mmarmrnqjzo
Demos: http://www.mediafire.com/?0gyzymmdtmo
Game Basics: http://www.mediafire.com/?heycmtmtztk
Geometry: http://www.mediafire.com/?zinanazmwzr
Graphics: http://www.mediafire.com/?hztjgm2jklj
Gui: http://www.mediafire.com/?wizymnqmymw
Mesh: http://www.mediafire.com/?no01wmozew2
Misc: http://www.mediafire.com/?2nmjiz2nmvi
Physics: http://www.mediafire.com/?wjzltje4z5m
Rendering: http://www.mediafire.com/?wd0wtniywmu
Sound: http://www.mediafire.com/?2mudme3onki
El engine no dispone de una documentación que recoja y agrupe todas las funciones con sus descripciones (como sí que ocurre en Dark GDK), y la información disponible se encuentra básicamente en los códigos y comentarios incluidos en los archivos .cpp que puedes abrir con el bloc de notas (en caso de no tener instalado Visual C++), o buscando en este enlace: http://perso.orange.es/tomas_cg75/EsenthelCode.html (Todos los tutoriales .CPP en un archivo .TXT)
De todos modos, sí sólo quereis saber lo que es: Bumpmapping, Blending, Volumetric Clouds, Bloom, Motion Blur, Pathfinding, ... ya podeis hacerlo con sólo descargar el engine (28,7 MB)
Saludos.
:) He estado trasteando con el, y bueno parece que te permite hacer muchas cosas con muy poco código, pero se hace un poco complejo aprender su sintaxis, dada la poca documentacion, las anotaciones que hay en los ejemplos son muy poco claras, es decir te dice lo que hace cierta funcion, pero no comenta sus partes, por ejemplo te pone cosas como esta :
mshb.create(Ball(1,0.3),VTX_NRM); // create Mshb from torus, and automatically create vertex normals in order to lit the mshb properly
otra cosa es que la manera en la que está estructurado te quita mucha livertad.
Por otra parte los resultados que se pueden conseguir si aprenedes ha manejarlo bien, son increibles, y la manera de integrar las fisicas con PhysX es muy fácil, tambien tiene un editor de níveles que es muy fácil de manejar......... en fin que es uno de los mejores motores grátuitos que he visto, pero a mí por lo menos me resulta dificil de manejar, no por que sea complejo, sino porque no esta bien documentado.
Estoy totalmente de acuerdo contigo. Hasta ahora sólo he cambiado el nombre de algún archivo gráfico o modelo 3D en los códigos que vienen de ejemplo. Quiero hacer primero un esquema donde agrupar las funciones por su función (texto, gráfico2d, gráfico3d, gui, física, ... ) antes de hacer nada nuevo con él.
La documentación es escasa, así es. Mandé el mensaje al foro "Who uses API documentation?" pidiendo ayuda para que me explicaran como utilizar la API Reference para buscar una función (que es lo único que aparece en el directorio 'Documentation'), y me contestó que tenía que buscar en los tutoriales .cpp. y poco más. Supongo que en próximas versiones acompañará la SDK con una buena documentación y no con una API.
Saludos.
sip, esperemos que mejore la documentacion, para poder utilizar bien esta maravilla de motor ^_^