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

Unity 入门精要00---Unity提供的基础变量和宏以及一些基础知识

头文件引入:

XXPROGRAM

...

#include "UnityCG.cginc";

...

ENDXX

常用的结构体(在UnityCg.cginc文件中):在顶点着色器输入和输出时十分好用 。

关于如何使用这些结构体,可在Unity安装文件目录/Editor/Data/CGIncludes下打开查看

一些常用的函数

 此书是以Build-in管线为基础,有些函数的名称和参数已经改变。Build-in 到URP转变手册可参考内置管线Shader升级到URP详细手册 - 简书

 Unity 提供的CG/HLSL语义

何为语义?:语义就是赋给Shader脚本的输入和输出文档,让Shader知道从哪里读取数据,从哪里输出数据

 

 

在v2f结构体的TEXCOORDn中的具体语义可以由我们自己定义,换句话说,对于任何需要传输坐标的情形,我们都可以采用TEXCOORDn去描述。 更详细的知识可参考Directx文档

DirectX 编程 - UWP applications | Microsoft Learn

关于渲染平台的差异

在OpenGL和DirectX的纹理坐标的y轴是相反的,如果使用了纹理贴图和后处理效果而不注重屏幕坐标空间在不同渲染平台的差异的话,会出现纹理翻转。因此,为了解决这个问题 我们需要翻转y轴。一般情况下,Unity会为我们自动处理这个问题,但我们若开启了抗锯齿(Edit->Project Settings->Quality->Anti Aliasing)的同时使用了渲染纹理,Unity就不会为我们翻转纹理,默认情况下是符合DirectX的平台规定。当我们此时的屏幕特效只需要使用一张渲染图像,即只采样一次,就不需要在意纹理翻转的情况,因为在我们调用Graphics.Blit函数时,Unity已经为我们对屏幕图像的采样坐标进行了处理,只需要正常采样过程处理屏幕图像就行了,但如果要同时处理多张渲染图像(有抗锯齿)举个例子,对于Part-Bloom效果,我们需要同时提取需要高亮部分渲染出一张纹理,再将起模糊且高亮,这种情况就使用了多张纹理,手动进行纹理翻转。

采用如下代码进行纹理翻转。 

Shader中的数据类型

对于只使用方向的单位向量,用fixed就足够了 

Shader Target。

 

http://www.lryc.cn/news/28224.html

相关文章:

  • Kubernetes的网络架构及其安全风险
  • Blob分析+特征+(差分)
  • Flink 提交模式
  • 网络总结知识点(网络工程师必备)三
  • 测开:前端基础-css
  • Java学习记录之JDBC
  • 矩阵翻硬币
  • 【C语言跬步】——指针数组和数组指针(指针进阶)
  • 第十四届蓝桥杯模拟赛第三期(Python)
  • css-盒模型
  • Linux | 调试器GDB的详细教程【纯命令行调试】
  • wifi芯片大市场和个人小生活
  • 全国计算机技术与软件专业技术资格(水平)考试 上半年2023年3月13日开始,下半年2023年8月14日开始
  • 大数据框架之Hadoop:MapReduce(六)Hadoop企业优化
  • Spring File Storage的详细文档
  • Java软件开发好学吗?学完好找工作吗?
  • 【独家C】华为OD机试提供C语言题解 - 优秀学员统计
  • 数据仓库、数据中台、数据湖都是什么?
  • 0099 MySQL02
  • 应急响应-ubuntu系统cpu飙高
  • MDK软件使用技巧
  • 3 333333
  • 1528. 重新排列字符串
  • 【8】【用户操作日志】操作日志SpringBootStarter
  • 【游戏逆向】寻路函数隐藏检测点分析
  • 【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法
  • 这款 Python 工具进行数据分析及数据可视化真的很棒啊
  • visual Studio Code常用快捷键
  • 基础(一)十六进制转八进制
  • 梯度提升算法决策过程的逐步可视化