drac(Google开源模型压缩算法)编译与unity中的使用

环境准备:

1.下载drac源码:https://github.com/google/draco

2.所用环境:windows10,cmake,vs2015,unity

编译drac:

1.drac源码文件中新建build文件,cmd中进入build文件夹,使用一下命令编译源码:

cmake ..

将在buid文件夹下生成编译结果。

2.用vs2015打开build下vs解决方案:draco.sln,编译该解决方案,生成:

draco_encoder.exe(用于编码模型)、

draco_decoder.exe(用于解码draco_encoder.exe编码生成的文件)。

注:笔者在vs Debug模式下编译,draco_encoder.exe、draco_decoder.exe生成于build/Debug路径下。

模型压缩:

3.在Debug路径中放入测试模型:model1.obj。

4.cmd中进入Debug路径,输入以下命令进行编码。

 ./draco_encoder.exe -i model1.obj -o model1.drc

成功后即可得到压缩的模型格式为.drc。
注:在参数中输入-cl 10可改变压缩率。

5.输入以下命令进行解码:

./draco_decoder.exe -i model1.drc -o model_compress.obj

unity中使用

1.将源码目录中unity文件夹下内容拖入unity工程中。

 

注:笔者测试时,拖入后存在一个报错,注释掉报错代码。unity中需使用bytes类型模型,须将前述得到的.drc模型或原始.obj模型转化为.bytes。

2.使用以下命令生成.bytes格式模型:

./draco_encoder.exe -i model1.drc -o model1.bytes
// 直接通过.obj模型生成.bytes
 ./draco_encoder.exe -i model1.obj -o model1.bytes

3.unity场景中创建空游戏对象。为该对象添加MeshFilter、MeshRender组件。

4.为该空游戏对象添加之前拖入工程中脚本:DracoDecodingObject.cs。

5.将前述生成的.bytes文件拖入工程Resources文件夹下。

 6.打开DracoDecodingObject.cs脚本,修改下图代码(将默认字符改为:拖入.bytes模型名称)。

7.点击运行,即可看到,在运行时场景中空物体被渲染为我们添加的模型。

 总结:drac算法将模型编码压缩成.drc、.bytes类型,源码unity目录中DracoDecodingObject.cs将已编码模型解码为可在unity中渲染。(注:若存在错误,恳请指正,谢谢)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值