Showing posts with label 3D. Show all posts
Showing posts with label 3D. Show all posts

Monday, 2 May 2011

Wednesday, 12 August 2009

Desarrollo de Videojuegos con Delphi mediante Asphyre

Asphyre es un Framework Open Source para el desarrollo de videojuegos. El proyecto lo podemos descargar de la web de AfterWarp, una web dedicada al desarrollo de videojuegos utilizando Delphi o compiladores Free Pascal (Lazarus). El Proyecto Asphyre desarrollado por Yuriy Kotsarenko integra de forma sencilla la utilización de DirectX y OpenGL sin tener que tocar ninguno de éstos componentes. Podemos crear tanto escenários en 2D como en 3D, y la instalación de su framework es muy sencilla. Si nos descargamos la última versión de su Framework, Asphyre Sphinx, podremos ejecutar los ejemplos que vienen con la versión. Para la instalación de la librería, tenemos que dirigirnos a Tools -> Options, y en el nodo Environment Options -> Delphi Option -> Library - Win32, nos situamos en Library Path, y añadimos la siguiente ruta en la librería: C:\Asphyre\Source.

Una vez hecho ésto, podemos abrir cualquier ejemplo del componente y ejecutarlo para ver el resultado de la utilización de Asphyre.

Aquí os dejo un manual muy interesante de la utilización de Asphyre desde Developpez.com, aunque está en francés, se entiende bastante bien!.

Además, encontraremos un videojuego llamado Hasteroids, que está bastante bien:


Si miras en la carpeta "Tools" del Framework, encontraréis una utilizades muy interesantes hechas por el mismo autor y que ayudan con el desarrollo de diversos aspectos de los gráficos, ya sea la elección de un color o renderizar una fuente, aquí os dejo la lista de programas y alguna captura de pantalla:
  • AsphyreManager
  • ColorSel
  • FastTile
  • FontTool
  • MigrationTool
  • ModelConv



Monday, 27 April 2009

Convex Hull

Convex Hull (envoltorio convexo), consiste en buscar el menor polígono convexo H por lo que cada punto X1, X2, Xn, está a un lado del polígono H o en su interior.

Existen muchas implementaciones de este sistema, pero se utiliza mucho en el reconocimiento de patrones, procesamiento de imágenes, estadística, sistemas de información geográfica, etc.

  • Diferentes implementaciones:
Podemos encontrar en la red, diversas implementaciones de los algoritmos más conocidos del Convex Hull, en diversos lenguajes de programación, Delphi, Java, C/C++, Matlab, etc. Aquí os dejo varios proyectos abiertos que intentan resolver el Convex Hull en 2D y alguno en 3D.

FastGeo 5.01
FastGeo, es una librería desarrollada en Delphi por Arash Partow. Contiene una amplia gama de algoritmos optimizados de geometría computacional y diversas rutinas para diferentes tipos de operaciones geométricas como primitivas, cálculos hull, triangulación, rotaciones, etc.
FastGeo ofrece una interfície para primitivas geométricas y rutinas complejas usando Object Pascal.

Su instalación es muy simple. Primero tenemos que descargar la librería desde este enlace: FastGeo Library Source Code, y también descargamos FastGeo Graphical Interface y FastGeo Convex Hull Demonstration. Una vez descargados, tenemos que crear un package e incluir los ficheros de la librería y de la interfície gráfica. Una vez instalado el Package, abrimos el convex Hull demonstration, y lo iniciamos. Luego podremos ver la aplicación, iniciar un test y calcular el convex Hull:


Fast Convex Hull Algorithm
Esta implementación creada en matlab, nos muestra un algoritmo muy rápido y eficiente capaz de calcular el envoltorio convexo en 2D. Esta implementación la podemos encontrar en Matlab Central de la mano de Luigi Giaccari. Podéis descargar el algoritmo directamente desde este enlace: ConvHull2D.m.

Java Convex Hull
Esta implementación sale de la Universidad de Lethbridge (Canada), de las manos del Dr. Stephen Wismath. Está hecha en un applet, y podemos crear los puntos manualmente y ver la ejecución paso a paso del algoritmo, ya sea por fuerza bruta (analizando todos los puntos) o mediante soluciones complejas de algoritmos Hull. Aquí os dejo el código fuente en descarga directa (ConvexHull.java) , echarle un vistazo ya que es muy interesante.



Algorithm 10
Esta implementación en C++ de SoftSurfer, nos provee de un cálculo sencillo mediante la entrada de unos puntos, nos devuelve la lista de puntos conectados. Este ejemplo utiliza el Andrew's monotone chain algorithm.



  • Demostraciones interactivas on-line:

http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html


  • Enlaces de interés:
http://mathworld.wolfram.com/ConvexHull.html
http://www.dr-mikes-maths.com/DP-convex-hull-java-code.html

Tuesday, 31 March 2009

Ejecutar aplicaciones Java-SE en tu Pocket PC (Parte II)

Dado que podemos explotar mucho más la librería de Mysaifu, he decidido comentar un poco más el tema del Java 3D, ya que hay buenos ejemplos por la red, y muestro un poco como funciona.

Primero descargamos el paquete del Java 3D para nuestra Pocket des de Mysaifu j3dm:
j3dm 0.0.1

Una vez descargado, lo descomprimimos y obtendremos 2 carpetas, "lib" y "bin". Luego nos dirigimos a nuestro pocket PC y copiamos estas carpetas en la ruta:
\Archivos de programa\Mysaifu JVM\jre

Una vez hemos copiado las librerías, seleccionamos un .jar de alguna librería 3D y lo arrancamos para ver como funciona. Aquí os dejo un vídeo de muestra de lo que vemos en pantalla:



Aquí os dejo un ejemplo de la libreria, que lo he sacado de la página del Mysaifu:
java3dtest.rar

  • Enlaces de interés:
Java 3D
The definitive Multiplayer
Animation Interaction
Anifun3
J3DM