vertex+fragment Shader

作者:追风剑情 发布于:2014-7-1 22:15 分类:Shader

如果你想自己处理照明,可以写vertex+fragment Shader, 这是Unity中对可编程Shader的一种支持。

  1. Shader "Custom/Shader_VF" {
  2. Properties {
  3. _MainTex ("Base (RGB)", 2D) = "white" {}
  4. }
  5. SubShader {
  6. Tags { "Queue"="Geometry" "RenderType"="Opaque" "IgnoreProjector"="True" }
  7. Pass {
  8. CGPROGRAM
  9. #pragma vertex vert //声明顶点着色函数
  10. #pragma fragment frag //声明片断着色函数
  11. #include "UnityCG.cginc" //包括外部文件
  12. sampler2D _MainTex;
  13. struct v2f{ //定义一个结构
  14. float4 pos:SV_POSITION;
  15. float2 uv:TEXCOORD0;
  16. };
  17. v2f vert(appdata_full v) //vertex Shader
  18. {
  19. v2f o;
  20. o.pos = mul(UNITY_MATRIX_MVP, v.vertex);//将三维坐标投影到二维窗口中
  21. o.uv = v.texcoord.xy;
  22. return o;
  23. }
  24. float4 frag(v2f i):COLOR //fragment Shader
  25. {
  26. float4 c = tex2D(_MainTex, float2(i.uv));
  27. return c;
  28. }
  29. ENDCG
  30. }
  31. }
  32. FallBack "Diffuse"
  33. }
运行效果

运行效果.png

标签: vertex fragment

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号