Sha256: d43fbd39a011ce7a75e4f1cdbf3e113442c6e059e4fcee193cdeffabc112f05d

Contents?: true

Size: 1.44 KB

Versions: 12

Compression:

Stored size: 1.44 KB

Contents

// Pixel Shader for doing bump mapping with parallax plus diffuse and specular lighting by nfz 

// uv               TEXCOORD0 
// lightDir            TEXCOORD1 
// eyeDir            TEXCOORD2 
// half               TEXCOORD3 

// lightDiffuse         c0 
// lightSpecular      c1 
// Parallax scale and bias c2 
// normal/height map   texunit 0 - height map in alpha channel 
// diffuse texture      texunit 1 

ps.1.4 


texld r0, t0               // get height 
texcrd r2.xyz, t0            // get uv coordinates 
texcrd r3.xyz, t2            // get eyedir vector 


mad r0.xyz, r0.a, c2.x, c2.y   // displacement = height * scale + bias 
mad r2.xyz, r3, r0, r2         // newtexcoord = eyedir * displacement + uv 

phase 

texld r0, r2.xyz            // get normal N using newtexcoord 
texld r1, r2.xyz            // get diffuse texture using newtexcoord 
texcrd r4.xyz, t1            // get lightdir vector 
texcrd r5.xyz, t3            // get half angle vector 

dp3_sat r5.rgb, r0_bx2, r5         // N dot H - spec calc 
dp3_sat r4.rgb, r0_bx2, r4         // N dot L - diffuse calc 
+ mul r5.a, r5.r, r5.r 
mul r0.rgb, r4, r1            // colour = diffusetex * N dot L 
+ mul r5.a, r5.a, r5.a 

mul r5.rgb, r5.a, r5.a          
mul r5.rgb, r5, r5          
mul r5.rgb, r5, r5          
mul r5.rgb, r5, c1            // specular = (N dot H)^32 * specularlight 

mad r0.rgb, r0, c0, r5         // colour = diffusetex * (N dot L)* diffuselight + specular 
+ mov r0.a, c2.b 

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
ruby-ogre-0.0.5-x86-linux deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm
ruby-ogre-0.0.4-x86-linux deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm
ruby-ogre-0.0.3-x86-linux deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm
ruby-ogre-0.0.2-x86-linux deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm
ruby-ogre-0.0.1-x86-linux deps/share/OGRE/media/materials/programs/OffsetMapping_specular.asm
ogre.rb-0.2-i686-linux samples/media/materials/programs/OffsetMapping_specular.asm
ogre.rb-0.2-i386-mswin32 samples/media/materials/programs/OffsetMapping_specular.asm
ogre.rb-0.1-i686-linux samples/media/materials/programs/OffsetMapping_specular.asm
ogre.rb-0.1-i386-mswin32 samples/media/materials/programs/OffsetMapping_specular.asm
ogre.rb-0.2-x86_64-linux samples/media/materials/programs/OffsetMapping_specular.asm
shattered_ogrerb-0.5.0.2 vendor/ogrerb/samples/media/materials/programs/OffsetMapping_specular.asm
shattered_ogrerb-0.5.1 vendor/ogrerb/samples/media/materials/programs/OffsetMapping_specular.asm