当前位置: 首页 > 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.lryc.cn/news/451843.html

相关文章:

  • 信息安全工程师(29)存储介质安全分析与防护
  • Html5知识点介绍
  • 探索机器学习中的特征选择技术
  • 数造科技入选中国信通院《高质量数字化转型产品及服务全景图》三大板块
  • 什么是分布式数据库
  • 从u盘直接删除的文件能找回吗 U盘文件误删除如何恢复
  • 如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue
  • 【生成模型】学习笔记
  • 大语言模型知识点分享
  • openpnp - 底部相机高级校正的参数设置
  • 劳动与科技、艺术结合更好提高劳动教育意义
  • 基于Hive和Hadoop的招聘分析系统
  • 目标检测评价指标
  • 解决VRM格式模型在Unity中运行出现头发乱飞等问题
  • 消息中间件---初识(Kafka、RocketMQ、RabbitMQ、ActiveMQ、Redis)
  • MySQL高阶2010-职员招聘人数2
  • 【Java】—— 集合框架:Collection接口中的方法与迭代器(Iterator)
  • 华证ESG工具变量(2009-2022年)
  • Linux date命令(用于显示和设置系统的日期和时间,不仅可以显示时间,还能进行复杂的时间计算和格式化)
  • 高中教辅汇总【35GB】
  • 树莓派 AI 摄像头(Raspberry Pi AI Camera)教程
  • SpringBoot实现的师生健康信息管理平台
  • 启用vnc访问Dell 服务器IDRAC 7虚拟控制台
  • 分布式数据库知识详解
  • 无人化焦炉四大车系统 武汉正向科技 工业机车无人远程控制系统
  • 【Linux】几种常见配置文件介绍
  • 【2024最新】华为HCIE认证考试流程
  • Golang | Leetcode Golang题解之第453题最小操作次数使数组元素相等
  • 想知道为什么有DICOM格式,YAML格式,XML格式,JSON格式吗?
  • Kubernetes环境搭建