我会尽可能准确地描述这种情况,如果遗漏了一些细节,我深表歉意。
几年前,我们开始尝试使用Unity开发的STEM教育虚拟现实应用程序。我们特别感兴趣的是观察蛋白质和小分子的分子结构。由于我们不确定加载完整结构的计算负载,我们决定首先尝试从RCSB数据库下载分子到Chimera,以我们想要的方式着色和造型,然后将其保存为3D对象并导入Unity。这是有效的,除了它把所有的颜色都去掉了(出于某种原因,这并没有发生在从PubChem下载的小分子上)。我们尝试了各种方法来看看是否能保持颜色。我们保存在每一种常见的3D文件格式,我们尝试在格式之间进行转换,我们尝试通过不同的3D建模软件(Blender,Rhino和MeshLab)。我似乎记得MeshLab正确地加载了颜色,但我们仍然无法将它们正确地导入Unity。
我在网上做了一个深入的研究,看看我是否能找到一个答案,我能做的最好的是找到一个网站,暗示按照惯例,大多数分子可视化软件使用顶点着色而不是网格来给分子着色。这对我来说听起来很奇怪,特别是在谈论分子表面时,但我再也找不到这个网站来更深入地探讨这个问题。
现在,这基本上是一个没有意义的问题,因为我们在开发过程中变得更加舒适后就切换到了UnityMol,但是我们的一个手稿的审稿人对我们在开发过程中面临的技术挑战感兴趣。我想提一下颜色问题,但最好是以一种有意义的方式。在分子可视化领域工作过的人知道我在说什么吗?
1条答案
按热度按时间ql3eal8s1#
我认为造成混淆的原因是大多数标准Unity着色器都没有以任何方式表示顶点颜色。你需要一个自定义着色器或AFAIK,Unity标准粒子着色器也显示顶点颜色。
顶点颜色不是“代替”网格使用,而是在网格内的其他顶点数据之上使用,例如:Vector 3表示位置,Vector 2 uv(或texcoord),Color表示顶点颜色(着色器内部的float 4),等等。对于任何网格或3D模型,其中一些是可选的,如顶点颜色。
许多3D模型不以任何方式“使用”顶点颜色,因此它们通常甚至不保存在模型文件中。尽管如此,如果你想在没有纹理的情况下工作,但有一些漂亮的颜色,顶点颜色是完美的(e。在科学领域)。
让我知道如果这有帮助或如果你需要更多的信息!