最近Pixar的开源USD软件很火,官方在Introduce中明确讲到这个软件的设计开发目标是增强艺术家协作,减少不确定因素,最大化资产版本迭代效率,追求更大的承载能力。
当今行业中传统的线性的制作方式来已经很难满足日益复杂的流程需求了,采用Alemibc是一个好办法,但Alembic只能作为中间文件在Pipeline中传递,并没有提供有力的组装工具,要将多个abc资产组装起来,给予材质,打上灯光,还需要在maya或其他软件中进行。当整个场景非常庞大的时候,maya就会陷入性能的挣扎,在这里需要强调一下:Maya是一个典型的数字内容制作软件,为了提供丰富的操作方式,底层会有大量涉及到交互及传递的实例,在制作过程中这样的机制非常灵活优秀,但在组装过程中,这样的机制就显得冗余了,场景越大,Maya消耗的无关内存就会越多,这也是为什么Pixar要搞USD作为专门的组装的工具的原因。为了应对超大场景的组装,USD的python api是独立于界面的,你可以直接在python中创建场景添加或编辑资产,这个过程非常geek,跳过了显示场景这个最大的性能瓶颈,这也是USD灵活性的一个体现,显然Pixar放言要超越Alembic不是说着玩的。
关于USD怎样介入到Pipeline中,Pixar提供了两个视频:http://graphics.pixar.com/usd/downloads.html,视频中Pixar对各部门的制作顺序及分工做了大致的安排,USD在这样一个有向图中应该着眼于哪一个部分都有阐述,有兴趣可以看看。
官方Introduce中明确说到当前的USD版本在linux中是可以稳定运行的,但在windows、macos中还只能确保运行testsuit无碍,毕竟USD的数据类型及多线程原生基于linux。
基于以上USD的优点,我决定赶个时髦,build一个来研究一下。
废话不多说,步骤如下:
一:安装操作系统
我的操作系统是CentOS7.0的完整版,下载地址:http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1708.iso ,你可以选择直接安装到硬盘中,也可以安装到虚拟机中。
如果对CentOS不熟悉,建议安装CentOS7的时候把所有能选的软件包全部选中,防止缺失依赖包。
注意USD的Build过程对虚拟内存大小要求较高,如果虚拟内存不够大,编译是无法继续的。
建议你在terminal中输入free -m查看虚拟内存大小,建议不低于10G,这样不会出错;如果虚拟内存不足,你需要执行以下四行bash命令,其中第一行命令中的count是追加的虚拟内存数,4096000就是追加4G的意思。
dd if=/dev/zero of=/swap bs=1k count=4096000 mkswap swap swapon /swap echo “/swap swap swap defaults 0 0” >> /etc/fstab
最后你再次输入free -m查看,确认虚拟内存大小足够。
二:下载USD
下载USD放到硬盘中任意位置,路径中不要有中文,这是常识。下载地址:https://github.com/PixarAnimationStudios/USD
注意:如果你的CentOS7是安装到虚拟机中的,你下载的文件需要从/mnt/hgfs/.中拷贝出来,放到Download中就行,在/mnt/hgfs/中尝试安装会收到权限不足的错误提示。
二:下载Maya2016
下载Maya2016放到硬盘中任意位置,路径中不要有中文,这是常识。下载地址:http://download.autodesk.com/us/support/files/maya_2016_service_pack_6/Autodesk_Maya_2016_SP6_EN_Linux_64bit.tgz
这个Maya安装包中是没有devkit的,安装完毕Maya之后你还需要单独下载Maya的devkit,下载地址:https://github.com/autodesk-adn/Maya-devkit
解压devkit,把linux文件夹中的devkit、include、mkspecs拷贝到Maya安装文件夹中,一般是/usr/autodesk/maya2016。
如果没有安装devkit,你是无法编译安装usdmaya的,这是一个usd提供给maya的插件,如果需要maya与usd进行交互,那么这一步是必须的。
三:安装PySide
在开始菜单栏的Applications->System Tools->Settings中确认当前系统是否联网,如果没有联网,yum install xxx会无法进行。
CentOS提供了yum包管理方式,如果缺少某一个依赖包,你可以通过yum install xxx的方式联网安装,非常方便,这也是我选择在linux中build USD的一个原因。
PySide比较特殊,属于python的库,需要通过pip安装,原生的CentOS需要自行安装pip。安装方法如下:
在terminal中执行以下语句:
sudo yum install pip
输入用户密码,即可安装pip。
然后在terminal中执行以下语句:
pip install PySide
即可安装PySide。
目前最新版本的MacOS是无法安装PySide1.2.6的,所以MacOS可以放弃了,如果你没升级,恭喜你。
四:安装其他依赖项
具体命令如下:
sudo yum install cmake sudo yum install boost sudo yum install tbb sudo yum install alembic sudo yum install OpenEXR
当然你也可以把五句安装命令写成一行:
sudo yum install cmake boost tbb alembic OpenEXR
执行完毕即可分别安装cmake、boost、tbb、alembic、OpenEXR
五:Buid USD
当以上所有依赖项软件包都安装成功后,你就可以正式安装USD了。
进入USD的build_scripts文件夹中,打开terminal,运行以下命令
python build_usd.py --test --docs --ptex --alembic --hdf5 --maya --maya-location=/usr/autodesk/maya2016 /usr/local/USD
这句命令会将USD编译安装到/usr/local/USD中,于此同时还会安装test、docs、ptex、alembic、usdmaya等组件,接下来你就需要安静的等待了,整个个过程非常漫长,大概一个钟头左右,视机器配置而定。
之后你就可以愉快的运行test中的测试样例来开启USD的新篇章了。
USD在Windows中的安装方式,与linux大同小异,具体可以参考这篇文章:https://qiita.com/takahito-tejima/items/f820e16869ca4343a600
国庆期间比较闲,我会再翻译一些USD的document出来,学习并分享。
以上。