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

undeclared identifier ‘UNITY_PREV_MATRIX_M‘ - Unity Shader自己写URP,引用内部 hlsl

碰到这样的问题,居然非常淡定

这个链接里说了问题:

一个哥们A问,为什么include urp common.hlsl 提示莫名其妙

另一个哥们B说,这个issue 说了,可能是这个原因(也没正面答)

从issue我们知道:

(问题出在12.0.0 2021年-01月更新的版本,添加了_PREV_MATRIX_M这两个宏)

为了? motion vector Rendering?我们甚至不知道这个是TMD Vector渲染是做啥的

还只是为了,GPUInstance

结果,就是新版本 12.0之后,2021年过年回来,就不能直接调用内部的 hlsl

链接

https://www.reddit.com/r/Unity3D/comments/12gqxbc/undeclared_shader_defines/

居然发现在搜索栏,这里,直接输入,相当于全局搜索,可以查到所有相关,可方便阅读代码

解决方法

//就是很粗暴的添加 define 引用
//公共方法库
#ifndef CUSTOM_COMMON_INCLUDED
#define CUSTOM_COMMON_INCLUDED
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
#include "UnityInput.hlsl"
//定义一些宏取代常用的转换矩阵
#define UNITY_MATRIX_M unity_ObjectToWorld
#define UNITY_MATRIX_I_M unity_WorldToObject
#define UNITY_MATRIX_V unity_MatrixV				//这些定义,估计也是被替换掉,很可能不生效
#define UNITY_MATRIX_VP unity_MatrixVP				//这些定义,估计也是被替换掉,很可能不生效
#define UNITY_MATRIX_P glstate_matrix_projection 	//这些定义,估计也是被替换掉,很可能不生效//这里不行:#define UNITY_PREV_MATRIX_M (float4x4)0//获取值的平方
float Square (float v) {return v * v;
}#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl"
#define UNITY_PREV_MATRIX_I_M (float4x4)0
#define UNITY_PREV_MATRIX_M (float4x4)0
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/SpaceTransforms.hlsl"
#endif

结果没提示出错了

后续有什么隐藏问题不确定,至少是不出错了


http://www.mrgr.cn/news/38712.html

相关文章:

  • linux环境下使用sqlplus访问远程oracle数据库
  • DAY17||654.最大二叉树 |617.合并二叉树 |700.二叉搜索树中的搜索 |
  • 0基础学习CSS(六)字体
  • The 2024 ICPC Asia East Continent Online Contest (II) K. Match(图计数dp 二分图匹配方案)
  • Cpp::STL—string类的使用与理解(下)(9)
  • 矩阵SVD分解中u,s,v的实际意义
  • Golang | Leetcode Golang题解之第443题压缩字符串
  • C++ | Leetcode C++题解之第443题压缩字符串
  • Android平台如何获取CPU占用率和电池电量信息
  • C语言课程设计题目六:学生信息管理系统设计
  • 【分布式微服务云原生】10分钟打造坚不可摧的系统:深入探索系统的鲁棒性
  • 树莓派外挂Camera(基操)(TODO)
  • 全功能运营级开源跨境电商平台源码 —— 多语言全球化商城解决方案
  • systemd-analyze命令:Linux系统启动分析
  • Python库matplotlib之二
  • 【C++篇】启航——初识C++(上篇)
  • 设计模式之组合模式
  • Tomcat安装和配置教程(图文详解,最简洁易懂)
  • AI运用在营销领域的经典案例及解析
  • 深度学习反向传播-过程举例