U3D Shader基础
一个SubShader(渲染方案)是由一个个Pass块来执行的。每个Pass都会消耗对应的一个DrawCall。
以下内容不需要入门的时候立刻阅读和理解,建议逐渐深入学习后,不时回来看看即可。
什么是GPU?
针对DX11. 该技术需要消耗大量硬件资源,因此开发人员不会在场景中的每个地方都使用它,一般只考虑玩家视角近景和轮廓边缘。利用GPU硬件加速,将现有3D模型的三角形拆分得更细小、更细致,也就是大大增加三角形数量,使得渲染对象的表面和边缘更平滑、更精细。
坐标系
计算机3D中,3D坐标系采用的主要是,笛卡儿坐标系(Cartesian坐标系),也称直角坐标系。
当x轴朝右,y朝上,z朝屏幕里的时候,为左手坐标系。
当x轴朝右,y朝上,z朝屏幕外即面朝你的时候,为右手坐标系。
所以,Unity使用的是左手坐标系。
D3D左手 即 裁剪空间里(x,y,z,w) z= z/w 即[0,1]
OpenGL使用右手 ,即 裁剪空间里(x,y,z,w) z= (z/w + 1)/2 即[-1,1]
#pragma target 3.0 :定义Shader模型为Shader Model 3.0,
2.0, Direct3D 9 (默认缺省值)。支持32张贴图 + 64个计算
3.0, Direct3D 9。支持512张贴图 + 512个计算
4.0, 只支持DirectX 11。
5.0, 只支持DirectX 11。
【Unity Shader内置矩阵】
uniform float4x4 UNITY_MATRIX_MVP; // model view projection 矩阵
uniform float4x4 UNITY_MATRIX_MV; // model view 矩阵
uniform float4x4 UNITY_MATRIX_P; // projection 矩阵
uniform float4x4 UNITY_MATRIX_T_MV;
// model view 矩阵的转置(transpose)矩阵
uniform float4x4 UNITY_MATRIX_IT_MV;
// model view 矩阵的逆矩阵的转置矩阵
uniform float4x4 UNITY_MATRIX_TEXTURE0; // 纹理矩阵
uniform float4x4 UNITY_MATRIX_TEXTURE1; // 纹理矩阵
uniform float4x4 UNITY_MATRIX_TEXTURE2; // 纹理矩阵
uniform float4x4 UNITY_MATRIX_TEXTURE3; // 纹理矩阵
uniform float4 UNITY_LIGHTMODEL_AMBIENT; // 环境颜色
注意:View矩阵并不是相机的matrix(xy一致,z是反的,也就是相机下的子物体(1,1,1)在UNITY_MATRIX_MV实际是(1,1,-1))
【Unity Vertex Data】
Unity顶点函数的输入数据 appdata 在UnityCG.cginc中定义,有以下三种
【1 appdata_base】
位置vertex,法线normal,贴图uv texcoord
struct appdata_base {
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
};
【2 appdata_tan】
位置vertex,法线normal,切线tangent 贴图uv texcoord
struct appdata_tan {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
};
【3 appdata_full】
位置vertex,法线normal,切线tangent 贴图uv texcoord 顶点颜色color
struct appdata_full {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
#if defined(SHADER_API_XBOX360)
half4 texcoord4 : TEXCOORD4;
half4 texcoord5 : TEXCOORD5;
#endif
fixed4 color : COLOR;
};
【自定义struct】
:后面加semantics即可
POSITION
NORMAL
TEXCOORD0-6
TANGENT
COLOR
U3D Shader基础相关推荐
- 视频教程-shader 基础之 2D技巧集合-Unity3D
shader 基础之 2D技巧集合 多年游戏开发经验,曾担任主程,技术美术TA,现在是独立游戏开发者 是帧同步框架: LockstepEngine RayMarch框架: Unity-Raymarch ...
- Unity之Shader基础探索
Unity之Shader基础探索 一.什么是Shader? 1.Shader的开发语言 2.着色器用途 3.着色器的编辑 4.着色器性能分析工具 5.着色器编译 6.异步着色器的编译工作原理 7.内置 ...
- UE5 Shader基础学习笔记——13-20 DetailNormal/Smoothstep/Length/CeilFloorRound/DDXDDY/SinCos/Power
UE5 Shader基础学习笔记--13-20 DetailNormal/Smoothstep/Length/CeilFloorRound/DDXDDY/SinCos/Power Lec13 Deta ...
- Unity Shader 基础教程
Unity-Shader-基础教程 在Github上看到一篇关于Unity-Shader的教程,感觉还不错,作者写的很好,很适合Unity-Shader的基础入门,我在这里翻译一下,分享给大家,英文水 ...
- UE5 Shader基础学习笔记——01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合
UE5 Shader基础学习笔记--01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合 Lec01 ...
- Unity Shader入门精要——第3章 Unity Shader基础
Unity Shader入门精要读书笔记系列 第1章 欢迎来到Shader的世界 第2章 渲染流水线 第3章 Unity Shader基础 文章目录 Unity Shader入门精要读书笔记系列 前言 ...
- 《 Unity Shader 入门精要》 第3章 Unity Shader 基础
第3章 Unity Shader 基础 3.1 Unity Shader 概述 材质与 Unity Shader 在 Unity 中我们通常需要将材质(Material) 和 Unity Shader ...
- Unity3D Shader基础教程
此教程将指引你如何建立自己的Shaders,让你的游戏场景看起来更好.Unity配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的语法,它不只 ...
- 学习Shader Unity Shader 基础
1.如何充分利用 Unity Shader 来为我们的游戏增光添彩? 材质和 Unity Shader: 在Unity中,我们需要配合使用材质(Material)和 Unity Shader 才能达到 ...
- Unity | Shader基础知识(什么是shader)
一.什么是Shader? Shader的中文名叫着色器. 二.什么是着色器? 着色器的作用:这个世界是3D的,包括在Unity的场景中,我们建的球球,方块块之类的,都是3D的,但是,屏幕是2D的,把3 ...
最新文章
- 身为最热门的编程语言,Java求职前景到底如何?
- jstl中添加自定义的函数
- 修改网站首页批处理_几个神奇的批处理,万事不求人!
- linux ace platform_linux.gnu,Linux下配置和使用ACE笔记
- C++工作笔记-在项目中解决编码问题小技巧
- Python高能小技巧:用海象操作符减少重复代码
- 加速失败远程计算机不能反应,2008 R2 SP1远程桌面如何开启GPU加速?不讨论虚拟机...
- 小米蓝牙音响驱动_拆解报告:小米无线充蓝牙音箱
- python将音频转换成文字_用Python将音频内容转换为文本格式
- ABP教程-打造一个《电话簿项目》-目录-MPA版本-基于ABP1.13版本
- 谷歌地图的标记样式_如何为Google地图设置样式
- 小米机器人 尘盒配件_小米机器人怎么取出尘盒
- 编程领域名词:魔法数值、魔法数字、魔法值
- Javascript基础知识 1(JS)
- 《机器学习技法》第5课笔记 核函数逻辑回归
- 最新kali之hashcat
- 2006年上市公司A股市值百强榜单
- python期中考试试卷分析_最新期中考试试卷分析与反思
- 苹果截屏快捷键_苹果12将在10月上市,介绍下苹果手机便捷的实用技巧,
- 汽车零配件销售企业管理信息系统报表应用