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); ... }
    改变自己
  • 相关阅读:
    [NOIP2015] D1T2 信息传递
    Codeforces #447 Div.2 Tutorial
    python进阶
    Vue入门
    python基础
    python介绍
    React笔记_(3)_react语法2
    React笔记_(2)_react语法1
    React笔记_(1)_react概述
    webpack笔记_(3)_First_Project
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/4766214.html
Copyright © 2011-2022 走看看