TUTORIAL: foto-realismo Técnicas de Ray Tracing

  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23404
  • Loc: Woodbridge VA
  • Status: Offline

Nota Septiembre 17th, 2009, 11:38 am

Introducción


Es obvio (desde el título, si nada más) que este tutorial fue completamente inspirada por digitalMedias excelente tutorial en Foto-realismo Técnicas de Vectores . Similar a Chriss tutorial, esto no es necesariamente un paso a paso cómo, sino más bien un ejemplo de lo que se puede hacer. Dar crédito donde es debido, el ejemplo se presenta a continuación yo no genera sino más bien un ejemplo dado de la persona que escribió el utilizado en este incluye la creación de POVRay, específicamente, Jaime Vives Piqueres -- http://www.ignorancia.org . Es mi esperanza que este tutorial va a generar un cierto interés en las posibilidades de trazado de rayos.

Las herramientas usadas


POVRay 3. 6 (Persistence of Vision Ray Tracing)
Frutas Texturing II Incluir archivos obtenidos a partir de aquí

Ejemplo de código


Como se ha indicado el código de abajo no es mío, y Ive salió del crédito intacto. Básicamente, inspirado por el trabajo de DMS, quería saber si podía hacer algo similar con Povray y generar una foto-realistas de manzana. Didnt tomar, pero unas cuantas búsquedas para encontrar el incluye vinculados anteriormente.

Empezar mal con el resultado final - la manzana.
Attachments:
test_apple.jpg


Este es el código utilizado para generar la manzana, la mesa de mármol y de fondo.
POVRAY Código: [ Select ]
                                  /*
 
 /*
 
   Fruit texturing example: fuji apple
 
   --
   Jaime Vives Piqueres, Jun-2002.
   
   jaime@ignorancia.org
   http://www.ignorancia.org
 
   --
   
   This is a demonstration scene for my fruit texturing macros. The trick
   consists on using a radial pattern to distribute rotated copies of another
   pigment, wich uses also rotated copies of a third pigment, following the
   slope y pattern.
   
   This complex pigment is used as the second layer of a multilayer texture,
   to give the typical apple skin stripe, with some transparency to show a
   lower base layer. Another third layer on top of these helps to integrate
   (soft/hide) the "longitudinal stripe" (in this example this third layer is
   also a two-layer texture, to add the finish and little speckles).
   
   See "i_fruitext.inc" for the details...
   
*/
 
// *** global ***
#version 3.5;
global_settings{
 noise_generator 2
 max_trace_level 8
 assumed_gamma 1.0
 ambient_light 0.0
 radiosity{
//  nearest_count 10 error_bound .5  
 }
}
 
// *** standard ***
#include "colors.inc"
#include "textures.inc"
#include "woods.inc"
#include "stones.inc"
 
// *** common and control variables ***
#declare use_table=1;
#declare use_blur=3;    //(x8 = samples)
#declare hf_res=1;     
#declare r1=seed(930);  // apple seed
#declare r_l=seed(1003);  // light pos. seed
 
 
// *** fuji apple colors, pigments and textures ***
// basic pigments
#declare p1=Firebrick*.5+OrangeRed*.1;
#declare p2=Yellow*.8+White*.1;
#declare p3=YellowGreen*.8+White*.1;
// base texture (bottom layer)
#declare t_base=
texture{
 pigment{
  cylindrical
  turbulence .25
  color_map{
   [0.0 p1]
   [0.2 p1]
   [0.7 p3]
   [1.0 p2]
  }
  scale 5
  translate 1
 }
}
// pìgment for the radial-slope texture ("stripes", second layer)
#declare p_stripes=
pigment{
 pigment_pattern{
  bumps
  turbulence .5
  lambda 2
  scale <1,7,1>*.15
 }
 color_map{
  [0.0 p1]
  [0.45 p1]
  [0.45 p1 transmit .9]
  [1.0 p1 transmit .9]
 }
}
// *** "soft/hide" texture (third layer), with additional "dirty" layer ***
#declare t_upper=
texture{
 pigment{
  cylindrical
  turbulence .25
  color_map{
   [0.0 p1 transmit .8]
   [0.2 p1 transmit .6]
   [0.7 p3 transmit .1]
   [1.0 p3 transmit .0]
  }
  scale 4
  translate 1
 }
}
texture{
 pigment{
  granite
  turbulence .5
  lambda 3
  color_map{
   [0.00 DarkGreen*.5 transmit .1]
   [0.1 DarkTan transmit .5]
   [0.20 DarkGreen transmit .8]
   [1.00 DarkTan transmit .9]
  }
 }
 normal{
  granite .1
  turbulence .5
  lambda 3
  scale .01
 }
 finish{
  phong .3 phong_size 40
  reflection {0,.01}
 }
 scale 4
}
 
