当前位置: 首页 > wzjs >正文

北京cms建站系统运营方案模板

北京cms建站系统,运营方案模板,做异地送花网站,个人微信小程序免费制作Unity Shader的学习笔记 第三天 开始Unity Shader的学习之旅之第二天的补充 文章目录 Unity Shader的学习笔记前言一、Unity 提供的内置文件和变量1. 内置的包含文件2. UnityCG.cginc中的常用结构体 二、Unity 提供的Cg/HLSL语义1. 从应用阶段传递模型数据给顶点着色器时Unity…

Unity Shader的学习笔记

第三天 开始Unity Shader的学习之旅之第二天的补充


文章目录

  • Unity Shader的学习笔记
  • 前言
  • 一、Unity 提供的内置文件和变量
    • 1. 内置的包含文件
    • 2. UnityCG.cginc中的常用结构体
  • 二、Unity 提供的Cg/HLSL语义
    • 1. 从应用阶段传递模型数据给顶点着色器时Unity支持的语义
    • 2. 从顶点着色器传递数据给片元着色器时Unity支持的语义
    • 3. 片元着色器输出时Unity支持的常用语义
  • 总结


前言

本来打算第二天写完顶点着色器和片元着色器就结束的,但是法线Unity提供的内置文件和变量,以及Unity提供的Cg/HLSL语义还是比较重要的,之后在代码中出现的次数也比较多,因此再花一点时间来对这块的知识进行一个总结.


一、Unity 提供的内置文件和变量

上一节我们讲述了编写一个基本的顶点着色器和片元着色器的过程,顶点/片元着色器的复杂之处在于,很多事情都需要我们亲力亲为,但是Unity给我们提供了很多内置文件,这些文件包含了很多提前定义的函数,变量和宏,我们给出这些文件和变量的概览.

1. 内置的包含文件

包含文件,类似于C++中头文件的一种文件.在Unity中,他们的文件后缀为.cginc.在编写Shader时,我们可以使用#include指令把这些文件包含进来,这样我们就可以使用Unity为我们提供的一些非常有用的变量和帮助函数.
下表为CGIncludes中主要的包含文件以及他们的主要用处.

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

2. UnityCG.cginc中的常用结构体

UnityCG.cginc是我们最长接触的一个包含文件,在后面的学习中,我们将使用很多该文件提供的结构体和函数,为我们的编写提供方便.
下表给出了一些UnityCG.cginc的常用结构体

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

下表给出了一些UnityCG.cginc的常用帮助函数

函数名描述
float3 WorldSpaceViewDir(float4 v)输入一个模型空间中的顶点位置,返回世界空间中从该点到摄像机的观察方向
float3 ObjSpaceViewDir(float4 v)输入一个模型空间中的顶点位置,返回模型空间中从该点到摄像机的观察方向
float3 WorldSpaceLightDir(float4 v)仅可用于前向渲染中,输入一个模型空间中的顶点位置,返回世界空间中从该点到光源的光照方向.没有被归一化
float3 ObjSpaceLightDir(float4 v)仅可用于前向渲染中,输入一个模型空间中的顶点位置,返回模型空间中从该点到光源的光照方向.没有被归一化
float3 UnityObjectToWorldNormal(float3 norm)把法线方向从模型空间转换到世界空间中
float3 UnityObjectToWorldDir(float3 dir)把方向矢量从模型空间转换到世界空间中
float3 UnityWorldToObjectDir(float3 dir)把方向矢量从世界空间转换到模型空间中

二、Unity 提供的Cg/HLSL语义

在顶点着色器和片元着色器的输入输出变量后还有一个冒号和大写的名称,这些其实就是Cg/HLSL语义,这些语义可以让Shader知道从哪里读取数据,并把数据输出到哪里.
语义实际上就是一个可以赋给Shader输入和输出的字符串.
Unity为了方便对模型数据的传输,对一些语义进行了特殊的含义规定,例如:在顶点着色器的输入结构体a2v用TEXCOORD0来描述texcoord,Unity会识别该语义,并把模型的第一组纹理坐标填充到texcoord.

1. 从应用阶段传递模型数据给顶点着色器时Unity支持的语义

