使用 Cardboard 在 Unity 3D 中带有 alpha 的 Skybox
Posted
技术标签:
【中文标题】使用 Cardboard 在 Unity 3D 中带有 alpha 的 Skybox【英文标题】:Skybox with alpha in Unity 3D with Cardboard 【发布时间】:2016-02-10 10:22:59 【问题描述】:我已经按照instructions in the Unity guidelines 设置了我的 Photoshop 文档。
我意识到这是针对带有 alpha 的 textures,但我尝试使用相同的技术创建天空盒。当我使用纹理设置场景时,alpha 通道被保留(所以我的 PSD 看起来是正确的):
但是,当我将图像设为“立方体贴图”并且着色器是接受“立方体贴图”的“天空盒”时,Alpha 通道会丢失:
我认为这里有两个选择,1)将图像用作纹理并渲染背面,2)找到它无法在“天空盒”中渲染 alpha 的原因。
有人遇到过这个问题或有什么有用的建议吗?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于使用 Cardboard 在 Unity 3D 中带有 alpha 的 Skybox的主要内容,如果未能解决你的问题,请参考以下文章
Sphere 未在 Unity 中为 Google Cardboard 渲染
Unity 5.6 与 Google Cardboard 在每只眼睛中显示非常不同的图像
如何使用 Google Cardboard SDK for Unity 创建 VR 视频播放器
鎵挎帴cardboard澶栧寘锛寀nity3d澶栧寘锛堝寳浜姩杞€?璋锋瓕CARDBOARD鐪熷己澶э級
导入Cardboard SDK后Build到安卓平台出错:Unable to merge android manifests. (已解决)