主题: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的更多相关文章

随机推荐

  1. Linux 常见命令说明

    目前由于自己接触到的是 windows 的操作系统,所以会经常使用 git bash 来提交代码到 github上. git bash 是 windows 下模拟 Linux 的命令行工具. 在此总结 ...

  2. Autodesk View and Data API练练手

    大家如果参加过我们的活动,你应该已经听过看过不少关于View and Data Web Service的例子里,如果还没有的话,请看看下面这几篇: http://www.cnblogs.com/jun ...

  3. c++引用总结

    一.变量的引用: 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名:  例:char ch;        cha ...

  4. 如何让光标处于EditText的末尾

    经测试发现,如果EditText预先有内容,光标自然会在文字的末尾 . 但是如果预先内容为空,然后设置好内容,这种情况下光标自然会在文字的开头,所以这种情况下可以这样做让光标位于末尾: editTex ...

  5. Android 加载大图片到内存

    本文演示android中图片加载到内存 首先设计界面: 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/ap ...

  6. mac 下如何切换jdk的版本

    1.打开.bash_profile文件添加一个函数 #add a function for switch idk version.function jdkset() { if [ $# -ne 0 ] ...

  7. iOS开源项目MobileProject功能点介绍

    一:MobileProject简介 MobileProject项目是一个以MVC模式搭建的开源功能集合,基于Objective-C上面进行编写,意在解决新项目对于常见功能模块的重复开发,MobileP ...

  8. 常用jar包用途

    jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期管理的常用方法. jaxrp ...

  9. Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)

    在使用fdisk创建分区时,我们会使用partprobe命令可以使kernel重新读取分区信息,从而避免重启系统,但是有时候会遇到下面错误信息"Warning: Unable to open ...

  10. 遍历set集合

    1.迭代遍历:Set<String> set = new HashSet<String>();Iterator<String> iterator= set.iter ...