在使用 URP 库文件,但是程序仍然是 CGPROGRAM 会报 _Time 重定义的错误
在 URP 的Linear空间中使用 RT 渲染时,默认格式是 R8G8B8A8_SRGB 格式,如果想得到默认的中灰图,需要如下代码,并引入 Color 库
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" Gamma22ToLinear(half4(0, 0, 0, 0)) Gamma->Linear(RT Shader 写入时)->Gamma(系统写入时)-Linear(其他shader读取时) //RT 使用格式为:Gamma->Linear 然后写入时系统会自动转一次Gamma //拿到贴图时,需要再次从Gamma转Linear使用 Alpha Cutoff 的贴图,最好不要使用 Mip Maps,在不同层级切换时,会导致 Alpha 精度变动,导致白边和物体密度丢失
unity采样unity_SpecCube0得到UnityBlackCube(黑色)的问题,天空盒的贴图需要烘焙之后才有数据,所以要先烘焙才能用。
模型切线的w记录是构造副法线是是否需要翻转,原因是在建模软件中使用镜像建模时,部分切线需要翻转而部分不需要翻转
使用抗锯齿时,屏幕UV不同平台的差异会出现,需要手动处理
Attributes 中的标签,必须使用全大写,不然的话,在Unity 中是正常的,在真机上会拿不到数据,变黑
8.为什么我不能在顶点着色器中采样纹理?
9.当在片元着色器上设定了使用顶点色,但是没有在顶点着色器中赋值,unity默认会填充RGB为0,A为1。 真机表现如下
如果出错,直接不渲染,并不会赋默认值等
即使加上了 FallBack “Hidden/Universal Render Pipeline/FallbackError” 真机不会显示粉色
即使直接 return half4(i.vertexCol.aaa,1),也不会变粉色
即使在宏定义中打印对应值,也不会显示,也不会显示打印的内容
但是在宏定义中使用常量打印,会生效
不能在顶点数据结构中重复定义,不然在Unity中不会出错,在真机会显示粉色