Email: 
Contraseña:
Recordarme      
¿Usuario nuevo? ¡Date de alta!
menu
Busca en Noticias3D con Google
Realtek High Definition Audio Drivers v2.4325/02/2010
Radeon Catalyst 10.2 Windows y Linux17/02/2010
Realtek High Definition Audio Drivers v2.4212/02/2010
Radeon Catalyst 10.1 Windows y Linux27/01/2010
UniVGA3 v3.9121/01/2010
GeForce v196.21 WHQL XP, Vista y 719/01/2010
UniVGA5 v5.2619/01/2010
Realtek LAN RTL8168 y RTL8111 v7.01122/12/2009
Intel Chipset Software Installation Utility 9.1.1.102522/12/2009
Radeon Catalyst 9.12 Windows y Linux17/12/2009
Ancho de banda
(bandwidth): Es la capacidad de transporte de datos. Normalmente se mide en megabytes por segundo (MB/s) o en gigabytes por segundo (GB/s). Un ejemplo de esto sería una manguera de riego del jardín que transporta una cantidad determinada de litros de agua por segundo, pero cuanto mayor sea la manguera, más agua transportará. Cuanto más ancho de banda, mejor.
1. AMD ATi Radeon HD 5870 1GB
   Lecturas: 21147
2. AMD Athlon II X4 620 y comparativa a 2,6 GHz
   Lecturas: 19574
3. PowerColor ATi Radeon HD 5770
   Lecturas: 11862
4. AMD ATi Radeon HD 5970
   Lecturas: 11292
5. NVIDIA GF100 (Fermi): Arquitectura
   Lecturas: 10788
6. Gigabyte ATi Radeon HD 5850
   Lecturas: 10231
7. Asus Radeon HD 5870 Voltage Tweak
   Lecturas: 9970
8. AMD 780G Vs. 785G Vs. 790GX Vs. 790X
   Lecturas: 8183
9. Resumen de la serie ATi Radeon HD 5000
   Lecturas: 7493
10. P2P: entre lo legal y lo ilegal
   Lecturas: 7186
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:13867
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
11/03/2010El LHC cerrará por un año a finales de 2011
07/03/2010Naciones Unidas alerta sobre la basura electrónica
06/03/2010Señales de tráfico con tecnología LED
17/02/2010Célula solar eficiente-flexible
16/02/2010Suecia es el país más tecnológico
14/02/2010Investigadores crean circuito que se autoalimenta
29/01/2010Fotocopiadora 3D Photosimile 5000
27/01/2010Investigadores crean la primera oblea de grafeno de 100mm
15/01/2010TSMC contratará a 3.000 empleados más
14/01/2010La tasa de fabricación a 40nm aún por debajo del 70%
12/01/2010Nokia, la más verde según Greenpeace
12/01/2010Marvell prepara CPUs ARM de cuatro núcleos
11/01/2010Qualcomm seguirá trabajando con TSMC y GF
11/01/2010Booth Babes en CES 2010
11/01/2010Se acabó el Libro de Familia, Registro Civil electrónico
Noticias en: Software
11/03/2010Precios de Office 2010
11/03/2010Windows 7 SP1 a finales de año
09/03/2010El 97% de los PCs de la Administración usan Windows
07/03/2010Ubuntu cambiará de imagen
05/03/2010Subtítulos automáticos en Youtube
05/03/2010RealNetworks pierde juicio contra MPAA por RealDVD
04/03/2010Google regalará Nexus One a desarrolladores con éxito
03/03/2010Symbian^4, ¿revolucionará el mercado smartphone?
02/03/2010Grooveshark para iPhone tendrá que ser por Cydia
01/03/2010Muestran primer móvil con Windows Phone 7, LG
01/03/2010Fennec (Firefox) para Android más cerca que nunca
26/02/2010Skype para Windows Mobile retirado
26/02/2010El desarrollo del Kernel de Linux tendría un coste de 1.025 millones de euros
26/02/2010DirectX 11 llegará a los navegadores
25/02/2010Flash 10.1 en móviles, rendimiento perfecto
 
©2000 - 2010