1. UNITY_CG_Shader 基本功能
来源:互联网 发布:windows ad域管理工具 编辑:程序博客网 时间:2024/06/04 23:29
一:
CG的入口为Subshader,
其中有若干pass, 依次产生效果(基于计算机硬件)
若某一个PASS不能产生应有的效果,则跳过此PASS
二:
CGPOGRAM 表示CG代码段开始
CGEND 表示CG代码段结束
三:
每个CG代码段都必须有
#pragma vertex xxx
#pragma fragment xxx
表示顶点 与片元的入口
顶点函数: 将模型上的点转化为裁剪窗口上的点
片元函数: 返回模型上对应屏幕上的像素颜色
Shader "YCB/02 shader"{SubShader{Pass{CGPROGRAM//顶点函数 从顶点坐标-》裁剪窗口(游戏环境->摄像机)#pragma vertex vert//片元函数 返回模型上对应屏幕上的像素的颜色#pragma fragment fragfloat4 vert(float4 v:POSITION):SV_POSITION{ //通过语义告诉系统,这个参数的作用,比如postion告知系统需要顶点坐标//SV_POSTION这个语义用来解释说明返回值,意思是返回值是裁剪窗口下的坐标//float4 pos=mul(UNITY_MATRIX_MVP,v);//return pos;return mul(UNITY_MATRIX_MVP,v);}//上部分代码等价于:fixed4 frag():SV_Target{return fixed4(0.55,0.1,0.1,1);}ENDCG}} Fallback "VertexLit"}结构体的使用:
Shader "YCB/03 shader"{SubShader{Pass{CGPROGRAM//顶点函数 从顶点坐标-》裁剪窗口(游戏环境->摄像机)#pragma vertex vert//片元函数 返回模型上对应屏幕上的像素的颜色#pragma fragment frag//替换部分代码等价于:struct a2v {float4 vertex:POSITION;};float4 vert(a2v v) :SV_POSITION{return mul(UNITY_MATRIX_MVP,v.vertex);}fixed4 frag():SV_Target{return fixed4(0.55,0.5,0.5,1);}ENDCG}} Fallback "VertexLit"}
添加法线:
Shader "YCB/03 shader"{SubShader{Pass{CGPROGRAM//顶点函数 从顶点坐标-》裁剪窗口(游戏环境->摄像机)#pragma vertex vert//片元函数 返回模型上对应屏幕上的像素的颜色#pragma fragment frag//application to vertexstruct a2v {float4 vertex:POSITION;float3 normal : NORMAL;float4 texcoord :TEXCOORD0;};//vertex to fragmentstruct v2f{float3 tmp:COLOR0;float4 position : SV_POSITION;};v2f vert(a2v v) {v2f f;f.position = mul(UNITY_MATRIX_MVP,v.vertex);f.tmp=v.normal;return f;}fixed4 frag(v2f f):SV_Target{return fixed4(f.tmp,1);}ENDCG}} Fallback "VertexLit"}
阅读全文
0 0
- 1. UNITY_CG_Shader 基本功能
- 1.CCSpriteFrame CCSpriteFrameCache CCTexture CCTextureCache 基本功能与延伸
- 1. sklearn库中的标准数据集及基本功能
- ListBox基本功能
- TrojanHorse 基本功能
- Linux基本功能
- cxf基本功能
- android基本功能
- FormPanel 基本功能
- 栈基本功能
- cxf基本功能
- HttpClient基本功能
- C++基本功能
- AngularJS基本功能
- mysql基本功能
- shell基本功能
- Bash基本功能
- Waf 基本功能
- java.util.ConcurrentModificationException异常 分析
- 如何让subline支持GB2312和GBK编码
- ubuntu 安装pip3遇到的问题及解决方案
- CodeVS1373 射命丸文【矩阵前缀和】
- Java笔记之面向对象
- 1. UNITY_CG_Shader 基本功能
- 10.6 约数 2406
- VS2015+QT5.8 程序打包发布详解(包含图片打包,附工具和源码)
- python--leetcode 419. Battleships in a Board
- 悲观锁和乐观锁的区别。
- Java学习
- Reflection2017.10.6
- #HDU1667#The Rotation Game (IDA*_搜索)
- Servlet 生命周期、工作原理