Tezcatlipoca, es señor del cielo y de la tierra, fuente de vida, tutela y amparo del hombre, origen del poder y la felicidad, dueño de las batallas, omnipresente, fuerte e invisible.
El lado norte del universo se identificaba con el Mictlán, región del reposo, y se llama Mictlampa, rumbo de los muertos. Se asocia con el color negro, con la imagen del Técpatl o cuchillo de pedernal, lo preside Yayauhqui Tezcatlipoca (Oscuro espejo su esplender). El norte es una región árida por donde soplan los vientos fríos. Tezcatlipoca es señor de los guerreros y gobernantes; guardian del frío que representa el cielo nocturno. Es un protector que tiene el don de la ubicuidad. Su atributo principal es el espejo que humea; su disfraz es el jaguar, el que va al corazón de la montaña (Tepeyolohtli) y su emblema un cuchillo de obsidiana, que representa el viento negro y cortante, como las palabras que desarmonizan el entorno y la comunicación cuando no se emplean adecuadamente […]
No voy a decir nada más, vayan a ver lo que dice morticiia donde lo he sacado, en otra de sus fabulosas entradas.
A mi de pequeñito el tabaco siempre me pareció asqueroso, hasta el propio tacto de los cigarrilos o del celofán de los paquetes me daba grima, y para acabar de tocarme los cojones todos esos años en los que estaba tranquilamente jugando en mi habitación y mis padres me hacian ir al bar de la esquina a comprarles un paquete de tabaco. En cualquier caso a eso de los 10 u 11 años tome la costumbre de mantener permanentemente cerrada la puerta de mi habitación. Un tiempo después si había que comprar (leche, huevos etc.) iba, pero el tabaco no me salía de los cojones. Dejé de ver peliculas en familia por ejemplo y las comidas/cenas las pasaba volando, para evitar estar un un medio ambiente digamos contaminado. Lo peor era mi padre encendiendo un puto cigarro entre plato y plato. Era curioso ver como el techo del comedor pasaba del blanco al “se supone que es blanco” a los pocos meses de haberlo pintado mientras el de mi habitación seguía blanco de verdad.
Francamente, para un niño tener unos padres gilipollas, quiero decir fumadores puede ser una auténtica putada. Así que prohibir fumar en los bares no se, pero yo le añadía castración química a los cigarrillos fijo.
This is what we have been demonstrating at SIGGRAPH:
There are two main strategies to render a computer generated image: the rasterizing, in which the polygons are projected to the screen and shaded according to some rules, and the ray-tracing, where rays are traced from the eye through the pixels to intersect the scene and compute the colour. The first one is the one that is commonly used for videogames as it allows, for a limited (though currently really high, by the order of millions) number of polygons, to update the image shown in the screen in real time (at least 30 frames per second), changing the camera position and/or moving a character. The ray-tracing is used to compute high quality and realistic images, that typically take from minutes to several hours to compute and are later used for advertisements, comercials or movies. Since the developement of high performance graphic cards especialised in rasterizing (videogames), and especially since the appearance of programmable shaders and GPU’s, lots of attempts have been made to accelerate the slower of the two techniques, the ray-tracing.
After a few years of some attempts in research, it looks like finally a few companies have put its investments in the commercial development of very fast ray-tracing in the GPU. But their strategies follow slightly different paths, as we will see. The next lines come from the the thoughts and ideas I was writing down in my notebook on the Hot3D session in High Performance Graphics conference, where Caustic presented CausticRT, Intel presented Larrabee as a possible platform for really fast ray-tracing, and nVidia presented OptiX. After the three talks, there was a bit of a panel and discussion.
CausticRT by Caustic
CausticRT consists basically in two somewhat interdependent subproducts. On the one hand a new API based on OpenGL, called CausticGL is presented. It is used to set up, configure and specify the code for programmable rays that are traced into the scene and can be used for any computation that involves loads of rays to be traced in parallel. This API is quite clever and has the aim of becoming a standard. On the other hand they present CausticOne, a graphics card that acts as an interface between the API CausticGL and the rest of the hardware (CPUs and GPUs) and allow for very efficient computation of the ray-tracing. Of course, their business model relies on selling this hardware.
One of their selling points is that the API provides an abtraction for the ray-tracing layer, and in this way the developer does not have to worry anymore for the actual code involving scene acceleration structures or the actual ray-polygon intersection algorithms. For me, as part of a development team that does a ray-tracer, this is annoying, because what we developers want is to have access to this code and algorithms, just in case something is wrong or simply can be improved. Otherwise we have to rely on the faith that everything will work fast and efficient for all cases.
They have an agreement with the Brazil renderer, which has been ported to this platform, and some of their amazing demos are made using Brazil.
Larrabee by Intel
Larrabee is, above all, a bunch of important promises from Intel. It will be, hopefully at some point next year (2010), a revolutionary multi parallel processing card that aims to beat ATI and nVidia graphic cards. It is designed, besides for working for videogames as any given GPU card, to overcome the problems that programs not especifically designed for GPU (commonly called GPGPU) have with GPU cards, and, most importantly for a programmer like me, to avoid having to learn a new complicated shading language, as the known C++ code will be able to be compiled with for card.
Ray-tracing is one of the problems that is not directly solvable by a GPU program and falls into the world of GPGPU (even though we are talking about graphics too, we have seen before that GPUs are for rasterizing, not for ray-tracing), and if Intel gives us, via Larrabee, an easy way to efficiently program it in a parallel way, for me this is a winner.
OptiX by nVidia
OptiX is, as CausticGL, an API for programming ray-tracing in the GPU. The actual code looks very similar in the way rays are set up and programmed, but this nVidia one looks at first sight a bit uglier and unclean. In any case, the fact that this API works directly with an nVidia card, instead of using a hardware interface as CausticOne to accelerate ray-tracing, makes a priory the need for the new hardware quite void. Also Mental Images has been presenting their own ray-traced renderer based on harware aceleration, called iray. As we know that Mental Images is owned by nVidia, it is quite clear that iray is built using the OptiX technology, and the demos are quite impressive.
As a developer, I have all my hopes set upon Larrabee. Developing a ray-tracer for Larrabee should be several times easier than doing it for CausticOne or for nVidia, although the existence of their respective APIs should make lives easier to those that do not need to know anything about acceleration structures for the scene or the way the rays are intersected.
The clear advantadge is at this moment for nVidia. Their cards dominate the market of GPU, and do not need to fight to get introduced, even with a ray-tracing acceleration specific product (as CausticOne, which, as we have said can be overriden by OptiX) or with a more or less uncertain future product as Larrabee.
One year from now, we may have a more clear idea on how things are going to be in the world of ray-tracing in hardware. Meanwhile we will still be using software to ray-trace our images.
It is unlikely that you can see a short animated film unless it comes with a mainstream movie, as Parly Cloudy comes with Up from Pixar, or you can go to one of the animation festivals around the world, as Annecy, Art Futura or Siggraph.
I can understand that the thinking heads of the big production companies are reluctant to let some movie distribute freely in the web, as they have their mass distribution media to get to the people, and that produces large revenues. But for short films or independent art that don’t have well formed distribution channels, and they are amazing pieces of work, I can’t understand why the work is somewhat hidden from the consumer under a simple and unsatisfactory trailer. If this small pieces of work were more publicly and freely broadcast, the author would gain more fame and recognition.
I say this because three of the best animated films that I have had the opportunity to see at SIGGRAPH these days are not available on the web (or I got tired of searching). If someone finds them, even if they are edonkey or emule links, or bittorrent files, please let me know. I will now put the trailers in here.
The Spine by Chris Landreth
The acclaimed director of Ryan (2004) and Bingo (1998) presents a devastating psychological story about couples with dependency problems. As he did with Ryan, the psychology and the state of mind of the character is metaphorically extrapolated to the body shapes. Here you can see the making of:
Alma by Rodrigo Blaas
In the tradition of the series The Twilight Zone or the spanish Historias para no dormir, by Narciso Ibáñez Serrador, this story about a girl fascinated by a doll that copies her features and clothes, is at the same time fascinating and terrifying. Here is just 22 seconds of it:
French Roast by Frabrice O. Joubert
A beggar comes into a café where a wealthy old man refuses to give him a single coin. Soon the man will realize that he left the purse at home and he has no way of paying his coffe. It is exhilaratin but also makes you think about the social classes in this world. Here is the trailer.
On Monday morning at High Performance Graphics, Tim Sweeney from Epic Games talked about the End of the GPU roadmap. I am not going to sumarize the talk, but just point out an idea that was in one of his slides.
Let’s say X is the cost to create a single-threaded efficient program. Then,
- if you want it multi-threaded, the cost is 2X,
- if you want it to program for a cell architecture in a sony playstation 3, the cost is 5X,
- if you want it to port it to GPGPU with CUDA, the cost is 10X.
For the average company, more than 2X the cost is usually unaffordable.
So, please, hardware designers and developers, provide hardare easy to program, with good and efficient compilers.
And I point out: Is this a claim for Larrabee?