Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. !!ARBvp1.0
  2.  
  3.  
  4. PARAM MVP1 = program.local[1];
  5.  
  6. PARAM MVP2 = program.local[2];
  7.  
  8. PARAM MVP3 = program.local[3];
  9.  
  10. PARAM MVP4 = program.local[4];
  11.  
  12.  
  13. TEMP vertexClip;
  14. DP4 vertexClip.x, MVP1, vertex.position;
  15. DP4 vertexClip.y, MVP2, vertex.position;
  16. DP4 vertexClip.z, MVP3, vertex.position;
  17. DP4 vertexClip.w, MVP4, vertex.position;
  18.  
  19. MOV result.position, vertexClip;
  20. MOV result.color, vertex.color;
  21. MOV result.texcoord[0], vertex.texcoord;
  22. MOV result.texcoord[1].x, vertex.position.x;
  23. MOV result.texcoord[1].y, vertex.position.y;
  24. MOV result.texcoord[2].x, vertex.position.z;
  25.  
  26. END
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. !!ARBfp1.0
  37.  
  38. PARAM LIGHT_POS    = program.local[0];
  39. PARAM LIGHT_COLOR  = program.local[1];
  40. PARAM LIGHT_RADIUS = program.local[2];
  41.  
  42.  
  43. TEMP INTENSITY;
  44. TEMP DISTANCE;
  45. TEMP DSTa;
  46. TEMP A;
  47. TEMP B;
  48.  
  49. MOV A, LIGHT_POS;
  50. MOV B.x, fragment.texcoord[1].x;
  51. MOV B.y, fragment.texcoord[1].y;
  52. MOV B.z, fragment.texcoord[2].x;
  53.  
  54.  
  55. SUB DISTANCE.x, A.x, B.x;
  56. SUB DISTANCE.y, A.y, B.y;
  57. SUB DISTANCE.z, A.z, B.z;
  58.  
  59. MUL DISTANCE.x, DISTANCE.x, DISTANCE.x;
  60. MUL DISTANCE.y, DISTANCE.y, DISTANCE.y;
  61. MUL DISTANCE.z, DISTANCE.z, DISTANCE.z;
  62.  
  63. ADD DSTa.x, DISTANCE.x, DISTANCE.y;
  64. ADD DSTa.x, DSTa.x, DISTANCE.z;
  65.  
  66. RSQ DSTa.x, DSTa.x;
  67.  
  68. RCP DSTa.x, DSTa.x;
  69. #now we have distance from light pos to fragment/vertex
  70.  
  71. #intenstiy equation looks like: 1.0 - (dst / radius)
  72.  
  73. TEMP R;
  74. MOV R.x, LIGHT_RADIUS.x;
  75. RCP R.x, R.x;
  76.  
  77. MUL R.y, R.x, DSTa.x;
  78.  
  79. SUB R.z, 1.0, R.y;
  80.  
  81. MAX R.z, R.z, 0.0;
  82.  
  83. TEMP COL;
  84.  
  85. MOV COL, LIGHT_COLOR;
  86.  
  87. MUL COL.x, COL.x, R.z;
  88. MUL COL.y, COL.y, R.z;
  89. MUL COL.z, COL.z, R.z;
  90. MOV COL.w, 1.0;
  91.  
  92.  
  93. MOV result.color, COL;
  94.  
  95.  
  96.  
  97. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement