MonsterMash 论文的移植复现的过程

本文讲述了将Google提供的MonsterMash项目进行平台无关化,解决Ubuntu20限制,重点在于Windows移植中的CMake配置、OpenGL与opengles差异以及数字几何处理。作者介绍了如何处理Triangle.c库的问题和使用Eigen3进行线性代数运算。
摘要由CSDN通过智能技术生成

这是非常有趣随笔模型动画创作的项目,项目主页:

Monster Mash: A Single-View Approach to Casual 3D Modeling and Animation (cvut.cz)

google提供的源码只能在ubuntu 20上运行。我的任务把代码平台无关化,并且把有争议的许可协议的Triangle.c改用为TriWild。

最终项目效果图:

 

 

 

 

Monster Mash 项目运行视频

 

 

分析过程:

系统的输入的是笔画,通过深度,分层,系统做连接和连同操作。但源码对输入没有做过滤导致会出现异常,我做了补充: 

 

 

MonsterMash 主要贡献初步看了一下论文,不能发现作者也是基于前人的基础上 做出了自己优化,建模是基于泊松方程,,通过ARAP-L 求解优化 解决了“扁平”的问题。

从原文和源码不难看出,如果下图:

 

 

移植过程(重点):

作为小码农,我的主要工作还是专注于技术的落地问题,此项目为cmake构建,从此项目github的 issue 可以看出很多人在移植到window上都卡在编译上,因为源项目没有为window做匹配。

 

难点1:此项目cmake 的window适配:

所以cmake是需做一些修改的如下图:重点是window基础库 以及MSVC 编译器的版本 以及相关的宏指令(重要)还有一些语言的平台差异,在调试过程就能解决。

 

 难点2:opengl 与 opengles的差异:

window下用模拟器的opengles 不能兼容sdl2 重点是shader的修改 和一些绘图api的修改,比如:

难点3:对数字几何处理基本方法感到比较陌生

对数字几何处理基本方法有些陌生的朋友对  Eigen3 会有些抵触

还有triangle.c库,可以参考 Windows下编译Triangle - bigeo - 博客园 (cnblogs.com) 另外在win64位系统偶尔会触发错误,我已经修复:

 

 对于Eigen3 线性代数运算库 其实我觉得,多用就好。其实是很好用的库:下面是非常经典图形学矩阵变换,但Eigen3能做的远不至此:

 

写在后面:

如果认真阅读源码的朋友会发现,其实官方提供的demo功能并不完整,项目是支持精细度调整,和非对称纹理,以及z方向的动画的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值