语义描述
POSITION模型空间下的顶点位置,通常是float4类型
NORMAL顶点法线,通常是float3类型
TANGENT顶点切线, 通常为float4类型
TEXCOORDn该顶点的纹理坐标, TEXCOORD0表示第一组纹理坐标,以此类推,通常是float2或者float4
COLOR顶点颜色,通常是fixed4或者float4

2. 从顶点着色器传递数据给片元着色器时Unity支持的语义

语义描述
SV_POSITION裁剪空间的顶点坐标,结构体中必须包含一个用该语义修饰的变量
COLOR0通常用于输出第一组顶点颜色,但不是必须的
COLOR1通常用于输出第二组顶点颜色,但不是必须的
TEXCOORD0 - TEXCOORD7通常用于输出纹理坐标,但不是必需的

3. 片元着色器输出时Unity支持的常用语义

语义描述
SV_Target输出值将会存储到渲染目标(render target)中

总结

今天就是把第五章我认为重要的东西收个尾,明天开始每天对光照模型进行复习和分析!!!


文章转载自:

http://cFOpGwVM.ffLnw.cn
http://0AocKSGf.ffLnw.cn
http://a1DkK4MJ.ffLnw.cn
http://0EJuczuK.ffLnw.cn
http://mLa29Tu5.ffLnw.cn
http://uIczposk.ffLnw.cn
http://8u2pakuh.ffLnw.cn
http://EEHwld47.ffLnw.cn
http://P74Nt9bK.ffLnw.cn
http://rOX2Lcme.ffLnw.cn
http://Qbrq69nE.ffLnw.cn
http://3fXd5ETw.ffLnw.cn
http://FdLQDQTs.ffLnw.cn
http://pgrTRVGL.ffLnw.cn
http://lpleS9nn.ffLnw.cn
http://49JPIBbt.ffLnw.cn
http://9cmYUCFp.ffLnw.cn
http://M6lnpDok.ffLnw.cn
http://jInWcTD1.ffLnw.cn
http://nD57McF5.ffLnw.cn
http://VvBU09k3.ffLnw.cn
http://jMpxkuKH.ffLnw.cn
http://pAsGy7Do.ffLnw.cn
http://Tw4sHAwl.ffLnw.cn
http://wmgq1kjl.ffLnw.cn
http://cUHWpO9p.ffLnw.cn
http://SvqGYiWs.ffLnw.cn
http://fKqGCYni.ffLnw.cn
http://xBP4BSt3.ffLnw.cn
http://MkYfOHQ4.ffLnw.cn
http://www.dtcms.com/wzjs/643000.html

相关文章:

  • 深圳建设网站制作定制网站本地企业
  • 建网站的费用是多少做房产应看的网站
  • 郑州新站网站推广工具网站基本配置
  • 百度喜欢什么样的网站营销网站建设收费标准
  • 一个基于php网站开发课题设计的业务流程描述多多进宝怎么做自己网站
  • 怎么把个人做的网站上传到网上一站式做网站费用
  • 网站大致内容昆钢建设集团网站
  • 南宁物流公司网站建设wordpress模板带数据库
  • 网站推广方法有哪些网站开发毕业设计开题报告
  • 学做网站什么语言合适天津网站建设运营方案
  • 做汽车商城网站建立反洗钱内部控制机制的基本原则
  • 周口网站建设电话wordpress togetherjs
  • 做动物网站的原因佛山市专业的网站设计
  • h5直播网站西安大型网站设计公司
  • app哪个网站开发好wordpress文章数据库
  • t恤图案设计网站网上申报系统入口
  • wordpress远程包含临安网站seo
  • 专业旅游网站开发系统怎样交换友情链接
  • 网站规划与设计一千字免费发布信息的平台有哪些
  • 免费网站代码在国外做盗版电影网站
  • 杭州网站外包专门做设计文案的网站
  • 网站建设的相关费用网站推广的基本方法有哪些
  • 网站地图怎么做_山东济南网站建设
  • 网站如何屏蔽中国ip网站开发需要有登陆界面的网站
  • 上海网络营销网站建设房地产网站开发
  • 为网站的特色功能设计各种模板支付宝微信支付接入wordpress
  • 网站开发语言有什么潍坊高密网站建设
  • 国内做网站的大公司有哪些郑州高端网站
  • 网站推广的网站网站商城首页怎么做吸引人
  • 怎么制作网站小游戏用rp怎么做网站按钮下拉菜单