viernes, 31 de mayo de 2013

Blender Cycles OSL: Color Turbulence

Hi every body. Today I'm going to show you a color turbulence material:


This is the OSL code:
/*
*   Migrated from "http://glsl.heroku.com/e#8664.0"
*   By: elbrujodelatribu
*/

shader node_color_turbulence(
    vector Vector = P,
    float Scale = 0.2,
    float Time = 1.0,
    int MaxIterations = 64,
    output color Color = 0.8)    
{
 vector p = Vector * Scale;//surfacePosition;

 for(int i=1; i < MaxIterations; i++)
 {
  vector newp = p;
  newp[0]+=0.6/float(i)*sin(float(i)*p[1]+Time/20.0+0.3*float(i))+20.0;  
  newp[1]+=0.6/float(i)*sin(float(i)*p[0]+Time/20.0+0.3*float(i+10))-5.0;
  p=newp;
 }

    Color = color(sin(Time+p[1]+p[0]-M_PI*color(0,2,4)/(4.0+sin(Time)))*0.3+0.5);
}


And here there is the node setup. I have used a HSV Color node to increase the color saturation and provide a result more vivid:


And this another example scene (hires version here).



I hope you like it.

Bye

5 comentarios:

Eugenio Pignataro dijo...

Espectacular tu trabajo!

elbrujodelatribu dijo...

¡Muchas gracias Eugenio!

Javier DL dijo...

Hola Eduardo!
Antes que nada quisiera agradecerte por tu amable generosidad por compartir con todos nosotros tus fabulosos trabajos en éste medio de materiales. Y felicitarte por la misma razon.

Aparte de felicitarte y agradecerte queria tambien preguntarte: como puedo hacer para que el "Script node" tenga sockets?
Mas especificamente, estaba tratando de usar tu "Turbulence"

setup para unos dulces (candies) que quiero usar para un proyecto personal, pero siendo el

"rookie" que soy para estos asuntos de los "noodles" no tengo la menor idea de como hacer

para connectar el Script node a los otros nodes.
Ya cree el documento OSL, solo copié el contenido de la ventana en tu pagina del setup de Turbulence, y lo pegué en un documento txt, despues de salvarlo le cambié la extension a .osl Espero que sea asi como se hace.

Aparte de esto, necesito pedirte autorizacion para conservar un par de paginas que acabo de crear con el objeto de servir como "trampolin" y referencia a tus noodles. Estas paginas las cree para uso personal, para encontrar de manera rapida los materiales. Sobre todo mientras estoy aprendiendo. Espero no te moleste.

Un saludo desde Montreal, Canada.

Javier DL

elbrujodelatribu dijo...

Hola Javier. Puedes usarlos sin ningún problema.

Respecto a lo de crear inputs o outputs en el script se hace en los parámetros de la función shader. Los parámetros es lo que va entre paréntesis. Si pones sólo el tipo de dato son inputs, si pones además el comando "output" entonces erá de salida.

La programación es similar al lenguaje C, pero tiene sus peculiaridades.

Patricia Witwort dijo...

Estoy escribiendo esto con alegría y felicidad en mi corazón, fui curado del herpes por un gran hombre. al principio pensé que estaba a punto de ser engañado y luego me aseguró que todo estaría bien si me adhería estrictamente a sus palabras e instrucciones. Vivo en Nueva York y me diagnosticaron HSV1 y 2 hace tres años. He buscado cualquier solución posible, pero todo fue en vano. hasta que entré en contacto con el Dr. Okigbochie, él salvó mi vida y me liberó de la enfermedad. puede contactarlo a través de su correo electrónico drokhigbochieharbalcure @ outlook. Creo firmemente que él puede curarte de cualquier enfermedad y virus.

Este sitio emplea cookies de Google para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Google recibe información sobre tu uso de este sitio web. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies. Más información Entendido