游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   18803836360

shader错误提示

个人分类: shader | 2018-10-9 17:15
shader版本变化引起的错误提示
我目前就遇到三个类似这样版本引起的问题。希望对需要的有帮助!

当编辑shader时,报 如下错误时:
1. 
 undeclared identifier 'UnityObjectToClipPos' at line 47 (on d3d11)

你的文章中写的是这句话 : o.pos = UnityObjectToClipPos(v.vertex); 修改成 : o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
错误消失! 或者是你shader是后者,替换成前者试试。
修改后物体找不到的话,可能是你用四维矩阵对三维向量做了改变

2. 
 undeclared identifier 'TRANSFROM_TEX' at line 49 (on d3d11)


你的文章中写的是这句话 : o.uv = TRANSFROM_TEX(v.texcoord, _MainTex); 修改成 : o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
错误消失!或者是你shader是后者,替换成前者试试。


3.
undeclared identifier 'unity_ObjectToWorld' at line 52 (on d3d11)


你的文章中写的是这句话 : o.worldPos = mul(unity_ObjectToWorld, v.vertex);修改成 : o.worldPos = UnityObjectToWorldNormal(v.vertex);
错误消失!或者是你shader是后者,替换成前者试试。

前向渲染部分

在用.6学习的时候,会有一些地方和书上不太一样,我把我遇到了做一个总结。 
问题一: 
Shader error in ‘Custom/5.2’: undeclared identifier ‘unity_WorldToLight’ at line 147 (on d3d11)

描述:这个问题是因为在版本升级之后,有一些接口已经换到其他库,并且名字也换了。如果你按照书里的来写的话,
你话惊喜的发现“咦!_LightMatrix0变成了unity_WorldToLight”,而且还默默出现了一个升级说明。然后你就会迎来之前的错误。 
// Upgrade NOTE: replaced ‘_LightMatrix0’ with ‘unity_WorldToLight’

解决办法:在对应的Pass中添加 #include “AutoLight.cginc”。 
效果:5.6版本的Unity 问题解决
0 0

作者的其他最新博客

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

返回顶部