home *** CD-ROM | disk | FTP | other *** search
/ DarkBasic Professional / DarkBasicPro.iso / data1.cab / Lang_Files_(English) / Compiler / effects / rainbow.fx < prev   
Encoding:
Text File  |  2004-09-22  |  2.4 KB  |  112 lines

  1. //
  2. // Effect file - Rainbow
  3. //
  4.  
  5. float4 lhtDir < string UIDirectional = "Light Direction"; >;
  6. float4 EyePos : EyePosition;
  7. matrix mTot : WorldViewProjection;
  8. matrix mWorldIT : WorldIT;
  9. matrix mWld : World;
  10.  
  11. string XFile = "sphere.x";
  12. texture tRainbow < string name = "rainbow.tga"; >;
  13.  
  14. technique tec0
  15.     pass p0
  16.     {
  17.         VertexShaderConstant[0] = <mTot>;
  18.         VertexShaderConstant[4] = <lhtDir>;
  19.         VertexShaderConstant[5] = <mWorldIT>;
  20.         VertexShaderConstant[9] = {0.0, 0.5, 1.0, -1.0};
  21.         VertexShaderConstant[10] = <EyePos>;
  22.         VertexShaderConstant[11] = <mWld>;
  23.  
  24.         Texture[0]   = <tRainbow>;
  25.         Texture[1]   = <tRainbow>;
  26.         
  27.         AddressU[0] = Wrap;
  28.         AddressV[0] = Wrap;
  29.         AddressU[1] = Wrap;
  30.         AddressV[1] = Wrap;
  31.  
  32.         MinFilter[0] = Linear;
  33.         MagFilter[0] = Linear;
  34.         MipFilter[0] = Linear;
  35.         MinFilter[1] = Linear;
  36.         MagFilter[1] = Linear;
  37.         MipFilter[1] = Linear;
  38.  
  39.         ColorOp[0]   = Modulate2X; 
  40.         ColorArg1[0] = Texture;
  41.         ColorArg2[0] = Texture | AlphaReplicate;
  42.         ColorOp[1]   = AddSigned; 
  43.         ColorArg1[1] = Texture | AlphaReplicate;
  44.         ColorArg2[1] = Current;
  45.  
  46.         VertexShader = 
  47.         asm
  48.         {
  49.             vs.1.0
  50.            
  51.             dcl_position      v0        // Position
  52.             dcl_normal        v3        // Normal
  53.  
  54.         ; v0  -- position
  55.         ; v3  -- normal
  56.         ;
  57.         ; c0-3   -- world/view/proj matrix
  58.         ; c4     -- light vector
  59.         ; c5-8   -- inverse/transpose world matrix
  60.         ; c9     -- {0.0, 0.5, 1.0, -1.0}
  61.         ; c10    -- eye point
  62.         ; c11-14 -- world matrix
  63.  
  64.         ;transform position
  65.         dp4 oPos.x, v0, c0
  66.         dp4 oPos.y, v0, c1
  67.         dp4 oPos.z, v0, c2
  68.         dp4 oPos.w, v0, c3
  69.  
  70.         ;transform normal
  71.         dp3 r0.x, v3, c5
  72.         dp3 r0.y, v3, c6
  73.         dp3 r0.z, v3, c7
  74.  
  75.         ;normalize normal
  76.         dp3 r0.w, r0, r0
  77.         rsq r0.w, r0.w
  78.         mul r0, r0, r0.w
  79.  
  80.         ;compute world space position
  81.         dp4 r1.x, v0, c11
  82.         dp4 r1.y, v0, c12
  83.         dp4 r1.z, v0, c13
  84.         dp4 r1.w, v0, c14
  85.  
  86.         ;vector from point to eye
  87.         add r2, c10, -r1
  88.  
  89.         ;normalize e
  90.         dp3 r2.w, r2, r2
  91.         rsq r2.w, r2.w
  92.         mul r2, r2, r2.w
  93.  
  94.         ;h = Normalize( n + e )
  95.         add r1, r0, r2
  96.  
  97.         ;normalize h
  98.         dp3 r1.w, r1, r1
  99.         rsq r1.w, r1.w
  100.         mul r1, r1, r1.w
  101.  
  102.         ;h dot n
  103.         dp3 oT0.x, r0, r2
  104.         dp3 oT0.y, r1, r0
  105.  
  106.         mov oT1.x, r2
  107.         mov oT1.y, r1
  108.         };
  109.     }
  110. }
  111.