Email: 
Contraseña:
Recordarme      
¿Usuario nuevo? ¡Date de alta!
menu
Busca en Noticias3D con Google
GeForce v175.16 WHQL Win.XP13/05/2008
GeForce v175.16 WHQL Win.Vista13/05/2008
Realtek High Definition Audio Drivers v1.9212/05/2008
VIA HyperionPro 5.17A28/04/2008
Intel Graphics Driver v15.9 para Win Vista25/04/2008
Realtek High Definition Audio Drivers v1.9122/04/2008
Radeon Catalyst 8.4 Windows y Linux16/04/2008
UniVGA3 v3.8409/04/2008
Forceware v174.74 GeForce 9 Vista/XP01/04/2008
Realtek High Definition Audio Drivers v1.9031/03/2008
SDRAM
(Syncronous Dynamic Random Access Memory). Memoria sincronizada de acceso aleatorio dinámico. Es un tipo de memoria que funciona de manera sincronizada con con el procesador, adaptándose a la velocidad a la que funciona este último, lo que permite tener de una manera rápida acceso a los datos de la memoria.
1. Hub vs. Switch
   Lecturas: 148189
2. Como elegir el TFT correcto
   Lecturas: 104447
3. Internet por red eléctrica (PLC)
   Lecturas: 76994
4. Conoce: Intel Pentium 4 Socket 775
   Lecturas: 74554
5. Grand Theft Auto: San Andreas
   Lecturas: 66741
6. Conoce: AMD Athlon64 939
   Lecturas: 58800
7. ATi Radeon X1300 PRO, X1600 XT y X1800 XL
   Lecturas: 57153
8. Windows vs. Linux en el 2005 Parte I
   Lecturas: 51620
9. Más memoria para la VGA significa más velocidad ¿seguro?
   Lecturas: 47001
10. Monta tu Athlon64
   Lecturas: 46408
Raytracing: Un motor de render
Introducción

El raytracing es una técnica para obtener imágenes 3D generadas por ordenador. No consiste en retoque fotográfico, genera una imagen 3D desde cero. Raytracing es una palabra compuesta del arameo errr esto digo inglés, sus dos partes describen como funciona esta técnica. Para generar una escena 3D se pueden tomar varias aproximaciones dependiendo de la técnica que se usa, en este artículo veremos el raytracing y como hacer un motor de render que no será en tiempo real. El enfoque que pretendo tomar en este artículo es partir desde cero e ir incrementando el nivel de dificultad (como un juego) pero claro unos conocimientos mínimos de matemáticas, programación en C++ son imprescindibles para llegar al final. Lo que me ha movido ha escribir esto es la aparición de películas como Shrek o Final Fantasy, las dos creadas usando esta técnica de render llevada a la casi-perfección. Creo que cuando terminéis de leer esto podréis evaluar mejor el trabajo que hay detrás de una película de este tipo. También entenderéis mejor lo que hace una tarjeta aceleradora 3D ya que varios de los efectos del motor de render los hace una aceleradora por hardware en tiempo real.

El principio

El mundo que nos rodea está compuesto de objetos sólidos, líquidos, gases y fuentes de luz (de varios tipos, unas que emiten luz en todas direcciones y otras solo en alguna). El raytracing modela el comportamiento de luz y su interacción con el mundo. Debido a la complejidad de líquidos y gases limitaremos nuestro campo de acción a los sólidos (opacos y transparentes) y a las fuentes de luz que emiten en todas direcciones. Lo primero que debemos imaginar es que tenemos un mundo o escena (consideraremos al mundo como una descripción geométrica limitada a unos cuantos objetos) y un observador o cámara (del que también tendremos otra descripción). Raytracing intenta modelar cómo vería el mundo el observador. Una forma de hacer esto sería seguir cada rayo de luz que emite cada fuente de luz y ver si va a parar al ojo del observador. Esto se podría hacer ya que el comportamiento de la luz es conocido pero computacionalmente es imposible ya que hay muchos rayos que el observador no vería o simplemente no interactuarían con el mundo. Así que lo que se hace es lo contrario, lanzar rayos desde el observador hacia el mundo y llegado un cierto momento calcular la luz que influye en ese rayo. En el caso de una película el observador sería la cámara y la escena el mundo. Otro punto a destacar es que tipo de cámara (observador) que usaremos, perspectiva o paralela. La verdad es que son distintas y trabajan de formas diferentes pero el resultado es muy similar, las veremos en detalle más adelante.

