[计算机图形学09]Unity提供的内置文件

尹楷
• 阅读 1742

包含文件

文件名 描述
UnityCG.cginc 包含了最常使用的帮助函数,宏和结构体
UnityShaderVariables.cginc 在编译Unity Shader时,会被自动包含进来。包含了许多内置的全局变量,如UNITY_MATRIX_MVP
Lighting.cginc 包含了各种内置的光照模型,如果编写的是Surface Shader的话,会自动包含进来。
HLSLSupport.cginc 在编译Unity Shader时,会被自动包含进来。声明了很多用于跨平台编译的宏和定义。

UnityCG.cginc是我们最常接触的一个包含文件。我们使用很多该文件提供的结构体和函数,为我们的编写提供方便。例如,我们可以直接使用UnityCG.cginc中预定义的结构体作为顶点的输入输出。

名称 描述 包含的变量
appdata_base 可用于顶点着色器的输入 顶点位置,顶点法线,第一组纹理坐标
appdata_tan 可用于顶点着色器的输入 顶点位置,顶点切线,顶点法线,第一组纹理坐标
appdata_full 可用于顶点着色器的输入 顶点位置,顶点切线,顶点法线,四组(或更多)纹理坐标
appdata_img 可用于顶点着色器的输入 顶点位置,第一组纹理坐标
v2f_img 可用于顶点着色器的输出 裁剪空间中位置,纹理坐标

语义

我们刚才看到的SV_POSITIONPOSITIONCOLOR0都是语义(Semantics)。语义实际上就是一个赋给Shader输入和

语义 描述
POSITION 模型空间中的顶点位置,通常是float4类型
NORMAL 顶点法线,通常是float3类型
TANGENT 顶点切线,通常是float4类型
TEXCOORDn 该顶点的纹理坐标,通常是float2或float4类型
COLOR 顶点颜色,通常是fixed4或float4类型
语义 描述
SV_POSITION 裁剪空间中的顶点坐标。
COLOR0 通常用于输出第一组顶点颜色,但不是必需的
COLOR1 通常用于输出第二组顶点颜色,但不是必需的
TEXCOORD0 通常用于输出纹理坐标
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java RSA算法的性能记录
环境JavaHotSpot(TM)64BitServerVM1.7.0\_05x86\_64加密<table<tr<td内容长度</td<tdkeySize</td<td耗时(微秒)</td</tr<tr<td32</td<td512</td<td87</td</tr<tr<td
红烧土豆泥 红烧土豆泥
4年前
Java的数值数据类型以及命名规范
一、Java中的数值数据类型<table<tbody<tr<tdwidth"75"valign"top"style"wordbreak:breakall;"<spanstyle"backgroundcolor:rgb(255,254,213);"类型名<br</span</td<tdwidth"299
DevOpSec DevOpSec
4年前
Linux主机安全配置
1.安全配置规范1.身份鉴别1.账号检查<tableborder"1"cellspacing"0"style"width:426.1pt;"<tbody<tr<tdstyle"width:113.4pt;"<pstyle"marginleft:0pt;"<strong<strong安全配置编号
Stella981 Stella981
3年前
Jira 使用手册
<tablestyle"width:100%;margin:200px0300px0;"<tr<thDate</th<thRevisionversion</th<thDescription</th<thauthor</th</tr<tr<td20180614</td<tdV1.0.0</td
Stella981 Stella981
3年前
Bootstrap学习笔记
1.Table:table,tablebordered,table,tablehover,tablecondensed,2.tr,td:active,success,warning,danger,info3.Form:formgroupformcontrol,forminline,formhorizontal,4.
Wesley13 Wesley13
3年前
MySQL 空事务
   问题描述;   研发同事反应MySQL数据库有锁,检查innodb\_trx时,发现有很多长时间未结束的空事务。   这些事务的trx\_mysql\_thread\_id都为0,因此不能通过kill  id的方式强制关闭这些长时间未结束的僵尸事务。           SELECT       tr
Wesley13 Wesley13
3年前
2020软件工程作业03
<styletable{width:100%;/\表格宽度\/margin:auto;/\外边距\/emptycells:show;/\单元格无内容依旧绘制边框\/fontsize:18px;}table,th,td{border:2pxsolidpink;}li{fontsize:1
Wesley13 Wesley13
3年前
MySQL 5.7 新增参数
这些数据是通过” showglobalvariables;” 获得,可能不是所有的新增参数。我的MySQL版本是5.7.24。参数默认值binlog\_group\_commit\_sync\_delay0binlog\_group\_commit\_sync\_no\_delay\_count0binlog\_tr
Stella981 Stella981
3年前
Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;find文件查找
Wesley13 Wesley13
3年前
Java根据XPath提取HTML
有这样一段HTML: <div<table<tdid'1234foo5678'Hello</td希望通过这个XPath提取出Hello://div//tdcontains(@id,'foo')/text()先导入maven依赖:<!https://mvnrepository.com/ar
Wesley13 Wesley13
3年前
Java 日期与时间
Java的日期Java没有内置的日期类,但可以导入java.time包,这个包中包含了许多类,可用于处理日期和时间。例如:<table<tbody<tr<thstyle"width:25%"Java类</th<thstyle"width:75%"描述</th</tr<tr<td<code