Unity Shader 学习笔记(5)第一个简单Shader
来源:互联网 发布:网络虚拟现实技术 编辑:程序博客网 时间:2024/04/30 07:42
Unity Shader 学习笔记(5)第一个简单Shader
参考书籍:《Unity Shader 入门精要》
作者源码:https://github.com/candycat1992/Unity_Shaders_Book
项目源码:https://github.com/ZeroChiLi/ShaderTest
色彩由法线值控制
Shader "Custom/Chapter 5/SimpleShader" { Properties { _Color ("Color Tint",Color) = (1.0,1.0,1.0,1.0) // 声明一个Color类型的属性 } SubShader { Pass { CGPROGRAM #pragma vertex vert // 告诉Unity,vert函数包含顶点着色器代码 #pragma fragment frag // frag函数包含片元着色器代码 fixed4 _Color; // Cg中声明和属性名称类型相同的变量,这样才能在Cg中使用 struct a2v { // application To vertex shader 应用到着色器 float4 vertex : POSITION; // POSITION:把模型的顶点坐标填充到 vertex float3 normal : NORMAL; // NORMAL:法线方向填充到 normal,范围[-1.0,1.0] float4 texcoord : TEXCOORD0; // TEXCOORD0:纹理坐标填充到 texcoord }; struct v2f { // 顶点到片着色器 float4 pos : SV_POSITION; // 裁剪空间中的顶点坐标 fixed3 color : COLOR0; // 存储颜色信息 }; v2f vert(a2v v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); // mul(UNITY_MATRIX_MVP,v),把顶点坐标从模型空间转到裁剪空间 o.color = v.normal * 0.5 + fixed3(0.5,0.5,0.5); return o; } float4 frag(v2f i) : SV_Target { // SV_Target:把用户的输出颜色存到一个渲染目标中。这里输出到默认的帧缓存中 fixed3 c = i.color; c *= _Color.rgb; // 使用_Color属性来控制输出颜色 return fixed4(c,1.0); // 将插值后的i.color显示到屏幕 } ENDCG } } FallBack "Diffuse"}
// POSITION:传入模型的顶坐标到v。// SV_POSITION:输出裁切空间的顶点坐标。float4 vert(float4 v : POSITION) : SV_POSITION { return mul(UNITY_MATRIX_MVP, v);}
阅读全文
0 0
- Unity Shader 学习笔记(5)第一个简单Shader
- Unity Shader学习笔记:简单的shader
- Unity Shader 学习笔记 (二) 简单颜色Shader
- Unity Shader 学习笔记(32) Unity中的Standard Shader
- Unity Shader学习笔记(二)简单的漫反射
- shader编程学习(1)第一个shader
- Shader 学习历程(一)——第一个shader
- Shader学习笔记(七)Unity Shader Rim示例
- Unity Shader学习笔记(一) shader的基础结构
- Unity shader学习笔记 (四) 分解Shader
- Shader学习笔记(一)认识Unity Shader,Unity Shader的基本结构
- Unity Shader 学习笔记(4)Unity Shader内置变量、函数,Shader Model
- Unity Shader 学习笔记(1) DrawCall
- Unity Shader 学习笔记(6) 漫反射
- Unity Shader 学习笔记(14) 阴影
- Unity Shader学习2——第一个Shader程序解析
- Unity 3d Shader实践 —— 第一个Shader
- Unity Shader学习笔记(五)
- Spring Boot引用本地jar包
- MySQL查看授权
- bootstrap-treeview中关于勾选父节点全选子节点,以及勾选一个子节点自动勾选父节点
- Android线程断点续传
- 6.1-(2)
- Unity Shader 学习笔记(5)第一个简单Shader
- sqoop
- Maven入门指南
- 福特工人变身"钢铁侠",利用外骨骼减缓其操作压力 | 应用
- 图像处理(一):灰度化及RGB2HSV
- 未来100年改变世界? 人工智能正在成为新的时代动力 | 观点
- 英伟达首席执行官:自动驾驶汽车将于2020年上路 | 行业
- String、StringBuffer与StringBuilder之间区别
- SGU 416 Optimal Dartboard(找规律)