是否有适用于3D模型/ 3d数据的版本控制系统?

时间:2008-09-03 15:43:43

标签: version-control

主题基本上是问题。是否有适用于3D模型的版本控制系统。当然,首选开源方法。

我正在寻找与颠覆相关的功能,但更基本的系统也会受到关注。分支/合并/提交等基本操作应该以这种或那种形式提供。

更新:使用开源方法我并不是指免费,而是在需要时大量扩展和定制系统的选项

UPDATE2:我不知道如何用最好的方式来描述它,但3d模型的格式并不重要。我们将使用IFC模型,主要是CAD程序。 Adam Davis所描述的方法可能就是我所寻求的。

10 个答案:

答案 0 :(得分:14)

这很困难,因为大多数3D CAD程序都没有考虑到修改的可能性,所以当你加载某些内容然后再次保存它时,可能会完全重新排序这些点(通常有这样的理由,通常完成表演)。

此外,以文本格式表示的大型模型是巨大的文件,并且将永远复制/合并/等。

目前还没有系统能够解决这个问题,但业界对此非常需要。

我希望这样的系统有一个模型规范化器,可以转换成所需的CAD格式和修订格式。然后它可以更轻松地处理合并和跟踪更改。

它还需要以一种形式输出差异,您可以在cad程序中打开“diffed”模型,并且更改以不同的颜色显示或以其他方式突出显示。没有人能够看到文本差异,并了解他们正在看什么。这个差异化程序最终需要支持理解两个模型是相同的,即使0,0,0位置和旋转不相同(难以匹配的问题)并给用户一些接口,以便在它获得时帮助它卡住。

您可能必须单独处理模型的各个部分(骨骼,网格,纹理等),并在将它们转换为包含模型文件以供使用和修改时,使用第三个文件同步它们。

这不是一个微不足道的问题......但如果你开始处理刚刚处理网格并开源的东西,你可能会让很多人感兴趣。

答案 1 :(得分:5)

虽然这个问题已经过时了,但它仍然是谷歌3D版本控制的结果。幸运的是,在问题问题已经过去的几年里,Github开始用visual diffs支持3d STL文件!

答案 2 :(得分:3)

查看http://3drepo.org

它是3D资产的开源修订控制框架,具有高度可扩展性。

答案 3 :(得分:1)

类似于GingaNinja所说的,如果您关心的是在不同版本中管理二进制文件,那么大多数版本控制系统都适合您。但是,如果您要查找的工具将显示实际图像中的更改,您可能很难在此处找到工具的推荐。我首先会在图形艺术家论坛上提问。

答案 4 :(得分:1)

虽然我意识到这是一个稍微不同的主题,但您可能会对问题Version Control for Graphics的答案感兴趣...

答案 5 :(得分:1)

大约一周内发布了常见3D格式的差异工具。它支持dxf / dwg,obj,stl,igs。它可能不完美,因为它仍然在版本1中,但希望它可以帮助解决您的问题。该工具名为Differ3D,可在http://www.blackspiralsoftware.com找到。 免责声明:我为发布此产品的公司工作。我们希望改进它,以便欢迎任何反馈。

答案 6 :(得分:0)

我的印象是SVN非常适合任何使用文本文件的项目。因此,如果您的模型由文本文件组成,那么它会没问题。

我没有看到二进制数据如何工作,因为我所知道的所有版本控制都使用差异管理,后者使用文本比较。

答案 7 :(得分:0)

3d模型和数据只是数据文件,无论其格式是文本还是二进制。版本控制系统可以处理这两种情况,因为您经常检查库等,这是二进制文件。

我不太确定“开源方法”是什么意思。你的意思是免费解决方案吗?您可以获得必须付费的开源项目,具体取决于您的使用情况,例如: Qt的。

Subversion或CVS会存储文本或二进制模型,并且都是免​​费的。 Subversion比CVS更受欢迎,因为它可以在变更集中提交多个文件。在Windows上,您可以使用TortoiseSVN,这是一款优秀的免费工具集。

答案 8 :(得分:0)

如果您使用Subversion,您必须记住锁定(假设文件是​​二进制文件,几乎所有3D模型格式都是如此)。除了Subversion和其他类似OSS之外,您可以查看Gridiron Flow - Gridiron Software的新内容/工作流管理软件。 Adobe的John Nack给了它一个rave review

答案 9 :(得分:0)

DXF是一种文本文件标准(与XML类似),但我不认为合并这些类型的文件是一个特别好的主意。

如果要对2个AutoCAD文件执行Diff操作,可以通过“Handle”(唯一的十六进制标识符)以编程方式处理单个对象。位置,旋转,缩放,颜色等是对象的属性。 CAD图纸基本上是对象数据库。我不知道有任何产品可以做到这一点。变更跟踪是一个可行的命题,但合并将会复杂得多。