// *** create the final texture ***
#include "i_fruitext.inc"  // fruit texturing macros
#local t_apple=m_radial_sloped(t_base,p_stripes,t_upper,r1)
 
// *** apply the texture to the apple ***
#include "i_apple.inc"     // apple object
#declare o_apple=object{apple(seed(11),t_apple)}
object{o_apple rotate 360*rand(r1)*y translate <0,82.5,1>}
 
 
 
// *** testing scenario ***
// marble table
#if (use_table)
#declare p_base_marble1=
pigment{granite turbulence .05 scale .5 translate 33}
#declare p_base_marble2=
pigment{crackle turbulence .1 scale 1 translate 333}
#declare p_marble=
pigment{
 bozo turbulence 1
 pigment_map{
  [0.00 p_base_marble1]
  [1.00 p_base_marble2]
 }
 scale .2
}
#declare t_marble=
texture{
 T_Stone26
 scale 4
 finish{
  reflection{.01,.1}
 }
}
height_field{
 function 512*hf_res,512*hf_res{
  pigment{p_marble}
 }
 texture{t_marble}
 translate -.5
 scale <30,.05,30>
 translate <1,80.2,4>
}
// room
box{-.5,.5
 hollow
 scale 500
 pigment{
  checker color SummerSky color White
  scale 15
 }
}
plane{y,249 pigment{White}}
plane{y,-249 pigment{Gray}}
#end
 
 
 
