zoukankan      html  css  js  c++  java
  • u3d_shader_surface_shader_6

    主题: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); ... }
    改变自己
  • 相关阅读:
    linux压缩与解压
    simple 单例
    模板字符串
    变量的解构赋值
    let和const关键字
    React的基本认识
    Docker安装Nginx
    jenkins创建工程
    Jenkins系统初始化配置
    在CentOS上使用Docker镜像安装Jenkins
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/4766214.html
Copyright © 2011-2022 走看看