blender 3d打印

在2016年里约残奥会上的开幕式上,滑雪板手艾米·珀迪(Amy Purdy)穿着3D打印的裙子,穿着用与裙子相同的材料印刷的假肢,并用库卡(Kuka)机械臂跳舞 。

舞蹈是关于人类精神与技术融合的陈述。 “主流媒体所忽略的背景故事是开源软件在服装制作中所起的关键作用:它是使用Blender和Python创建的。

图片由Danit Peleg提供。 经许可使用。

有时我会遇到涉及计算机图形学的人,却从未听说过日益流行的开源3D动画软件Blender。 公平地讲,它主要在开源社区中广为人知,但对于成千上万有抱负的艺术家和动画制作者来说,它已成为一种全球现象。 开放的电影项目展示了Blender可以做什么。 当涉及到3D打印时,它是用于创建和准备模型的最受欢迎的解决方案。

陷入开源

我在2006年上大学时就读音乐专业时发现了Blender。 当我在学校工程部门兼职时,我去了校园里的一所房屋,修理某人的浴室水槽下水道。 租户刚好是开源社区的热心支持者Nathanael Anderson 。 他最近在Linux Journal上大放异彩 ,成为第一个创建定制版本Rock Band的人之一,该版本使用真正的吉他和Midi拾音器。 最后,我听说他接受了使用VR创建医学领域教育工具的工作。

当我遇到Nat时,我几乎没有使用计算机的经验。 我已经购买了一台用来做笔记的笔记本电脑,但是我的知识除了对Microsoft Word的基本了解以外,还没有扩展。

另一方面,他是不同的品种。 他的家令人眼前一亮:各种各样的电子设备覆盖了每个平坦的表面,甚至覆盖了墙壁。 电脑显示器发出的神秘代码行太快而无法读取。 我仍然不知道这些东西到底是干什么的。 他已经蚕食了幻灯机,以制作用于电影和游戏的定制家庭影院系统。 后来,他向我展示了如何在阳光下使用菲涅耳透镜来液化便士。

尽管我完全不了解与计算机代码相关的任何知识,但我有一个想法,就是使用随机数生成器来创造个性和自由思想的幻觉,使人工智能更人性化。 当我拧紧浴室的水槽时,我一直在谈论自己的想法。 Nat和我一见如故,成为了朋友。 随着时间的流逝,他开始向我介绍计算机科学领域。

在有人倒茶后,他修理好我的笔记本电脑后,当我从他那里拿回笔记本电脑时,他已经在其中安装了多个开源程序,包括Blender。

学习搅拌机

我一直很喜欢做动画的想法:小时候,我用乐高积木和粘土模型制作了几个使用老式VHS摄录机的定格视频。 纳特(Nat)不断向我施加压力,开始使用Blender,但最终我屈服了。 我遵循了一个简单的教程,并通过几次击键制作了一个国际象棋。 我的大脑爆炸了。 这是一种使用数学制作艺术品的方法。 当我发现关键帧动画时,我不得不收集爆炸的灰质,这样我的大脑才能再次爆炸。

搅拌器立即变成了困扰。 我不知道动画会如此简单。

在与Blender玩了几周之后,我坐在星巴克,试图弄清楚如何使用具有顶点权重的电枢为机器人设置动画。 那时3D还是很新颖,因此当一个Web开发人员在我的计算机上看到3D时,他丢下了所有东西并开始向我询问。 他要我为一家唱片公司制作动画广告。 商业广告将由一块巨大的奖章组成,上面覆盖着宝石,这些宝石在太空中旋转并撞向熔岩田,给人留下唱片公司徽标的印象。 它需要光腐蚀,流动的熔岩,火焰和烟雾效果,摄像机目标,路径跟随-UV制图和材质设置的所有细微细节,而我对此一无所知。

我花了大约三周的时间才学到足够的知识来制作广告。 Web开发人员和唱片艺术家喜欢它,但这部分是因为它是他们可以使用的第一个3D。 我的工作报酬高达300美元,但我不在乎。 我对通过玩免费软件赚钱的可能性睁开了眼睛。

小猫和建筑

我从小型自由职业者项目开始,并最终获得了可观的投资组合。 我为《功夫小猫》游戏配上了许多不同武术姿势的小猫渲染图 。 游戏从未超越Unity中的某些原型,但随着小猫渲染的出现,我找到了我的第一份全职工作,即在爱达荷州博伊西市的一家建筑公司做可视化工作。 由于某种原因,这只小猫给部门负责人留下了深刻的印象,并且我大约已经使用Blender和Python谋生了七年了。

大约两年前,我从动画师过渡到开发人员。 我现在是Gerber Technology的仿真工程师。 我之所以来到Gerber,是因为他们正在开发3D解决方案以可视化图案设计并模拟服装行业的纺织品特性,他们选择了Blender作为开发环境。 我花了几年时间制作游戏资产,因此我对实时图形有所了解。 我还完成了许多需要各种物理模拟的项目,包括布料,这恰好是Gerber的重点。 我离开了建筑界,将家人迁至康涅狄格州约3,000英里,有机会成为一名开发商。

社区FTW!

当我开始编写用于在欧几里得空间中处理3D对象的代码时,我开始希望自己至少学习代数1,但是我却以某种方式跳过了高中的那一部分。 幸运的是,所有这些都可以从免费的视频教程中学到。 在编写第一行计算机代码后大约六个月,我使用Numpy从头开始创建了第一个布料引擎。 我在阿姆斯特丹的Blender会议上做了一个介绍 。 所有人都说这对我来说是一个了不起的成就,等等,但是我能想到的就是开源社区这一现象。

开源社区中有如此多的人正在做我从未想过的令人惊奇的事情,他们都在自由地共享他们的想法,资产甚至源代码。

暴露于这种全球性的慷慨(相对于封装为类变量的慷慨大方)和创造力而言,这种宣泄效果接近精神体验。 我还没有找到描述它的词。 我想我必须接受这样一个事实,即“开源”的含义比我在Blender会议上有机会加入之前更深的含义。 我可能对荷兰人互相买啤酒和拥抱有太多的了解,但我不这么认为。

残奥会连衣裙

这与残奥会有什么关系? 我想这是从Danit Peleg开始的。 当每个人都开始谈论服装行业中的一颗冉冉升起的新星,她在自己的家中创建了一系列3D打印服装时,我正打算为某些纹理工具或其他工具创建UI元素。 有人给我发送了录像带和Ted Talk的链接,然后解释说Danit来康涅狄格州与Gerber的一些人见面。 Danit使用Blender为其项目创建了所有模型,而我是Gerber的“ Blender专家”,所以有人邀请我参加会议。

会议结束后,她问我何时可以开始帮助她将一件衣服的原型放到残奥会委员会。 当我凝视着老板时,尴尬的沉默随之而来……经过一番讨论,管理层让我停下了一切工作,开始为衣服建模。

在很多方面,我们都处于为可打印服装设置3D模型的完美位置。 我已经精通Blender,并且已经为服装设计创建工具了两年了。 然后,我们收到了艾米·珀迪(Amy Purdy)的测量结果。 由于我们将Blender用作Gerber AccuMark 3D软件的引擎,因此我们只是插入了测量值,并开始围绕虚拟Amy代理进行建模。 通过与Danit的合作,我们开发了一个工作流程来支持3D服装设计的图案制作。 丹妮特(Danit)能够处理与阿米·珀迪(Amy Purdy)相同的身体尺寸的虚拟火塘,我们开始跑步了。

在我意识到我需要一些我没有的工具之前,我并没有走很近的一步。 幸运的是,就软件开发而言,Blender中的Python API允许以最小的努力创建一些非常复杂的工具。 我不是在这里谈论宏。 我制作的第一个工具是在N维矩阵上使用爱因斯坦求和,沿着身体和衣服的轮廓部分进行测量,以测试几何体的扁平和变形版本之间的虚拟贴合度和变形。

所有这些听起来可能使制作衣服变得有些复杂。 部分原因是因为我现在是一名工程师,因此我希望使事情听起来比实际复杂。 复杂性的另一个原因是我们从残奥会委员会那里获得的压力是确保礼服正确合身,没有毛刺或造成任何问题。 我们不断听到有关机器人控制系统的模糊信息,即机器人的动作是部分动态的,对舞者的动作做出React。 如果衣服弯曲得太厉害,可能会混淆机器人的传感器,或者如果衣服的某些部分紧贴机器人,舞者可能会被困住(而且该机器人的强度足以举起汽车,因此舞者可能受伤或丧生。 )。 我们也有严格的截止日期和有限的时间,因此第一次就必须合适。 “嘿,我们需要你为衣服建模,如果弄错了,残奥会选手可能会丧命。祝你好运,没有压力。” 当时的危险可能有点夸大了,但我没有把握任何机会。

通过与Danit合作并利用Gerber的AccuMark 2D和3D应用程序的过程中,出现了几种有用的工具和工作流程,这对于创建3D打印服装很有用。 我能够破解Blender的UV解包工具,进行一些修改,然后从化身周围的衣服中提取扁平图案。 Numpy让我们构建一个凸包生成器,该生成器可以跨过化身以创建基本服装为起点。 通过围绕色轮的一些旋转矩阵,我们可以看到需要制作Dart和接缝的位置,以使扁平化的几何形状更好地与主体的形状保持一致。 Numpy借助重心系统再次进行救援,该系统可使任何形状的网格都遵循简单表面的变形。 这使我们可以在展平图样上创建复杂的结构,并使用展平图样以3D形式将这些结构包裹在图形表达上。 我意识到这是很多行话,但是当您看到3D程序中发生的事情时,它变得更加有意义。 为了更好地理解,您可以观看我的演讲 。

总结思想

作为开源社区的新手,我不得不说给我留下了深刻的印象。 我能够带我一个同事去参加上一届Blender会议,那里的工作使他无语。 实际上,他是如此无语,直到整天在Blender会议上与人们互动后,直到大约凌晨四点,他才会对开放源代码社区的惊人之处不屑一顾。 我不介意 我在第一次Blender会议上也有同样的经历。

确实就像是在没有离合器的情况下转移范式,从斯科特·亚当斯那里偷了一条线。 当我已经放弃想法时,我不必担心别人会偷我的想法,这是我的一大负担。

翻译自: https://opensource.com/article/16/12/blender-python-3D-dress

blender 3d打印

blender 3d打印_使用Blender和Python 3D打印连衣裙相关推荐

  1. blender 可视化编程_使用Blender可视化天体物理学数据

    blender 可视化编程 Blender会议不仅是吸引人的艺术和动画展示,而且是Blender和开源软件的非常规用法,已经成为一个奇妙的展示. 今年真正引起我注意的演讲之一是吉尔·奈曼博士(Jill ...

  2. python上三角九九乘法表_用5行Python代码打印九九乘法表

    今天来个小练习,用 5 行 python 代码打印九九乘法表. 分析问题 九九乘法表是有一定的规律,每一行的等式里面,第一位数从 1 开始递增,第二位数保持不变,每一列的等式里面,第一位为当前的列数, ...

  3. python两个线程交替打印_三线程按顺序交替打印ABC的四种方法

    建立三个线程A.B.C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印. 二.Synchroni ...

  4. css html 双面打印_从 Linux 命令行进行打印 | Linux 中国

    导读:在 Linux 命令行进行打印的内容比单单一个 lp 命令多得多,让我们来看一些可用选项. 本文字数:4305,阅读时长大约:5分钟https://linux.cn/article-13012- ...

  5. 打印机乱码不停打印_关于东芝复合机连接打印,图文教你如何轻松连接至电脑...

    电脑要连接东芝的复印机实现打印,方法比较多,可以通过光盘安装,可以通过添加打印机安装,也可以通过机器硬盘内置驱动安装,今天就教大家如何通过内置驱动安装,实现打印. 前提条件,电脑与复印机的网线连接正常 ...

  6. .net实现批量在线打印_如何实现报表的批量打印需求

    在 web 报表应用中,经常会遇到批量打印的需求,即点击一次打印按钮,实现多张报表的打印输出.润乾报表提供了两种不同的打印方式(applet 打印.PDF 打印)实现批量打印需求,同时也支持横纵报表打 ...

  7. java 批量打印_用java怎样实现批量打印

    展开全部 下面是实现Java批量打印功能的具体工具类,其中的Info类和UserClass为具体的快递面单中要打印的信息e68a8462616964757a686964616f313333633839 ...

  8. 为什么hp打印机一直显示正在打印_惠普打印机为什么一直打印不停

    展开全部 原因:可能是在点击打印的62616964757a686964616fe4b893e5b19e31333433636236时候不小心点了很多次,或者是设置了打印多份. 解决具体操作办法如下: ...

  9. 如何做到免驱打印_创想三维:3D打印机制造光感护眼台灯

    都说电灯是人类征服黑夜的一大发明,而拥有一台创意性的灯饰,晚上可以透过光影的层次营造浪漫的气氛,为我们的生活带来了许多趣味. 在以前的文章中,我们介绍了有关3D打印灯饰的案例,灯壳个性化定制和创意十足 ...

最新文章

  1. SparkSQL 与 Spark Core的关系
  2. redis nio 多路复用
  3. devc代码补全没效果_从零开始写文本编辑器(二十八):自动补全(上)
  4. python启动mysql_Python操作MySQL
  5. mysql查看日志命令_面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!...
  6. linux从别的主机下载,从局域网内的其他Linux主机下载文件
  7. 一起来玩AZURE SQL(一)AZURE SQL 介绍
  8. 蚂蚁集团与CCF达成合作成立基金,支持35岁以下青年学者
  9. Spring Swagger URL传参问题(转)
  10. Js实现文字水平滚动
  11. python如何提高性能_python – 如何在这个短代码中提高numpy性能...
  12. thinkphp5.0.6 连接SQLServer2008r2 配置总结
  13. python程序设计简明教程课后答案_Python简明教程最后的练习题
  14. java 一元线性回归_Java实现一元线性回归
  15. Quartus II 13.1的安装及使用
  16. PPT插入形状,在里面填写文字,文本框过大
  17. html用超链接将网页组织在一起,Javaweb-html
  18. [HDU]1205 吃糖果 [抽屉原理]
  19. android课程设计体重测量仪,智能体重检测仪设计与实现
  20. C 语言 结构体_finddata_t _findfirst, _findnext, _findclose 函数讲解

热门文章

  1. Spring为啥默认把bean设计成单例的
  2. C#综合揭秘——深入分析委托与事件(上)
  3. The Geometry has no Z values 解决办法
  4. css3 animation动画事件
  5. 未来程序员的发展趋势
  6. ORA-24324 ORA-24323 ORA-01090
  7. Python常用小技巧(五)——批量读取json文件
  8. Linux中qt编写登录
  9. zabbix mysql密码_重置Zabbix数据库Admin的密码
  10. 自定义有多个按钮节点的SliderView