Return 来自函数的结构
Return a struct from function
cg 中的结构可以用于声明管道语义以外的任何事情吗?
我正在使用 Unity3D,此代码抛出 "Shader error in 'Implicit/Rose': redefinition of 'PetalData' at line 48 (on d3d11)"。
我怎样才能让它发挥作用?我是不是遗漏了什么,或者这只是 Unity 不支持的用法?
struct PetalData {
half radius;
half2 center;
}
PetalData GetPetalData (half petalIndex, half totalPetals) {
half p = petalIndex/totalPetals;
PetalData petal;
petal.radius = 0.03 * SShape(p) + 0.01;
petal.center = sqrt(p) * AngleToDir(petalIndex);
return petal;
}
half PetalField (half2 topology, PetalData petal) {
half d = distance(topology, petal.center);
d /= petal.radius;
d = 1 - d;
d *= _Ramp;
return d;
}
如果我没看错的话,我相信你的结构定义需要一个终止分号。
struct PetalData {
half radius;
half2 center;
};
cg 中的结构可以用于声明管道语义以外的任何事情吗?
我正在使用 Unity3D,此代码抛出 "Shader error in 'Implicit/Rose': redefinition of 'PetalData' at line 48 (on d3d11)"。
我怎样才能让它发挥作用?我是不是遗漏了什么,或者这只是 Unity 不支持的用法?
struct PetalData {
half radius;
half2 center;
}
PetalData GetPetalData (half petalIndex, half totalPetals) {
half p = petalIndex/totalPetals;
PetalData petal;
petal.radius = 0.03 * SShape(p) + 0.01;
petal.center = sqrt(p) * AngleToDir(petalIndex);
return petal;
}
half PetalField (half2 topology, PetalData petal) {
half d = distance(topology, petal.center);
d /= petal.radius;
d = 1 - d;
d *= _Ramp;
return d;
}
如果我没看错的话,我相信你的结构定义需要一个终止分号。
struct PetalData {
half radius;
half2 center;
};