Page 1 of 2

ISL shader nodes

Posted: Fri Nov 27, 2009 1:21 pm
by fused
hey, ive been working two Indigo Shader Language nodes(namely ISL nosie, for perlin and fbm, and ISL blend, for blending multiple ISL shaders) for c4d so you can use ISL without actually having to write a single line of code.

Here are a few shots:
im1259234744.png
displacement with ISL fbm
im1259234744.png (705.46 KiB) Viewed 6862 times
im1259282952.png
blend of fbm and perlin
im1259282952.png (986.02 KiB) Viewed 6863 times
noise.jpg
the noise shader looks like this in c4d, not too many options currently :)
noise.jpg (58.92 KiB) Viewed 6860 times

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 1:37 pm
by psor
I love the displacement stuff. Good work fused! :D




take care
psor

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 3:10 pm
by fused
gradient shader node :)

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 5:01 pm
by Stromberg
Realy nice :D

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 8:48 pm
by zeitmeister
Geilgeilgeil... wie ich mich darauf freu!

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 8:56 pm
by fused
well... dont get too excited.... currently you can only do 2 color gradients with linear interpolation, because multi colored with non linear (c4ds gradients can be non linear) are a bit tricky (espacialy if the number of color varies).

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 9:01 pm
by zeitmeister
Naja dann: MaGucknMaGucknMaGuckn. :mrgreen:

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 9:59 pm
by pixie
One step close to perfection! Thanks fused!

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 10:40 pm
by iacx
Thanks Fused :D !

Re: ISL shader nodes

Posted: Fri Nov 27, 2009 10:59 pm
by juan_irender
Very promising, Fused! Well, for doing proper multi-color interpolation, an spline data-type added to ISL (a la Renderman) would be very useful.

Re: ISL shader nodes

Posted: Sat Nov 28, 2009 4:04 am
by Zom-B
First try to get a ISL generated Mountain done. Controle via direct Shader is 10000 times more comfy then tweaking the ISL code ;-)

I hope for more advanced tests over the Weekend... now its time for "Weihnachtsmarkt" *prost*
ISL Mountain v01.jpg
ISL Mountain v01.jpg (105.3 KiB) Viewed 6753 times

Re: ISL shader nodes

Posted: Sat Nov 28, 2009 4:12 am
by zeitmeister
Oh, da sachste was... gleich wirds ja ernst. *hicks*

Re: ISL shader nodes

Posted: Sat Nov 28, 2009 5:45 pm
by fused
hey ZomB, you will be able to create MUCH better mountains with the next version :)

circular gradient and fbm. note that ALL the shader code is generated by Cindigo and you dont have to write a single line :D
better mountains.jpg
better mountains!!!!!!!!!!!!!!!!
better mountains.jpg (88.27 KiB) Viewed 6704 times
the shader code:

Code: Select all

    <material>
        <name>Indigo Material_mid0</name>
        <diffuse>
            <albedo>
                <constant>
                    <rgb>
                        <rgb>0.800000 0.800000 0.800000</rgb>
                        <gamma>2.200000</gamma>
                    </rgb>
                </constant>
            </albedo>
            <displacement>
                <shader>
                    <shader>
                        <![CDATA[def Vec3ToReal(vec3 v) real : ((doti(v) + dotj(v) + dotk(v)) / 3.0)
					   def noise01(vec3 v) real : ((noise(v) + 1.0) * 0.5)
					   def noise01(vec2 v) real : ((noise(v) + 1.0) * 0.5)
					   def noise01(real r) real : ((noise(r) + 1.0) * 0.5)
					   def fbm01(vec3 v, int oc) real : ((fbm(v,oc) + 1.0) * 0.5)
					   def fbm01(vec2 v, int oc) real : ((fbm(v,oc) + 1.0) * 0.5)
					   def fbm01(real r, int oc) real : ((fbm(r,oc) + 1.0) * 0.5)
					   def mulCompVec2(vec2 a, vec2 b) vec2 : vec2(doti(a) * doti(b), dotj(a) * dotj(b))
					   def mulCompVec3(vec3 a, vec3 b) vec3 : vec3(doti(a) * doti(b), dotj(a) * dotj(b), dotk(a) * dotk(b))
def eval() real: (Vec3ToReal(lerp(vec3(1.00000, 1.00000, 1.00000), vec3(0.00000, 0.00000, 0.00000), length(vec2(0.5,0.5) - getTexCoords(0)) * 2.0 )) * 1.00000 + 0.25000 * fbm01(mulCompVec2(getTexCoords(0) * 10.0, vec2(1.00000, 1.00000)),8)) * 1.50000]]>
</shader>
                </shader>
            </displacement>
        </diffuse>
    </material>

Re: ISL shader nodes

Posted: Sat Nov 28, 2009 5:55 pm
by fused
added some perlin to make it more random!
better mountains2.jpg
better mountains2.jpg (111.86 KiB) Viewed 6701 times

Code: Select all

    <material>
        <name>Indigo Material_mid0</name>
        <diffuse>
            <albedo>
                <constant>
                    <rgb>
                        <rgb>0.800000 0.800000 0.800000</rgb>
                        <gamma>2.200000</gamma>
                    </rgb>
                </constant>
            </albedo>
            <displacement>
                <shader>
                    <shader>
                        <![CDATA[def Vec3ToReal(vec3 v) real : ((doti(v) + dotj(v) + dotk(v)) / 3.0)
					   def noise01(vec3 v) real : ((noise(v) + 1.0) * 0.5)
					   def noise01(vec2 v) real : ((noise(v) + 1.0) * 0.5)
					   def noise01(real r) real : ((noise(r) + 1.0) * 0.5)
					   def fbm01(vec3 v, int oc) real : ((fbm(v,oc) + 1.0) * 0.5)
					   def fbm01(vec2 v, int oc) real : ((fbm(v,oc) + 1.0) * 0.5)
					   def fbm01(real r, int oc) real : ((fbm(r,oc) + 1.0) * 0.5)
					   def mulCompVec2(vec2 a, vec2 b) vec2 : vec2(doti(a) * doti(b), dotj(a) * dotj(b))
					   def mulCompVec3(vec3 a, vec3 b) vec3 : vec3(doti(a) * doti(b), dotj(a) * dotj(b), dotk(a) * dotk(b))
def eval() real: ((Vec3ToReal(lerp(vec3(1.00000, 1.00000, 1.00000), vec3(0.00000, 0.00000, 0.00000), length(vec2(0.5,0.5) - getTexCoords(0)) * 2.0 )) * 1.00000 + 0.35000 * fbm01(mulCompVec2(getTexCoords(0) * 10.0, vec2(1.00000, 1.00000)),8)) * 1.50000 + 1.00000 * noise(mulCompVec2(getTexCoords(0) * 10.0, vec2(0.25000, 0.25000)))) * 1.00000]]>
</shader>
                </shader>
            </displacement>
        </diffuse>
    </material>

Re: ISL shader nodes

Posted: Sat Nov 28, 2009 6:19 pm
by fused
bigger, closer. 13.000.000 tris.