美术生零基础转行TA中(第3天)

20240401 学习目标:

  • 刷课至2.9

学习内容:

2.7 模型的本地空间

  • Houdini
  • 观察空间:
    • 中心点在屏幕中心
    • 右手坐标系,右正左负
  • 应用程序阶段数据
  • 几何阶段
    • 顶点着色
      • 模型变换
      • 视图变换
      • 顶点着色
    • 几何曲面细分着色
    • 裁剪
      • 投影变换
      • 裁剪
    • 屏幕映射
  • 光栅化阶段
    • 三角形设置
    • 三角形遍历
    • 片断着色
    • 混合
      • Alpha测试
      • 模板测试
      • 深度测试
      • 混合
  • 帧缓存

2.8 CGInclude

  • HLSLSupport.cginc:编译CGPROGRAM时自动包含此文件,其中声明了很多预处理器宏帮助多平台

  • UnityShaderVariables.cginc:编译CGPROGRAM时自动包含此文件,其中声明了很多各种内置的全局变量

  • UnityCG.cginc:需手动添加,其中声明了很多内置的帮助函数与结构

  • 获取途径

    • 从安装目录中获取: Data/CGIncludes/xxx.cginc
    • 从官网下载
  • 如何使用

CGPROGRAM
//...
#include"xxx.cginc"
//...
ENDCG

2.9 空间变换

  • 本地空间 -> 模型变换 -> 世界空间 -> 视图变换 -> 相机空间 -> 投影变换 -> 裁剪空间
  • 矩阵变换运算符
mul(M,V);

 M=矩阵
 V=向量 
Shader "taecg/FrameWork"
{
     SubShader
     {
          pass
          {
               CGPROGRAM
                    #pragma vertex vert
                    #pragma fragment frag
                    #include"UnityCG.cginc" //内置的帮助函数与结构

                    //定义了一个组,名字叫做appdate
                    struct appdate
                    {
                         //输入
                         float4 pos : POSITION;
                         float4 color:COLOR;
                    };

                    struct v2f 
                    {
                          float4 pos : SV_POSITION;
                          
                    };
            
                    //顶点着色器
                    v2f vert(appdate v)
                    {
                            v2f 0 = (v2f)0;
                            0.pos = UnityObjeceToClipPos(v.vertex); // 矩阵变换 官网可查
                            return 0;
                    }
                    
                    //片断着色器
                    float4 frag(v2f i) : SV_TARGET
                    {
                    
                    }
                    EndCG
          }
     }
}
  • 模型空间 -> 投影空间:UNITY_MATRIX_MVP

  • 模型空间 -> 观察空间:UNITY_MATRIX_MV

  • 视图空间:UNITY_MATRIX_V

  • 投影空间:UNITY_MATRIX_P

  • 视图空间 -> 投影空间:UNITY_MATRIX_VP

  • 本地空间 -> 世界空间:unity_ObjectYoWorld

  • 世界空间 -> 本地空间:unity_WorldToObject

  • 模型空间到齐次裁剪空间

UnityObjeceToClipPos(v.vertex)

学习产出:

  • 2.7
  • 2.8
  • 2.9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值