Unity Shader 学习 004-Shader 调试 平台差异性 第三方调试工具

2023-10-31

学习时间:

2022.5.27

学习产出:

1.调试Shader

1.1 我们打开FrameDebug窗口

Frame Debugger可以让我们单独的观察一帧的渲染过程,观察到每一个DrawCall的渲染情况,它会把DrawCall一个一个按顺序列出来,通过点击每一个DrawCall,可以看到执行到该DrawCall时的渲染图,一步一步的点就可以看到整个场景渲染非常详细的构建过程。

image-20220612192440411

image-20220612192400495

1.2 通过FrameDebug窗口查看我们shader渲染目标的状态

比如这里我们前向渲染的一个Cube

1.首先Shader是Unlit/004,SubShader #0 因为我们这个shader里面只有一个渲染通道

SubShader是整个着色器的一个子着色器,当一个Mesh(网格)需要被绘制时,Unity就会在Shader中寻找渲染它的方式,并从Shader中挑选第一个能被完全支持的SubShader去实现。为了让材质,或者说让游戏画面能够在不同平台发挥其最佳的效果,我们可以定义多个SubShader。每一个SubShader都包含完整的渲染参数,渲染设置,渲染方法等。在初学阶段,我们为材质编写一个SubShader即可,剩下的工作我们可以交给强大的FallBack去完成。

2.然后我们的通道Pass是#0

3.ZClip设置 GPU 的深度剪辑模式

4.ZTest深度检测LessEqual小于目标值

​ LEqual 绘制位于现有几何体前面或相同距离的几何体。不绘制位于现有几何体后面的几何体。

ShaderLab 命令:ZTest - Unity 手册

5.ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置

image-20220612192910783

2.平台差异性

2.1 抗锯齿

由于我们Unity是跨平台的,所以有OpenGL和DirectX两种坐标系
通常情况下,Unity是会帮我们自动翻转的