Para empezar a realizar un motor de render lo primero es saber hasta donde queremos llegar y hacerlo progresivamente. Empezaremos con los objetos sólidos y modelaremos varios tipos, empezando por el objeto más sencillo, la esfera. Luego podremos ir añadiendo otros tipos de objetos: polígonos, cilindros, conos, curvas de Bezier, Nurbs... Si con esto no tienes suficiente se puede optimizar mucho el programa de raytracing llevándolo a entornos paralelos, programando por zonas mediante árboles, añadiendo texturas, efectos ufffff y muchas cosas más, si lo consigues puedes montar una empresa... Yo sinceramente lo hice en plan casero y programé las esferas, los polígonos y las texturas.

Base matemática >>
 Añadir comentario
1. por manu (14) - 28/06/2005 13:15:01
He de decir que el artículo está muy bien, además precisamente este año he cursado asignaturas que trataban estos temas de render y salvo uno o dos detalles que he echado en falta, está bastante completo. ¡Enhorabuena!
2. por jrpvfirmist@hotmail.com (1) - 15/01/2007 10:56:58
Es correcto, pero una pregunta que a lo mejor es muy evidente: como interactuas todo eso con un software de modeloado tipo maya?

Título:Raytracing: Un motor de render
Fecha:27/03/2002
Autor:Alex Canalda
Visitas:10547
Comentarios:2
Introducción
Base matemática
Iluminación
La cámara y la escena
Raycasting y Raytracing
Intersecciones
Texturas
Codificación
Ejemplos e Imágenes
Mini manual de instalación
Conclusiones
Software
Curso desde 0 de GNU/L...09/04/2008
Curso desde 0 de GNU/L...22/03/2008
Curso desde 0 de GNU/L...16/01/2008
Curso desde 0 de GNU/L...09/01/2008
Curso desde 0 de GNU/L...31/12/2007
Más...
Grupo: Sin Grupo
17/05/2008Alienware quiere que el sector tecnológico espabile
14/05/2008 La CNE propone que la electricidad suba en julio un 11,3%
11/05/2008El sueño de todo geek: la oficina de Stefan Didak
09/05/2008Los datacenters y la contaminación
06/05/2008Analizamos: Fuente AeroCool 750
06/05/2008Robots con forma de insecto
06/05/2008NP: GlacialTech lanza las PSU “Series AL” 80 Plus
05/05/2008Cubit, la pantalla multitáctil open source
04/05/2008Convención robótica en Taiwan
02/05/2008Analizamos: caja HTPC Glacialtech Altair A380
01/05/2008El robot que se hace a sí mismo
01/05/2008Quickies, los post-it inteligentes
28/04/2008Plustek OpticBook 4600, escáner optimizado para libros
27/04/2008El arte llega a los portátiles
26/04/2008Hologramas interactivos
Noticias en: Software
16/05/2008Flash Player 10 Beta para Windows, Linux y Mac
14/05/2008Yahoo! compra plugin Inquisitor para Safari
14/05/2008QuarkXPress 8 en agosto
13/05/2008CPU-Z 1.45
12/05/2008eMule 0.49a final
12/05/2008Mame 0.125
09/05/2008OpenOffice 3 beta ya disponible
08/05/2008Sun: "MySQL es, y será siempre abierto"
05/05/2008GPU-Z v0.2.1
02/05/2008Adobe libera el código de Flash
02/05/2008Thunderbird 2.0.0.14
30/04/2008Skype 3.8.0.115 para Windows
30/04/2008BSPlayer 2.28
30/04/2008Rivatuner 2.09
29/04/2008Análisis, detalles y aclaraciones de 3DMark Vantage
 
©2000 - 2008