unity3d - 无效的输出语义“SV_POSITION”:合法索引在 [0,0] 中
问题描述
我刚开始学习Unity3d Shader,我按照一本书的教程,我所有的代码都和教程一样,但是,有一个我想不通的错误。
这是代码:
Shader "Unity Shaders Book/Chapter5/Simple Shader"{
SubShader{
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct a2v {
float4 vertex:POSITION;
float3 normal:NORMAL;
float4 texcoord:TEXCOORD0;
};
struct v2f {
float4 pos: SV_POSITION;
fixed3 color : COLOR0;
};
v2f vert(a2v v) : SV_POSITION {
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.color = v.normal *0.5 + fixed3(0.5, 0.5, 0.5);
return o;
}
fixed4 frag(v2f i) : SV_Target{
return fixed4(i.color,1.0);
}
ENDCG
}
}
}
解决方案
更改此行:
v2f vert(a2v v) : SV_POSITION {
进入这个:
v2f vert(a2v v) {
推荐阅读
- login - 如果帐户已经存在,则创建“登录”提供程序伪代码
- python - AttributeError:“'ChatBot' 对象没有属性'trains'”
- php - Wordpress:如何在 wordpress 中通过用户名搜索用户
- javascript - 如何禁用过去的日期?
- python - 写入文本文件时出现问题。被覆盖/剪切的文本文件
- python - 使用 Beam IO ReadFromPubSub 模块时,可以在 Python 中拉取带有属性的消息吗?不清楚是否支持
- julia - 对 Julia、CuArrays 和 ArrayFire 中的 Nvidia GPU 包感到困惑
- mysql - 如何使用 mySQL 查询按顺序连接多个字段?
- javascript - 为什么我的内部函数会在纯 JavaScript 中导致“未捕获的 TypeError:countMe.Increment 不是函数”?
- sql - Oracle 连接子句中的无效数字