sábado, 20 de diciembre de 2014

PFM: Traducción de Java a C#

Una vez entendido su funcionamiento (y aprovechando las vacaciones), he empezado con la traducción del código, de Java a C#, empezando por la clase EEPEngine. A partir de esa clase, continué de forma fluida, introduciendo las clases (y métodos) que el propio Unity me iba avisando que necesitaban las demás clases. Así, continué hasta que Unity ya no me informó de ningún error, y ya tenía la siguiente jerarquía de clases:


Sin embargo, algunas clases estaban vacías. Así que continué completando todas las clases, y añadiendo más clases que se necesitaban, hasta la jerarquía de clases que tengo ahora mismo:



La traducción de Java a C# fue bastante sencilla. Los cambio más significativos son los siguientes:

  • El código original en Java utilizaba ArrayList. Yo en C# he usado List, porque he leído en los foros de Unity que es más útil y más cómodo, sobre todo porque le especificas el tipo de la lista, mientras que con ArrayList (en C#) no. Además, ArrayList en C# también puede generar otros problemas.
  • He utilizado float en vez de double (utilizado en el código original), recomendado por mi tutor porque todo el motor de Unity trabaja con float, y al utilizar Mathf (que necesita floats), al hacer cast se pierde precisión.
  • El código original utiliza HashMap. Yo he utilizado un equivalente en C#, Dictionary, al que se le especifica el tipo de Key y de Value, al igual que con HashMap (con Hashtable, sin embargo, no). Recorrer una colección de tipo Dictionary, es sencillo, utilizando: foreach (KeyValuePair p in ...).
  • La última diferencia es que en C# no hay que declarar las excepciones que lanza un método; las extrae directamente del cuerpo del método.

domingo, 14 de diciembre de 2014

Taller de texturado

Para el taller de texturado, tuvimos que ponerle texturas a la cabeza de un personaje con casco (con photoshop). Como quería hacer algo "original", decidí influirme en los marcianos de Mars Attacks:


Y el casco me quedó así (era la primera vez que usaba photoshop, así que aunque no lo parezca, me costó hacer el casco-cerebro):





Es difícil de reconocer con tanto retoque, pero con photoshop le puse la cara de un actor. Si te fijas mucho, y conoces bien al actor en cuestión, tal vez consigas reconocerlo ;)

jueves, 11 de diciembre de 2014

Taller de iluminación

En la asignatura Modelado Geométrico hemos tenido un taller de iluminación (utilizando Maya) y uno de texturizado (con Photoshop).

Para el taller de iluminación, tuvimos que renderizar unas escenas para mostrar lo que habíamos aprendido.

  • La primera escena trataba simplemente de una serie de esferas, y teníamos que crear una luz y jugar un poco con sus atributos:


  • Para la segunda escena teníamos que proyectar una imagen en la pared de una sala llena de sillas (como un gobo), y se me ocurrió simular una sala de cine en la que se proyecta una película antigua:


  • La tercera escena era a libre elección, utilizando Mentalray. Modelé mi habitación , y le añadí varias esferas distintas (unas de colores, una transparente y otra que emite luz de color verde claro) que se reflejan en la estantería y en la mesa. La lámpara de la mesilla de noche emite luz de color azul. Por la ventana, entra la luz del sol.





  • La última escena también era a libre elección, utilizando Maxwell. La escena contiene un cenador, unas esferas que podrían ser asientos de estilo moderno (aunque no parecen muy cómodas; las añadí para ver el reflejo de los demás objetos en ellas, e incluso el reflejo rojo de las esferas en las columnas del cenador), y una mesa con unas tazas y un tablero de ajedrez con piezas de cristal.