// *** lights ***
light_source{
 <50,230,-100>
 White*30000
 fade_distance 1
 fade_power 2
}
box{-.5,.5
 material{
  texture{
   pigment { color rgbf<1, 1, 1, 1> }
   finish {  diffuse 0 }
  }
  interior{
   media {
    method 1
    emission 10
    intervals 10
    samples 1, 10
    confidence 0.9999
    variance 1/1000
   }
  }
 }
 hollow
 no_shadow
 scale <50,10,50>
 translate <50,231,-100>
}
 
 
// **************
// *** camera ***
// **************
#declare desde=<-10,80+31,-55>;
camera{
 location desde
 direction 3.2
 look_at <.1,84.5,0>
 #if (use_blur)
 focal_point <.1,83.9,0>
 aperture 2
 blur_samples 8*use_blur
 variance 0
 #end
}
 
 
 
 
  1.                                   /*
  2.  
  3.  /*
  4.  
  5.    Fruit texturing example: fuji apple
  6.  
  7.    --
  8.    Jaime Vives Piqueres, Jun-2002.
  9.    
  10.    jaime@ignorancia.org
  11.    http://www.ignorancia.org
  12.  
  13.    --
  14.    
  15.    This is a demonstration scene for my fruit texturing macros. The trick
  16.    consists on using a radial pattern to distribute rotated copies of another
  17.    pigment, wich uses also rotated copies of a third pigment, following the
  18.    slope y pattern.
  19.    
  20.    This complex pigment is used as the second layer of a multilayer texture,
  21.    to give the typical apple skin stripe, with some transparency to show a
  22.    lower base layer. Another third layer on top of these helps to integrate
  23.    (soft/hide) the "longitudinal stripe" (in this example this third layer is
  24.    also a two-layer texture, to add the finish and little speckles).
  25.    
  26.    See "i_fruitext.inc" for the details...
  27.    
  28. */
  29.  
  30. // *** global ***
  31. #version 3.5;
  32. global_settings{
  33.  noise_generator 2
  34.  max_trace_level 8
  35.  assumed_gamma 1.0
  36.  ambient_light 0.0
  37.  radiosity{
  38. //  nearest_count 10 error_bound .5  
  39.  }
  40. }
  41.  
  42. // *** standard ***
  43. #include "colors.inc"
  44. #include "textures.inc"
  45. #include "woods.inc"
  46. #include "stones.inc"
  47.  
  48. // *** common and control variables ***
  49. #declare use_table=1;
  50. #declare use_blur=3;    //(x8 = samples)
  51. #declare hf_res=1;     
  52. #declare r1=seed(930);  // apple seed
  53. #declare r_l=seed(1003);  // light pos. seed
  54.  
  55.  
  56. // *** fuji apple colors, pigments and textures ***
  57. // basic pigments
  58. #declare p1=Firebrick*.5+OrangeRed*.1;
  59. #declare p2=Yellow*.8+White*.1;
  60. #declare p3=YellowGreen*.8+White*.1;
  61. // base texture (bottom layer)
  62. #declare t_base=
  63. texture{
  64.  pigment{
  65.   cylindrical
  66.   turbulence .25
  67.   color_map{
  68.    [0.0 p1]
  69.    [0.2 p1]
  70.    [0.7 p3]
  71.    [1.0 p2]
  72.   }
  73.   scale 5
  74.   translate 1
  75.  }
  76. }
  77. // pìgment for the radial-slope texture ("stripes", second layer)
  78. #declare p_stripes=
  79. pigment{
  80.  pigment_pattern{
  81.   bumps
  82.   turbulence .5
  83.   lambda 2
  84.   scale <1,7,1>*.15
  85.  }
  86.  color_map{
  87.   [0.0 p1]
  88.   [0.45 p1]
  89.   [0.45 p1 transmit .9]
  90.   [1.0 p1 transmit .9]
  91.  }
  92. }
  93. // *** "soft/hide" texture (third layer), with additional "dirty" layer ***
  94. #declare t_upper=
  95. texture{
  96.  pigment{
  97.   cylindrical
  98.   turbulence .25
  99.   color_map{
  100.    [0.0 p1 transmit .8]
  101.    [0.2 p1 transmit .6]
  102.    [0.7 p3 transmit .1]
  103.    [1.0 p3 transmit .0]
  104.   }
  105.   scale 4
  106.   translate 1
  107.  }
  108. }
  109. texture{
  110.  pigment{
  111.   granite
  112.   turbulence .5
  113.   lambda 3
  114.   color_map{
  115.    [0.00 DarkGreen*.5 transmit .1]
  116.    [0.1 DarkTan transmit .5]
  117.    [0.20 DarkGreen transmit .8]
  118.    [1.00 DarkTan transmit .9]
  119.   }
  120.  }
  121.  normal{
  122.   granite .1
  123.   turbulence .5
  124.   lambda 3
  125.   scale .01
  126.  }
  127.  finish{
  128.   phong .3 phong_size 40
  129.   reflection {0,.01}
  130.  }
  131.  scale 4
  132. }
  133.  
  134. // *** create the final texture ***
  135. #include "i_fruitext.inc"  // fruit texturing macros
  136. #local t_apple=m_radial_sloped(t_base,p_stripes,t_upper,r1)
  137.  
  138. // *** apply the texture to the apple ***
  139. #include "i_apple.inc"     // apple object
  140. #declare o_apple=object{apple(seed(11),t_apple)}
  141. object{o_apple rotate 360*rand(r1)*y translate <0,82.5,1>}
  142.  
  143.  
  144.  
  145. // *** testing scenario ***
  146. // marble table
  147. #if (use_table)
  148. #declare p_base_marble1=
  149. pigment{granite turbulence .05 scale .5 translate 33}
  150. #declare p_base_marble2=
  151. pigment{crackle turbulence .1 scale 1 translate 333}
  152. #declare p_marble=
  153. pigment{
  154.  bozo turbulence 1
  155.  pigment_map{
  156.   [0.00 p_base_marble1]
  157.   [1.00 p_base_marble2]
  158.  }
  159.  scale .2
  160. }
  161. #declare t_marble=
  162. texture{
  163.  T_Stone26
  164.  scale 4
  165.  finish{
  166.   reflection{.01,.1}
  167.  }
  168. }
  169. height_field{
  170.  function 512*hf_res,512*hf_res{
  171.   pigment{p_marble}
  172.  }
  173.  texture{t_marble}
  174.  translate -.5
  175.  scale <30,.05,30>
  176.  translate <1,80.2,4>
  177. }
  178. // room
  179. box{-.5,.5
  180.  hollow
  181.  scale 500
  182.  pigment{
  183.   checker color SummerSky color White
  184.   scale 15
  185.  }
  186. }
  187. plane{y,249 pigment{White}}
  188. plane{y,-249 pigment{Gray}}
  189. #end
  190.  
  191.  
  192.  
  193. // *** lights ***
  194. light_source{
  195.  <50,230,-100>
  196.  White*30000
  197.  fade_distance 1
  198.  fade_power 2
  199. }
  200. box{-.5,.5
  201.  material{
  202.   texture{
  203.    pigment { color rgbf<1, 1, 1, 1> }
  204.    finish {  diffuse 0 }
  205.   }
  206.   interior{
  207.    media {
  208.     method 1
  209.     emission 10
  210.     intervals 10
  211.     samples 1, 10
  212.     confidence 0.9999
  213.     variance 1/1000
  214.    }
  215.   }
  216.  }
  217.  hollow
  218.  no_shadow
  219.  scale <50,10,50>
  220.  translate <50,231,-100>
  221. }
  222.  
  223.  
  224. // **************
  225. // *** camera ***
  226. // **************
  227. #declare desde=<-10,80+31,-55>;
  228. camera{
  229.  location desde
  230.  direction 3.2
  231.  look_at <.1,84.5,0>
  232.  #if (use_blur)
  233.  focal_point <.1,83.9,0>
  234.  aperture 2
  235.  blur_samples 8*use_blur
  236.  variance 0
  237.  #end
  238. }
  239.  
  240.  
  241.  
  242.  



