Re: ISL shader nodes
Posted: Sat Nov 28, 2009 6:48 pm
Sweet, now it just needs some vegetation and snow shaders
https://www.indigorenderer.com/forum/
https://www.indigorenderer.com/forum/viewtopic.php?f=10&t=7489
Code: Select all
<material>
<name>rock_mid0_b_l_e_n_d_A</name>
<oren_nayar>
<sigma>
<constant>0.200000</constant>
</sigma>
<albedo>
<texture>
<texture_index>0</texture_index>
</texture>
</albedo>
<texture>
<uv_set>default</uv_set>
<path>..\..\..\..\..\Desktop\rock_03.jpg</path>
<exponent>2.200000</exponent>
<a>0.000000</a>
<b>1.000000</b>
<c>0.000000</c>
</texture>
<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)))) * 6.00000]]>
</shader>
</shader>
</displacement>
</oren_nayar>
</material>
<material>
<name>snow_mid1</name>
<phong>
<ior>1.500000</ior>
<diffuse_albedo>
<constant>
<rgb>
<rgb>0.900000 0.900000 0.900000</rgb>
<gamma>2.200000</gamma>
</rgb>
</constant>
</diffuse_albedo>
<exponent>
<constant>250.000000</constant>
</exponent>
<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)))) * 6.10000]]>
</shader>
</shader>
</displacement>
</phong>
</material>
<material>
<name>rock_mid0</name>
<blend>
<a_name>rock_mid0_b_l_e_n_d_A</a_name>
<b_name>snow_mid1</b_name>
<step_blend>false</step_blend>
<blend>
<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 + 1.00000 * fbm(mulCompVec2(getTexCoords(0) * 10.0, vec2(0.60000, 0.60000)),8)) * 2.00000]]>
</shader>
</shader>
</blend>
</blend>
</material>
Code: Select all
<material>
<name>diff_tran</name>
<diffuse>
<albedo>
<shader>
<shader>
<![CDATA[
def fbm01(vec2 v, int oc) real: (fbm(v,oc) + 1.0) * 0.5
def noise01(vec2 v) real: (noise(v) + 1.0) * 0.5
def eval(vec3 pos) vec3: lerp(vec3(0.75,0.0,0.0),vec3(0.0,0.75,0.0),doti(getTexCoords(0)) + (fbm(getTexCoords(0) * 5.0,8) * 0.5))
]]>
</shader>
</shader>
</albedo>
</diffuse>
</material>