Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 如何旋转立方体贴图?_Unity3d_Rotation_Shader_Shaderlab - Fatal编程技术网

Unity3d 如何旋转立方体贴图?

Unity3d 如何旋转立方体贴图?,unity3d,rotation,shader,shaderlab,Unity3d,Rotation,Shader,Shaderlab,我目前正在Unity中开发一些反射着色器。我对着色器完全是新手。 我找到一篇关于立方体贴图旋转的文章。我已经做了一些实现,但似乎不能正常工作。我在顶点着色器中仅使用旋转法线旋转立方体贴图。 我怎样才能达到效果 您确定要学习着色器编码吗?如果没有的话,有一个着色器图形(在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);
      }