2
0

SolidGizmo.bslinc 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 = "GLSL";
  42. Pass =
  43. {
  44. Vertex =
  45. {
  46. uniform mat4 matViewProj;
  47. in vec3 bs_position;
  48. in vec3 bs_normal;
  49. in vec4 bs_color0;
  50. out vec3 normal;
  51. out vec4 color0;
  52. out gl_PerVertex
  53. {
  54. vec4 gl_Position;
  55. };
  56. void main()
  57. {
  58. gl_Position = matViewProj * vec4(bs_position.xyz, 1);
  59. normal = bs_normal;
  60. color0 = bs_color0;
  61. }
  62. };
  63. Fragment =
  64. {
  65. uniform vec4 viewDir;
  66. in vec4 color0;
  67. in vec3 normal;
  68. out vec4 fragColor;
  69. void main()
  70. {
  71. fragColor = color0 * dot(normalize(normal), -viewDir.xyz);
  72. fragColor.a = color0.a;
  73. }
  74. };
  75. };
  76. };