SolidGizmo.bslinc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. Parameters =
  2. {
  3. mat4x4 matViewProj;
  4. float4 viewDir;
  5. };
  6. Technique : base("SolidGizmo") =
  7. {
  8. Language = "HLSL11";
  9. Pass =
  10. {
  11. Vertex =
  12. {
  13. float4x4 matViewProj;
  14. void main(
  15. in float3 inPos : POSITION,
  16. in float3 inNormal : NORMAL,
  17. in float4 color : COLOR0,
  18. out float4 oPosition : SV_Position,
  19. out float3 oNormal : NORMAL,
  20. out float4 oColor : COLOR0)
  21. {
  22. oPosition = mul(matViewProj, float4(inPos.xyz, 1));
  23. oNormal = inNormal;
  24. oColor = color;
  25. }
  26. };
  27. Fragment =
  28. {
  29. float4 viewDir;
  30. float4 main(in float4 inPos : SV_Position, in float3 normal : NORMAL, in float4 color : COLOR0) : SV_Target
  31. {
  32. float4 outColor = color * dot(normalize(normal), -viewDir);
  33. outColor.a = color.a;
  34. return outColor;
  35. }
  36. };
  37. };
  38. };
  39. Technique : base("SolidGizmo") =
  40. {
  41. Language = "HLSL9";
  42. Pass =
  43. {
  44. Vertex =
  45. {
  46. float4x4 matViewProj;
  47. void main(
  48. in float3 inPos : POSITION,
  49. in float3 inNormal : NORMAL,
  50. in float4 inColor : COLOR0,
  51. out float4 oPosition : POSITION,
  52. out float3 oNormal : NORMAL,
  53. out float4 oColor : COLOR0)
  54. {
  55. oPosition = mul(matViewProj, float4(inPos.xyz, 1));
  56. oNormal = inNormal;
  57. oColor = inColor;
  58. }
  59. };
  60. Fragment =
  61. {
  62. float4 viewDir;
  63. float4 main(float3 normal : NORMAL, float4 color : COLOR0) : COLOR0
  64. {
  65. float4 outColor = color * dot(normalize(normal), -viewDir);
  66. outColor.a = color.a;
  67. return outColor;
  68. }
  69. };
  70. };
  71. };
  72. Technique : base("SolidGizmo") =
  73. {
  74. Language = "GLSL";
  75. Pass =
  76. {
  77. Vertex =
  78. {
  79. uniform mat4 matViewProj;
  80. in vec3 bs_position;
  81. in vec3 bs_normal;
  82. in vec4 bs_color0;
  83. out vec3 normal;
  84. out vec4 color0;
  85. out gl_PerVertex
  86. {
  87. vec4 gl_Position;
  88. };
  89. void main()
  90. {
  91. gl_Position = matViewProj * vec4(bs_position.xyz, 1);
  92. normal = bs_normal;
  93. color0 = bs_color0;
  94. }
  95. };
  96. Fragment =
  97. {
  98. uniform vec4 viewDir;
  99. in vec4 color0;
  100. in vec3 normal;
  101. out vec4 fragColor;
  102. void main()
  103. {
  104. fragColor = color0 * dot(normalize(normal), -viewDir.xyz);
  105. fragColor.a = color0.a;
  106. }
  107. };
  108. };
  109. };