Exactamente lo que está sucediendo en el Código


Para aquellos que nunca usaron whove POVRay, en pocas palabras, las imágenes son generadas con el código de programación. Se ve un poco intimidante al principio, sin embargo, cualquier persona familiarizada con cualquier tipo de lenguaje de programación puede averiguar bastante intuitiva lo que está pasando. Código POVRay puede usar una variedad de archivos de inclusión (. INC). Esencialmente, usted puede referirse a las "clases" - código simplemente reutilizables. Por ejemplo, usted se dará cuenta en la presente solicitud de que varios comunes incluyen archivos se incluyen la creación de diversos colores, texturas, maderas y piedras - Todos los definidos en los respectivos archivos include (estos productos, entre otros archivos se incluyen con la aplicación de POVRay. Los usuarios experimentados pueden también escribir sus propios archivos de inclusión, pero otros se pueden encontrar, en la mayoría de los casos gratis, en Internet).

POVRAY Código: [ Select ]
// *** standard ***
#include "colors.inc"
#include "textures.inc"
#include "woods.inc"
#include "stones.inc"
  1. // *** standard ***
  2. #include "colors.inc"
  3. #include "textures.inc"
  4. #include "woods.inc"
  5. #include "stones.inc"


Para la generación de la manzana, las otras dos incluyen archivos se utilizan (vinculada a la de las herramientas usadas i_fruitext.inc) - y i_apple.inc. Estos dos incluye contienen tres macros diseñado por el autor que, esencialmente, definir los atributos utilizados para crear el objeto de manzana.

Alterando el código para producir variantes


Personalmente, prefiero las manzanas de verde a rojo, así que hice algunas modificaciones para demostrar cómo modificar el código, altera la imagen. En Povray muchas veces las imágenes pueden ser alteradas por diversas azar "semillas" En este caso hay dos semillas que se pueden alterar - la semilla de la manzana en sí (930 semillas diferentes) y la posición de la luz (1003 semillas):

POVRAY Código: [ Select ]
#declare r1=seed(930);  // apple seed
#declare r_l=seed(1003);  // light pos. seed
  1. #declare r1=seed(930);  // apple seed
  2. #declare r_l=seed(1003);  // light pos. seed

En el original que utilizó semilla 11. He cambiado de que a las semillas de 800 a alterar la forma de la manzana. No cambiar la posición de la luz.

Yo también alteró los pigmentos utilizados desde:
POVRAY Código: [ Select ]
// basic pigments
#declare p1=Firebrick*.5+OrangeRed*.1;
#declare p2=Yellow*.8+White*.1;
#declare p3=YellowGreen*.8+White*.1;
  1. // basic pigments
  2. #declare p1=Firebrick*.5+OrangeRed*.1;
  3. #declare p2=Yellow*.8+White*.1;
  4. #declare p3=YellowGreen*.8+White*.1;


a:
POVRAY Código: [ Select ]
// basic pigments
#declare p1=YellowGreen*.5+OrangeRed*.1;
#declare p2=GreenYellow*.8+White*.1;
#declare p3=MediumSpringGreen*.8+White*.1;
  1. // basic pigments
  2. #declare p1=YellowGreen*.5+OrangeRed*.1;
  3. #declare p2=GreenYellow*.8+White*.1;
  4. #declare p3=MediumSpringGreen*.8+White*.1;

Obviamente, cambiar el color amarillo rojizo de la manzana a un color verde

Por último, he cambiado la textura de la mesa de mármol de T_Stone26 a T_Stone18:
POVRAY Código: [ Select ]
#declare t_marble=
texture{
 T_Stone26
 scale 4
 finish{
  reflection{.01,.1}
 }
}
  1. #declare t_marble=
  2. texture{
  3.  T_Stone26
  4.  scale 4
  5.  finish{
  6.   reflection{.01,.1}
  7.  }
  8. }

a:
POVRAY Código: [ Select ]
#declare t_marble=
texture{
 T_Stone18
 scale 4
 finish{
  reflection{.01,.1}
 }
}
  1. #declare t_marble=
  2. texture{
  3.  T_Stone18
  4.  scale 4
  5.  finish{
  6.   reflection{.01,.1}
  7.  }
  8. }


Aparte de eso, no hice otras modificaciones al código, aunque obviamente la posibilidad de cambios es interminable. Voy a hacer una última nota sobre el código para los nuevos en POVRay que en todos los casos, usted tiene que definir su cámara. Cualquiera que esté familiarizado con la fotografía puede entender intuitivamente lo que este código.

POVRAY Código: [ Select ]
// **************
// *** camera ***
// **************
#declare desde=<-10,80+31,-55>;
camera{
 location desde
 direction 3.2
 look_at <.1,84.5,0>
 #if (use_blur)
 focal_point <.1,83.9,0>
 aperture 2
 blur_samples 8*use_blur
 variance 0
 #end
}
  1. // **************
  2. // *** camera ***
  3. // **************
  4. #declare desde=<-10,80+31,-55>;
  5. camera{
  6.  location desde
  7.  direction 3.2
  8.  look_at <.1,84.5,0>
  9.  #if (use_blur)
  10.  focal_point <.1,83.9,0>
  11.  aperture 2
  12.  blur_samples 8*use_blur
  13.  variance 0
  14.  #end
  15. }


