… van despacio. Estos últimos días he estado trabajando bastante en mi motor. Quizá debería haber estudiado más, qué le vamos a hacer. Sin duda, se nota que no tengo mucha experiencia en esto y hay bastantes cosas que, una vez hechas, tengo que reescribir. La mayor parte de mi PFC tuvo que ser reescrita varias veces pero, así es la vida.
He intentado mantener un interfaz sencillo e intuitivo. De hecho, hice dos diseños del motor y me quedé con el más simple (decisión acertada, en mi opinión), que además introduce un nuevo enfoque respecto otros motores comerciales (pues el render va dirigido por las cámaras, ya lo explicaré en otro post más adelante). El caso es que, poco a poco, ha ido aumentando el número de clases, principalmente porque el diseño necesitaba crecer y, ante el riesgo de saturar algunas clases, decidí repartir la funcionalidad entre varias clases nuevas.
Mi diseño inicial en el que solo había unas pocas clases, ha ido engordando y cogiendo partes de mi primer diseño, sobretodo para encauzar el uso del motor y que el usuario tenga que trabajar menos (y, de paso, aumentar la estabilidad del motor). Ahora mismo estoy enfrascado con la GUI, para la que me he apoyado en las clases que hice para el motor Swift. Yo pretendía que solo hubiese un tipo de nodo que compusiera un único tipo de jerarquía: los nodos 3D. Pero al enfrentarme a los elementos de la GUI me doy cuenta que el usuario podría hacer ‘marranadas’ como mover la cámara o rotar el interfaz gráfico, dificultando la detección de eventos del ratón.
De momento voy a separar distintos tipos de nodos y crearé varias cámaras, cada una especializada en renderizar un tipo de nodo (Puede sonar raro, pero creo que quedará bien). El diseño es algo que quiero cuidar mucho para que pueda ir evolucionando sin tener que reescribirlo todo. De momento estoy contento con el sistema de materiales, que ya permite usar shaders y, espero que en breve, pueda soportar efectos de blending con texturas.
Tengo muchas cosas en mi ‘TODO list’ y espero ir encontrando tiempo para implementarlas. Anda que no me queda nada por hacer…
- Sistemas de partículas en la GPU
- Melt: Conceptos básicos
- GUI en SDE
- Programando en OpenGL
- Refactorizando

