El post habla por si solo. Simplemente tenía curiosidad por saber que había por Google sobre las STL, ya que a mi parecer aunque son Thread Safe, son lentas como contenedores. Depende de con que lo compares son extremadamente rápidas claro. Pero no hay nada como una clase Array con las funciones necesarias. Se nota el aumento de rendimiento pero claro, las STL son diseñadas para un propósito general. La duda me asaltó cuando vi en una issue de la librería de física Bullet, un parche subido con contenedores STL y alguien dijo que el uso de las STL en Bullet era totalmente inaceptable :D y claro… si buscas optimización… tiene toda la razón.
No obstante no creo que las STL sean una mala librería, para nada, pero en el mundo del programador de C/C++ nos gusta bastante optimizarlo todo, yo al menos soy bastante friki con estos temas, no como desearía pero lo soy. Con decir que me he llevado 10 años con un PC AMD Athlon XP 1500+ 640MB de memoria y programé ahí mi implementación del Deferred Rendering… xD y siempre ejecutaba todo en DEBUG, si iba mal en debug tocaba iteración de profiling y optimización.
Me encanta C/C++, si bien es cierto que como siempre digo tienes toda la cuerda para hacer lo que quieras, absolutamente todo, pero también tienes la misma cuerda para ahorcarte.
Estoy empezando a usar COLLADA, investigar, implementarlo en mi motor etc. He dado con una curiosidad en el foro de OpenCOLLADA y es que parece ser que OpenCOLLADA presume de ser el exportador / importador más optimo que existe con mucha diferencia, según los videos de youtube parece que tienen razón, pero yo aun tengo que hacer mis pruebas y sacar mis conclusiones usando 3ds Max 2011.
AutoDesk COLLADA 30 segundos
OpenCOLLADA 10 segundos
No obstante parece que tienen obsesión por adelantarse al compilador o intentar saber más que él. ¿Por qué digo esto? bueno hay ciertas macros de las STL para tener información de debug cuando el programa falla, esto provoca que se haga un “check” de ciertas cosas que obviamente consume CPU. La macro en discordia es _HAS_ITERATOR_DEBUGGING y desarrolladores que lo usan están recomendando el asignar esa macro a cero. Esta macro es bastante básica así que estaba seguro que debía estar incluida en las opciones de compilación del Visual Studio, en concreto /O2, que permite aumentar la velocidad del código en detrimento de información de Debug, cosa que en modo Release no hace falta. Así fue, en un post de Microsoft confirma que esa variable es auto-asignada con el modo de compilación /O2 por medio de otra macro mucho más interesante que la anterior, _SECURE_SCL.
Supongo que cuando a alguien le dio algún error en el código iterando por un vector u otro contenedor de las STL vio esa macro y quiso investigar, seguramente la definió en el proyecto en modo Debug y vio que el rendimiento general de la aplicación aumentó muchísimo. Yo creo que hay que tener bastante precaución con estas cosas, sobre todo y normalmente cuando asignamos las propiedades correctas en el compilador debemos fiarnos de que el equipo de programación es capaz de optimizar más y mejor con una opción que nosotros experimentando.
Hace ya años que se lleva experimentando con el uso de voxels, sobre todo para renderizar contenidos líquidos, donde el voxel es el rey. ZBrush es con voxels, iD tech 5 no, pero anunciaron que tienen ya avanzado el uso de voxels y había imágenes, a día de hoy se sabe que los objetos estáticos del próximo motor de id utilizarán voxels.
¿Por qué tanto voxel? ¿Va a sustituir al renderizado actual (deferred rendering)? Pues no lo creo, a corto plazo no a no ser que me sorprendan en el E3. Los voxels es la manera de manejar datos de forma eficiente cuando quieres utilizar ray tracing por ejemplo. Aun queda un poco para que podamos renderizarlo todo por ray tracing y obtengamos un frame rate decente.Mientras tanto hay que ir actualizando las arquitectura de los motores e ir investigando sin parar. Nadie sabe si dentro de 1 año alguien conseguirá hacer algo diferente pero lo que está claro es que vamos a leer mucho sobre este tema.
Tengo un paper que miré hace unos 6 años sobre como renderizar nubes realistas y simular la formación y desaparición. Cuando se hizo ese paper no se podía utilizar el programable pipeline y se me ocurrian mil y una maneras de optimizarlo, creo que es mi paper preferido que algún día utilizaré. Bien, este paper proponía utilizar voxels, cubos orientados a la cámara rellenos de un color. El resultado era espectacular y la aniquilación del BUS de la GPU también :). Ahora creo que dentro de un tiempo volveré a recuperar ese paper y me auto-obligaré a ponerme al día sobre los voxels.
Para empezar tenemos lecturas recomendables y a recomendar:
If you download the last version of freeglut (2.6.0) in theory haves support for Windows 7, yes, compile and link well but when you try to write any message in the window appear japanese symbols etc… :D Continue reading →
Some thing to remeber… the clean way is ZOOM_STATE = not ZOOM_STATE
1
2
3
4
5
local ZOOM_STATE =true
ZOOM_STATE =(ZOOM_STATE ~= ZOOM_STATE)-- the same of not ZOOM_STATE
ZOOM_STATE =not ZOOM_STATE;print(ZOOM_STATE)
ZOOM_STATE =not ZOOM_STATE;print(ZOOM_STATE)
Bueno, resulta que han retrasado el lanzamiento del iPad porque en estados unidos se han quedado sin existencias! tardará 1 mes más de lo previsto en llegar para que les de tiempo de fabricar más iPad. En un principio yo desconocía que existiera una versión 3G del iPad tan pronto. Pero así es el tito-jobs. El caso es que me aposté unas birras a que el iPad iba a ser un éxito después de verlo en acción en mis manos porque antes creía que iba a ser un aparato sin mucho sentido de uso cotidiano. Pues bien marcamos una linea que era 1mill de unidades en un año, yo soy optimista y dije que era mucho. Como podréis leer 450.000 iPad WIFI y tienen 500.000 iPad 3G y se les queda corto para las ventas previstas y reservas que es por lo que retrasan el lanzamiento internacional.
Apple now says it won’t launch the iPad internationally until May, citing major U.S. demand as the primary reason for the one-month delay.
“Although we have delivered more than 500,000 iPads during its first week, demand is far higher than we predicted and will likely continue to exceed our supply over the next several weeks as more people see and touch an iPad,” the company says in a statement.
Continues Apple: “We have also taken a large number of pre-orders for iPad 3G models for delivery by the end of April.”
“Faced with this surprisingly strong U.S. demand, we have made the difficult decision to postpone the international launch of iPad by one month, until the end of May,” the statement concludes.
Apple has yet to reveal international launch prices for the device, which retailed at $499 when the wi-fi-only version hit shelves in the U.S. on April 3 — and by April 8, it had sold 450,000 units.
On that date, at an event in Cupertino, Apple CEO Steve Jobs revealed demand was already outpacing supply, stating “we can’t make enough of them yet.”
Traducción rápida: vendieron en la primera semana 500.000 iPad WIFI y han vendido antes de la salida del iPad 3G otros 450.000 iPad 3G a 500$. No tienen y deben fabricar más, de ahí el retraso, han superado sus expectativas de ventas de lejos.
If you have an existing iPhone application that you want to upgrade to run on iPad devices you need to upgrade the target that builds your iPhone application into a target that can build both an iPhone and an iPad application, or add a target to your project for building the iPad application.
To upgrade an iPhone target for iPad development, select the target in the Groups & Files list and choose Project > Upgrade Current Target for iPad.
For details about iPad-application development, see iPad Programming Guide.
Hoy ha caido en mis manos durante un rato el iPad. Hemos podido trastearlo un poco más y ver que tipos de juegos o aplicaciones pegan mas o son más manejables. Cuentos infantiles, eBooks, eComic… mejor verlo:
Se me ocurren cientos de usos, todos muy cómodos y diarios. Aun no se sabe el precio Europeo pero en USA son 400$. Creo que es un capricho bastante jugoso y en un principio no le di mi voto de confianza pero seguro que poco a poco si alguno lo tenéis en las manos y lo usáis un poco, seguro que gustar os va a gustar. Cabe destacar que todo tipo de cuentos, eBooks, eComic, juegos de tablero o cartas y que no requieran del uso del acelerómetro (para no cogerlo en peso) se potencian muchísimo. Un producto por tanto para un uso muy diferente del habitual que va a rescatar y llevar a actualizarse a clásicos como el Monopoly ya existente en Apple Store para iPhone como muchos otros.
Otra cuestión interesante es que no comparte tienda con iPhone / iPod, aunque podemos comprar sus aplicaciones y se verán adaptadas a la pantalla un bilinear de 2x si queremos y listo, para ciertas aplicaciones puede ser suficiente. Esto significa que se abre la oportunidad de llegar 1º al Apple Store otra vez y seguro que veremos adaptaciones muy buenas y que volverán a lanzarse en ventas. Echadle un ojo a Angry Birds, lo veo en iPad, ya ha vendido más de 1 mill de juegos.