Unity3d 如何旋转立方体贴图?
我目前正在Unity中开发一些反射着色器。我对着色器完全是新手。 我找到一篇关于立方体贴图旋转的文章。我已经做了一些实现,但似乎不能正常工作。我在顶点着色器中仅使用旋转法线旋转立方体贴图。Unity3d 如何旋转立方体贴图?,unity3d,rotation,shader,shaderlab,Unity3d,Rotation,Shader,Shaderlab,我目前正在Unity中开发一些反射着色器。我对着色器完全是新手。 我找到一篇关于立方体贴图旋转的文章。我已经做了一些实现,但似乎不能正常工作。我在顶点着色器中仅使用旋转法线旋转立方体贴图。 我怎样才能达到效果 您确定要学习着色器编码吗?如果没有的话,有一个着色器图形(在unity软件包中)使用起来要简单得多,可以实现几乎所有的功能(因为它现在支持自定义节点)。是的,我真的很想进入着色器编码。关于着色器图形,您是对的。但我现在想编码,你的代码实现了你对方法名称的期望:法线绕垂直轴旋转。问题是:你想
我怎样才能达到效果
您确定要学习着色器编码吗?如果没有的话,有一个着色器图形(在unity软件包中)使用起来要简单得多,可以实现几乎所有的功能(因为它现在支持自定义节点)。是的,我真的很想进入着色器编码。关于着色器图形,您是对的。但我现在想编码,你的代码实现了你对方法名称的期望:法线绕垂直轴旋转。问题是:你想做什么?你还没有实现你链接的文章的任何具体细节,这篇文章本身就有一个相当复杂的实现效果的方法。它们使用一个反射向量、多个立方体贴图样本,并基于法线在它们之间进行混合。您确定要进入着色器编码吗?如果没有的话,有一个着色器图形(在unity软件包中)使用起来要简单得多,可以实现几乎所有的功能(因为它现在支持自定义节点)。是的,我真的很想进入着色器编码。关于着色器图形,您是对的。但我现在想编码,你的代码实现了你对方法名称的期望:法线绕垂直轴旋转。问题是:你想做什么?你还没有实现你链接的文章的任何具体细节,这篇文章本身就有一个相当复杂的实现效果的方法。它们使用反射向量、立方体贴图的多个样本,并基于法线在它们之间进行混合。
float3 RotateAroundYInDegrees (float3 vertex, float degrees)
{
float alpha = degrees * UNITY_PI / 180.0;
float sina, cosa;
sincos(alpha / 2, sina, cosa);
float3x3 m = float3x3(cosa, 0, sina, 0, 1, 0, -sina, 0, cosa);
float3 r = float3(mul(m, vertex.xyz) ).rgb;
return r;
}
void vert (inout appdata_full v, out Input o) {
UNITY_INITIALIZE_OUTPUT(Input,o);
v.normal = RotateAroundYInDegrees(v.normal, _Rotate);
}