【问题标题】:Skybox with alpha in Unity 3D with Cardboard使用 Cardboard 在 Unity 3D 中带有 alpha 的 Skybox
【发布时间】:2016-02-10 10:22:59
【问题描述】:

我已经按照instructions in the Unity guidelines 设置了我的 Photoshop 文档。

我意识到这是针对带有 alpha 的 textures,但我尝试使用相同的技术创建天空盒。当我使用纹理设置场景时,alpha 通道被保留(所以我的 PSD 看起来是正确的):

但是,当我将图像设为“立方体贴图”并且着色器是接受“立方体贴图”的“天空盒”时,Alpha 通道会丢失:

我认为这里有两个选择,1)将图像用作纹理并渲染背面,2)找到它无法在“天空盒”中渲染 alpha 的原因。

有人遇到过这个问题或有什么有用的建议吗?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    仅测试 Unity 5.3.2

    此脚本将帮助您使场景中的所有网格物体的法线指向您的 Cardboard 相机。创建一个自定义 C# 脚本并将其放入其中。

    void Start () {
            MeshFilter filter = GetComponent(typeof (MeshFilter)) as MeshFilter;
    
        if (filter != null) {
            Mesh mesh = filter.mesh;
    
            Vector3[] normals = mesh.normals;
            for (int i=0;i<normals.Length;i++)
                normals[i] = -normals[i];
            mesh.normals = normals;
    
            for (int m=0;m<mesh.subMeshCount;m++)
            {
                int[] triangles = mesh.GetTriangles(m);
                for (int i=0;i<triangles.Length;i+=3)
                {
                    int temp = triangles[i + 0];
                    triangles[i + 0] = triangles[i + 1];
                    triangles[i + 1] = temp;
                }
                mesh.SetTriangles(triangles, m);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      相关资源
      最近更新 更多