Y el resultado final - mi manzana verde:

Attachments:
myApple.jpg




Conclusión


Simplemente espero que esto motiva a algunos de ustedes a mirar en el increíble mundo de trazado de rayos.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Septiembre 17th, 2009, 11:38 am

  • digitalMedia
  • a.k.a. dM
  • Genius
  • Avatar de Usuario
  • Registrado: Dic 29, 2003
  • Mensajes: 5169
  • Loc: SC-USA
  • Status: Offline

Nota Septiembre 17th, 2009, 1:31 pm

Bueno, Ive got it instalados. Ahora sólo tienen que resolver el griego. :)
- dM
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23404
  • Loc: Woodbridge VA
  • Status: Offline

Nota Septiembre 17th, 2009, 1:36 pm

Theres un montón de buenas titutos en él.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de Usuario
  • Registrado: Jul 11, 2005
  • Mensajes: 1828
  • Loc: In the Great White North
  • Status: Offline

Nota Septiembre 17th, 2009, 1:38 pm

Wow nice resultado Marcos, que no he tocado POVRay en años. Usted wouldnt suceder a saber si soporta POVRay Iluminación Global ¿verdad? Bordes de la sombra blanda, la refracción de la luz, etc recorrer un camino muy largo hacia el realismo.

Para cualquier persona que no quiere ser un "visual" del programador. Hay varios programas de modelado libre que le permitirá usar Povray como su solución sin necesidad de hacer todo el código. Mi favorito desde hace mucho tiempo, aunque se Moray Bishop3D está buscando clase de fresco.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23404
  • Loc: Woodbridge VA
  • Status: Offline

Nota Septiembre 17th, 2009, 1:44 pm

No pensar POVRay hace, pero podría MegaPOV. Tiene soporte HDR. No he leído a través de la documentación de

http://megapov.inetart.net/features.html
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de Usuario
  • Registrado: Jul 11, 2005
  • Mensajes: 1828
  • Loc: In the Great White North
  • Status: Offline

Nota Septiembre 17th, 2009, 2:40 pm

ATNO/TW escribió:
...pero podría MegaPOV. Tiene soporte HDR.


Sí se pueden utilizar para la iluminación HDR significaría, al menos, un programa de solución de radiosidad parcial. Su pena averiguar si. Dado que realmente creo que hace la mayor diferencia en términos de realismo.

Éstos son dos ejemplos de un mismo entorno, uno con 1 de trazado de rayos y la radiosidad utilizando segundo (GI) Notificación de la sombra difusa y el derrame de color en la segunda, que no está allí en la primera.
Attachments:
renders.jpg
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23404
  • Loc: Woodbridge VA
  • Status: Offline

Nota Septiembre 17th, 2009, 3:27 pm

Id HDR es algo realmente quieres aprender más acerca de.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de Usuario
  • Registrado: Jul 11, 2005
  • Mensajes: 1828
  • Loc: In the Great White North
  • Status: Offline

Nota Septiembre 18th, 2009, 7:31 am

Capacidades de radiosidad y el proceso muy mucho entre aplicaciones. ¿Está usted en su mayoría interesados en las soluciones de iluminación HDR o sería una visión más amplia de radiosidad (refracción, cáusticos, esparciendo el subsuelo, etc) ser más útil? Yo podría tratar de llegar a un tutorial, pero su un tema amplio, de manera alguna idea del interés sería útil.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23404
  • Loc: Woodbridge VA
  • Status: Offline

Nota Septiembre 19th, 2009, 2:55 pm

Realmente me gustaría ver a un titutos algunos de ustedes GB. Especialmente en HDR y Flash
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.

Publicar Información

  • Total de mensajes en este tema: 9 mensajes
  • Moderador: Tutorial Writers
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC