编写3D数学库手记

       本来这两天是准备动手写3ds max的导出插件的,但看着看着,感觉到自己的数学根基不稳,所以干脆从自己的数学库写起。

       看到3D,有时真的对数学感触很深。究竟学数学的意义是什么呢?记得在上大学以前,数学的用途就仿佛只有考试和竞赛,身边的同学都是带着功利心和分数的压力去学,去做题,而老师更是受学校要求的“威迫利诱”一遍一遍地压着学生。真的很恐怖,也很悲凉。

      但上了大学就不同了,凡是要用程序来解决一些问题,或者是实现某些功能和效果,都需要数学建模,毕竟计算机是建立于0/1数学之上的吧。现在看到自己的数学知识换成一行行代码,一个个模块时,心里真的有种满足感和幸福感。

      这个数学库我是参考《3D数学基础:图形与游戏开发》的内容来写的。这本书真的有很强的针对性和实践性,其中某些运算都把代码给出来了。记得有一个老师说过,尽管这是人家的程序,但如果你把它消化掉,那些东西就是你自己的了。另外,这本书也有不少让我怀疑的地方,但愿我能改正,并用实践去证明正确性。写完这个后,再跟野猪哥哥的那个数学库对比对比,我答应过给他找bug的。^_^

       这个数学库主要实现的运算有:

      3维向量:取反、加减、点积、叉积、求模、标准化、向量投影、两个向量夹角的余弦和正弦等;

      欧拉角:转换到限制集、物体-惯性或惯性-物体四元数转换成欧拉角;

      四元数:叉积、点积、构造关于X,Y,Z和任意轴的转动的四元数、提取旋转轴和旋转角、Slerp、共轭、求幂、正规化、Squad、用欧拉角构造物体-惯性旋转的四元数

      4x3矩阵:平移、执行父空间<-->局部空间变换、绕任意轴旋转、沿任意轴缩放、切变、投影、沿任意平面反射、矩阵乘法、求逆

     完成这些后,就着手写max的导出插件(之前酝酿得也差不多了),然后写mesh导入,还有AABB。。

     差点忘了纹理的导入和映射!

    It's so amazing!

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值