博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity Shader 入门精要(02) -- shader的编码基础
阅读量:1870 次
发布时间:2019-04-26

本文共 1384 字,大约阅读时间需要 4 分钟。

一、一个简单的顶点/片元着色器

Shader "Custom/Chapter 5/Simple Shader" {    Properties {        //属性    }    SubShader{        Pass{            //1.设置渲染状态和标签            //2.开始CG代码片段            CGPROGRAM            //3.该代码片段的编译指令            #pragma vertex vert   //顶点着色器            #pragma fragment frag //片元着色器            //4.cg代码            float4 vert(float4 v:POSITION): SV_POSITION{                return UnityObjectToClipPos (v);//把顶点坐标从模型空间转换到剪裁空间            }            float4 frag() : SV_Target{ //颜色值                return fixed4(1, 1, 0.5f, 1);            }            ENDCG            //5.其他设置            //6.其他需要的pass        }    }    SubShader{        //针对不同显卡有不同的方案    }    //上述SubShader都失败后,用于回调的Unity Shader    FallBack "Diffuse"}

二、Unity Shader的分类

使用的是ShaderLab编写Unity中的Shader1,表面着色器 Surface Shader2,顶点/片元着色器 Vertex/Fragment Shader3,固定函数着色器 Fixed Function Shader

三、Unityshader中属性的类型有哪些

_Color("Color",Color)=(1,1,1,1)_Vector("Vector",Vector)=(1,2,3,4)_Int("Int",Int)= 34234_Float("Float",Float) = 4.5_Range("Range",Range(1,11))=6_2D("Texture",2D) = "red"{}_Cube("Cube",Cube) = "white"{}_3D("Texure",3D) = "black"{}

四、Unity支持的语义

  1. 从应用程序传递到顶点函数的语义有哪些a2v

    POSITION 顶点坐标(模型空间下的)
    NORMAL 法线( 模型空间下)
    TANGENT 切线(模型空间)
    TEXCOORD0 ~n 纹理坐标
    COLOR 顶点颜色

  2. 从顶点函数传递给片元函数的时候可以使用的语义

    SV_POSITION 剪裁空间中的顶点坐标(一般是系统直接使用)
    COLOR0 可以传递一组值 4个
    COLOR1 可以传递一组值 4个
    TEXCOORD0~7 传递纹理坐标

  3. 片元函数传递给系统

    SV_Target 颜色值,显示到屏幕上的颜色

转载地址:http://ighff.baihongyu.com/

你可能感兴趣的文章
el-table 二维数组合并行
查看>>
js获取当月的天数
查看>>
多个相邻的盒子外边框合并的问题
查看>>
js实现复制功能
查看>>
git报错sign_and_send_pubkey: signing failed: agent refused operation
查看>>
UR5e机械臂运行一直阻塞在waitForServer
查看>>
ROS把pkg1下的某个头文件和源文件生成动态链接库供pkg2调用
查看>>
使用urdf_tutorial快速可视化urdf文件
查看>>
SQl 数据完整性(随堂博客)
查看>>
左连接、右连接、内连接
查看>>
MySQL DQL语句基础(随堂博客)
查看>>
MySQL基础练习
查看>>
利用MySQL进行数据复杂查询(1)
查看>>
利用MySQL进行数据复杂查询(2)
查看>>
MySQL 表与表之间的关系
查看>>
Python数据处理
查看>>
Java练习题(面向对象)
查看>>
Python 利用os和shutil复制系统文件
查看>>
Python 循环输出菱形字符串
查看>>
MySQL常见错误总结
查看>>