Unity Shader入门精要 阅读笔记六

本文介绍了Unity内置文件的应用、语义的使用以及Unity调试方法。详细讲述了Unity内置文件如何辅助shader编写,Unity语义如何帮助变量定义,以及Unity提供的三种调试方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里将会对Unity中的内置文件、语义、调试进行阅读。

Unity内置文件
在编写shader的时候,Unity为我们隐藏了很多shader中的细节。有些是unity默认添加的,例如UnityCG.cginc库,有一些是需要我们自己手动去添加的。之前说过CG其实是C for Graph的缩写,那么在应用其他的库文件的方法上面,其实语法和C语言是很像的:

CGPROGRAM
//...
#include "UnityCG.cginc"
//...
ENDCG

其实在这里面我们可以字节去实现一些内容,然后来应用。当然这不是重点。
Unity默认提供的库的路径,win下面是在安装目录的/Data/CGIncludes/文件夹下

UnityShader语义
之前在写shader的时候,如果不是我们自定义的结构体,那么就需要在变量后面添加冒号,然后加上类似POSITION的东西。冒号后面的内容就是语义,用来在shader中描述变量具体是用来做什么的。这里需要注意的是在DirectX10后面的版本中,一些语义使用系统数值语义,相比之前的语义添加了SV_的前缀,例如SV_POSITION。

Unity调试

常使用Unity的人都知道,Shader不能像代码那样去单步调试,不能去查看运行中的数据值。调试shader是一个很困难的事。
书中提出了几种方法:
1、假色彩图像。这种方法比较困难,其实就是将过程中的结果,通过图像显示出来。图像最后需要转换到0-1的阈值范围内。通过拾色器在渲染后的图像检查是否渲染成功。
2、Visual Studio的Graphics Debugger。这个就厉害了,能够实现shader的单步调试。
3、Unity自带的帧调试器:Frame Debugger。通过window-》Frame Debugger来打开。这个方法能够支持渲染的每一步的效果查看,并提供UI可视化界面。

其实目前调试器用的最多的还是unity自带的,同时由于很多时候调试很复杂的效果的时候需要很多参数和输入,在调试时可以将某个参数单独输出在屏幕上现实,或者在framedebuger中调试查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值