但是,如果开启了抗锯齿,那么DX平台,就需要手动翻转
Unity里面这样打开抗锯齿(Anti Aliasing)
在这里插入图片描述
手动翻转的方法,就是首先判断是不是DX平台,然后判断是不是开启了抗锯齿,如果都满足,那么就翻转
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzkCKEBZ-1655041487014)(https://liuwenxin-oss.oss-cn-hangzhou.aliyuncs.com/img/4cbba614e4f348858f2809c17e776dc0.png)]
如图,Unity是DX平台
在这里插入图片描述

2.2 DX平台定义变量更严格

在这里插入图片描述

3.第三方调试工具

image-20220612213609686

Intel® Graphics Performance Analyzers

Snapdragon Profiler - Qualcomm Developer Network

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity Shader 学习 004-Shader 调试 平台差异性 第三方调试工具 的相关文章

  • Celery基本介绍

    文章目录 Celery架构及介绍 Celery的优点 版本支持情况 使用场景 Celery架构及介绍 项目开发中经常碰到需要使用异步任务的场景 比如一个WEB请求中有运行时间很长的业务运算 如果不采用异步任务 会阻塞当前的web请求 影响用
  • 微信小程序显示二维码

    在请求接口的success下面写入这段代码 在他的上一个请求数据的打他下面创建一个空的用于存放数据的东西比如obj 用于存放数据 将它放到一个一个点击事件中 通过触发点击事件执行代码 如果窒息看代码的话const tupian 这个变量让他
  • 解析rosbag中的.bag文件,得到.jpg图片数据和.pcd点云数据

    目录 一 查看 bag文件中的数据信息 二 解析 bag文件到 jpg文件 三 解析 bag文件到 pcd点云数据文件 参考资料 一 查看 bag文件中的数据信息 rosbag info bag 结果如下所示 二 解析 bag文件到 jpg
  • 解决VsCode下载慢问题

    文章目录 1 VScode下载慢的问题解决 css格式化 要在vscode装 js格式化要装 2 vscode自定义 vue模板 1 VScode下载慢的问题解决 步骤一 打开vscode官网 https code visualstudio

随机推荐

  • linux常用的快捷键

    1 Tab 补充 不用输入完整的命令 输入命令前几个字母后Tab键 会自动补全命令提示 2 移动光标 Ctrl A 移动光标到开头 Ctrl E 移动光标到结尾 Ctrl F 往光标后面移动一个字符 Ctrl B 往光标前面移动一个字符 3
  • HTML+CSS写一个简单的小项目

    HTML CSS写一个小项目 最近在学前端 花了一个月才基本把html和css基本搞清楚 现在在学习js和react方面的有关内容 想着之前学过的前端知识不能丢掉 于是乎萌生出了这样一个想法 那么 不如直接动手操作 于是我打开电脑 操作了起
  • pip 下载慢 pip下载报错 pip加速

    解决方法 更换国内源 阿里云 https mirrors aliyun com pypi simple 豆瓣 http pypi douban com simple 清华大学 推荐 https pypi tuna tsinghua edu
  • 实战C/C++ 的依赖管理工具 – Conan

    在高级编程语言中 C C 广受开发人员的亲睐 在语言排名上也名列前茅 生命力旺盛 而作为一个C C 程序猿 随着开源模块 车轮 的不断创造 你在使用什么工具或方法管理你的依赖和模块化你的开发成果 创造属于你的世界车轮 你还在用 GIT SV
  • ArrayList的底层原理

    ArrayList简介 ArrayList 是我们开发中非常常用的数据存储容器之一 其底层是数组实现的 我们可以在集合中存储 任意类型的数据 ArrayList 是线程不安全的 非常适合用于对元素进行查找 效率非常高 1 ArrayList
  • 22-队列

    队列 Queue 一般的顺序队列 由于这种结构会有假溢出的情况 所以一般不选择这种队列 而更多的使用循环队列 循环队列 判断队列满的情况 1 count来计数 通常使用count Count等于队列的MAXSIZE 2 Flag标志 int
  • FlatBuffers学习总结

    据说facebook使用google的黑科技flatbuffers 用来替代传统的json进行数据交换 大大提高了facebook android客户端的效率 于是我在网上查找各种资料学习了一下flatbuffers 参看资料包括GOOGL
  • 卷积神经网络-猫狗识别(附源码)

    一 项目描述 该项目将使用卷积神经网络算法 识别图片中的动物是猫还是狗 数据集地址 https momodel cn explore 5efc77dbc018c95e69fb2a81 type dataset 其中 训练用的图片数据集在 d
  • Python:TypeError: function object is not subscriptable

    X train X test y train y test train test split wine dataset data wine dataset target random state 0 以上语句在jupytet noteboo
  • python递归搜索文件再同步到服务器,Python递归查找文件并移动到一个目标目录

    脚本应递归浏览根路径目录并查找所有带 mp4扩展名的文件 打印目录结构的文件列表 然后将文件移动到destDir目录 我遇到的问题是当试图将文件移动到新目录 只有rootPath目录中的文件将被移至新目标 在ROOTPATH下子目录中的文件
  • Android 判断当前APP是否在前台

    Android 判断当前APP是否在前台 isTopActivityAPP com test 1 private boolean isTopActivityAPP String packageName int taskNumber bool
  • android jetpack之LifeCycle

    jetpack是一整套google为开发者提供的开发库 里面包含很多组件 今天学习下LifeCycle LifeCycle是可以感知生命周期型组件可执行操作来响应另一个组件 如 Activity 和 Fragment 的生命周期状态的变化
  • 解决百度文库复制问题 非VIP也能复制文字

    目录 前言 方法1 百度文库搜索功能 方法2 百度文库翻译接口 方法3 查看html的innerText 前言 百度的产品非常多 但是如果没有VIP 那么使用起来的用户体验无异于粪池蝶泳 这是不好的 今天来解决百度文库的复制问题 有些时候
  • mybatis中with invalid types () or values ()错误

    在使用配置mybatis时出现了with invalid types or values 错误 Exception in thread main org apache ibatis exceptions PersistenceExcepti
  • 基于Kubernetes平台部署Grafana Loki Promtail系统

    原文链接 基于Kubernetes平台部署Grafana Loki Promtail系统 文章目录 一 创建独立的命名空间 二 部署Grafana 2 1 编写grafana部署的配置文件 2 2 部署grafana 三 部署 Loki 3
  • layui 点击重置按钮, select 并没有被重置(大坑)

    如下所示 点击重置时 输入框被重置为空 而账号 select元素并没有被重置 重置事件 reset click function searchConte
  • 单链表与双链表-线性表的链式表示

    文章目录 前言 一 单链表 1 单链表的结构体定义 2 单链表的创建 3 单链表的基本操作 3 1 输出操作 PrintList 3 2 按位查找 GetElem 3 3 按值查找 LocateElem 3 4 插入操作 ListInser
  • FM的DNN实现——隐向量可以认为就是embedding学习的权重

    之前一直在思考怎么实现FM 后来在看DeepFM的时候 被一句话点醒 如下 DeepFM论文中有这么一句话 the latent feature vectors V in FM now server as network weights w
  • OD华为机试 24

    两数之和绝对值最小 描述 给定一个从小到大的有序整数序列 存在正整数和负整数 数组 nums 请你在该数组中找出两个数 其和的绝对值 nums x nums y 为最小值 并返回这个绝对值 每种输入只会对应一个答案 但是 数组中同一个元素不
  • Unity Shader 学习 004-Shader 调试 平台差异性 第三方调试工具

    文章目录 学习时间 学习产出 1 调试Shader 1 1 我们打开FrameDebug窗口 1 2 通过FrameDebug窗口查看我们shader渲染目标的状态 2 平台差异性 2 1 抗锯齿 2 2 DX平台定义变量更严格 3 第三方