首页 > 其他 > 详细

u3d_shader_surface_shader_6

时间:2015-08-28 14:52:26      阅读:222      评论:0      收藏:0      [点我收藏+]

主题:1.膨胀效果;2.surface shader实际生成的代码;

 

o(︶︿︶)o  粘贴复制代码易,理解透彻代码难...

 

一:膨胀效果

1.在#pragma 编译指令里添加vertex:vert以告知进行vertex的处理;在VertexShader最前;

    #pragma surface surf Lambert vertex:vert                                                                                                              

2.本次膨胀即依据normal方向进行vertex的worldspace下的扩充:

      void vert (inout appdata_full v) {
          v.vertex.xyz += v.normal * _Amount;
      }

二:点击u3d编译器中"show generated code"

发现:surface shader的vert()在VS最上面,surf()在PS的最上面,

// vertex shader
v2f_surf vert_surf (appdata_full v) {
  v2f_surf o;
  vert (v);    //此 surface里我们使用的vert函数,来操作worldSpace下的膨胀效果
....
}
// fragment shader fixed4 frag_surf (v2f_surf IN) : SV_Target { SurfaceOutput o; surf (surfIN, o); ... }

 

u3d_shader_surface_shader_6

原文:http://www.cnblogs.com/sun-shadow/p/4766214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!