Email: 
Contraseña:
Recordarme      
¿Usuario nuevo? ¡Date de alta!
menu
Busca en Noticias3D con Google
Radeon Catalyst 10.8 Windows y Linux25/08/2010
Realtek High Definition Audio Drivers v2.5103/08/2010
Radeon Catalyst 10.7 Windows y Linux26/07/2010
Intel Graphics Driver v15.17.9.2182 para Vista/722/07/2010
GeForce v258.96 WHQL XP, Vista y 7 19/07/2010
Realtek High Definition Audio Drivers v2.5009/07/2010
Realtek LAN RTL8168 y RTL8111 v7.02122/06/2010
Radeon Catalyst 10.6 Windows y Linux16/06/2010
Creative X-FI drivers 2.18.0015 Windows 716/06/2010
GeForce v257.21 WHQL XP, Vista y 7 15/06/2010
Blog
Un weblog, también llamado blog o bitácora, es un sitio web donde se recopilan cronológicamente mensajes de uno o varios autores, con un uso o temática en particular, siempre conservando el autor la libertad de dejar publicado lo que crea pertinente.
Los weblogs son principalmente personales y aunque en algunos casos pueden estar incluidos dentro de un periódico digital o ser un blog corporativo, suelen estar escritos por un autor o autores determinados que mantienen habitualmente su propia identidad.
Hoy en día existen muchas herramientas de mantenimiento de blogs que permiten fácilmente, y muchas de ellas gratuitamente, administrar todo el weblog, coordinar, borrar o reescribir los artículos, moderar los comentarios de los lectores, etc… por lo que su uso se está extendiendo rápidamente.
1. NVIDIA GeForce GTX 480 (Fermi)
   Lecturas: 21628
2. Radeon HD 5870 Vs GeForce GTX 480
   Lecturas: 13842
3. HIS Radeon HD 5770 Vs. Radeon HD 4000
   Lecturas: 13207
4. AMD Phenom II X6 (Thuban)
   Lecturas: 10658
5. Intel Core i7-980X
   Lecturas: 10591
6. Gigabyte GeForce GTX 470
   Lecturas: 7257
7. El chipset 890GX de AMD
   Lecturas: 6630
8. Disipador para CPU Thermaltake Frío
   Lecturas: 6591
9. Resumen de la serie NVIDIA GeForce GT 400
   Lecturas: 6146
10. Yo jugué a eso VIII
   Lecturas: 6012
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 >>

Ir a:
 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:14377
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
Cryostasis y PhysX 07/06/2009
Sacred 2 y PhysX21/04/2009
Mirror´s Edge y PhysX12/02/2009
Curso desde 0 de GNU/L...27/08/2008
Curso desde 0 de GNU/L...20/08/2008
Más...
Grupo: Sin Grupo
25/08/2010ARM anuncia extensiones ARMv7-A
22/08/2010Primera galería de la Gamescom 2010 y sus "boothbabes"
20/08/2010NP: El dia sin IVA en Coolmod.com
19/08/2010¿Qué buscar en un receptor AV nuevo?
11/08/2010NP: concurso de camisetas Coolmod 2010
10/08/2010Combinación de CPU y GPU para un superordenador
24/07/2010Vislab enviará dos vehículos sin conductor desde Italia a China
18/07/2010Pilas que se cargan con sólo agitarlas
18/07/2010Tecnología que personaliza la publicidad
16/07/2010TSMC empieza hoy la construcción de una nueva fábrica
03/07/2010Recrean pulmón humano en un microchip
27/06/2010CD Sea: Arte con CDs
26/06/2010Mercedes E-Cell, en pruebas
19/06/2010Los niños no deberían usar un PC
01/06/2010Superordenador apunta a simular el mundo
Noticias en: Software
03/09/2010GPU-Z 0.4.6 ya disponible
02/09/2010AutoCAD vuelve a Mac en octubre
01/09/2010Opera también abandona a PowerPC
01/09/2010SocialDeck la última adquisición de Google
01/09/2010Software aparecido en agosto: otros programas
01/09/2010Software aparecido en agosto: Reproductores multimedia
01/09/2010Software aparecido en agosto: Mensajería instantánea
01/09/2010Software aparecido en agosto: Adobe
01/09/2010Software aparecido en agosto: Navegadores
30/08/2010Aceleración por GPU en Google Chrome 7
28/08/2010Firefox 4 no funcionará en PowerPC
27/08/2010Facebook dejará de soportar IE6 en su chat
27/08/2010Adiós al comité de OpenSolaris
26/08/2010¿Es ésta la interfaz de IE9?
24/08/2010Nueva demostración de gráficos con HTML5 y Javascript
 
©2000 - 2010