Shader 基础使用(三) ----- vertex & fragment

本文介绍了Unity中Shader的基础使用,包括顶点语义绑定如POSITION、NORMAL、TEXCOORD等,以及常用的函数库如HLSLSupport.cginc、UnityShaderVariables.cginc等。通过示例展示了如何编写实现纯色和彩色效果的顶点片段着色器,逐步讲解了漫反射的实现。适合Shader初学者入门。
摘要由CSDN通过智能技术生成

基本数据类型与surface一致,就不在此文章赘述了
顶点语义绑定

float4 POSITION 顶点坐标位置
float3 NORMAL 顶点法线向量坐标
float4 TEXCOORD0 第一个UV坐标
float4 TEXCOORD1..N 第二个到第N个UV坐标
float4 TENGENT 顶点切线向量坐标
float4 COLOR 顶点颜色值

常用函数库

HLSLSupport.cginc 辅助为跨平台的着色器编译宏和定义
UnityShaderVariables.cginc 常⽤用全局变量量
UnityCG.cginc 常⽤用辅助函数
AutoLight.cginc 光、影函数
Lighting.cginc 光照模型相关
TerrainEngine.cginc 地形植被辅助

首先我们应该知道顶点片段着色器的基本框架

Shader "MyVFShader/VFShader_001" 
{
    Properties
    {
    }
    SubShader
    {
        Pass
        {
            CGPROGRAM
                //预编译指令关键词  |  函数类型  |  函数名
                #pragma vertex vert  //vertex 是顶点着色器
                #pragma fragment frag // fragment 是片段着色器
                void vert(){}
                void frag(){}
            ENDCG
        }
    }
}

接下来先来用顶点片段着色器写一个纯色的Shader

Shader "MyVFShader/VFShader_002" 
{
    Properties
    {
        _MainColor("颜色",Color) = (1,1,1,1)
    }
    SubShader
    {
        Pass
        {
            CGPROGRAM
                //预编译指令关键词  |  函数类型  |  函数名
                #pragma vertex vert  //vertex 是顶点着色器
                #pragma fragment frag // fragment 是片段着色器
                //输入一个顶点坐标 名称vertexPos 语义绑定POSITION
                //输出一个像素坐标 语义绑定SV_POSITION
                float4 vert(float4 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值