星球大战与Python之间的那些事
2016-01-07 00:00
387 查看
Python与星球大战背后的工业光魔
提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的***,其中就包括了《星球大战》某些电影特效的***。
星战之父乔治・卢卡斯于1975年创建了工业光魔(全称:Industrial Light and Magic),从第一部《星球大战》起便参与了电影的特效***。据Python官网介绍,工业光魔从1996年起开始使用Python语言,取代了此前的Unix shell脚本。工业光魔做出这个决定的原因,在于Python的学习难度低,开发速度快。当时,Python还只是1.4版本。
电影特效行业竞争十分激烈,***公司会不断地寻找更加优秀的编程语言,提高工作效率。工业光魔也是一直在评估Python语言的使用,但是近20年以来,还没有找到一个更好的替代品。
工业光魔的资深技术总监Tommy Burnette曾经这样评价道:
Python在我们的生产流程中扮演了至关重要的作用。如果没有它,像《星球大战》第二部这样的大项目就很难完成。从集体渲染到批量处理再到影片合成,Python将所有步骤都紧密的粘合在了一起。
由此可见Python的强大。
Star Wars API
你知道《星球大战》系列大战中出现了多少个种族,多少种飞船吗?这些答案都可以在Star Wars API中找到。
据开发者介绍,Star Wars API是全球首个量化的、可供编程使用的星战数据集。开发者经过漫长的搜集和整理,汇总了星战系列电影中的人物、种族、星球、飞船等详细数据。目前,这个API中已经收录了《原力觉醒》中的新数据。API的作者还用Python开发了一个helper库。
我们来看看可以用这个库做些什么。
将所有星球按大小排列:
查看哪些人开过1艘以上的飞船:
检索Jar Jar Binks是否在电影中出现:
Python编写的Star Wars小游戏
最后,再与大家分享一个国外开发者用Python开发的星战相关游戏,希望大家喜欢。
这个游戏类似现在的跑酷,通过上下左右方向键控制。
是不是很酷!很赞!很期待!
python获取豆瓣电影简介代码分享
python实现去除下载电影和电视剧文件名中的多余字符的方法
python实现根据用户输入从电影网站获取影片信息的方法
提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的***,其中就包括了《星球大战》某些电影特效的***。
星战之父乔治・卢卡斯于1975年创建了工业光魔(全称:Industrial Light and Magic),从第一部《星球大战》起便参与了电影的特效***。据Python官网介绍,工业光魔从1996年起开始使用Python语言,取代了此前的Unix shell脚本。工业光魔做出这个决定的原因,在于Python的学习难度低,开发速度快。当时,Python还只是1.4版本。
电影特效行业竞争十分激烈,***公司会不断地寻找更加优秀的编程语言,提高工作效率。工业光魔也是一直在评估Python语言的使用,但是近20年以来,还没有找到一个更好的替代品。
工业光魔的资深技术总监Tommy Burnette曾经这样评价道:
Python在我们的生产流程中扮演了至关重要的作用。如果没有它,像《星球大战》第二部这样的大项目就很难完成。从集体渲染到批量处理再到影片合成,Python将所有步骤都紧密的粘合在了一起。
由此可见Python的强大。
Star Wars API
你知道《星球大战》系列大战中出现了多少个种族,多少种飞船吗?这些答案都可以在Star Wars API中找到。
据开发者介绍,Star Wars API是全球首个量化的、可供编程使用的星战数据集。开发者经过漫长的搜集和整理,汇总了星战系列电影中的人物、种族、星球、飞船等详细数据。目前,这个API中已经收录了《原力觉醒》中的新数据。API的作者还用Python开发了一个helper库。
我们来看看可以用这个库做些什么。
将所有星球按大小排列:
import swapi for planet in swapi.get_all("planets").order_by("diameter"): print(planet.name)
查看哪些人开过1艘以上的飞船:
import swapi for people in swapi.get_all("people").iter(): if len(people.starships) > 1: print(people.name)
检索Jar Jar Binks是否在电影中出现:
import swapi pm = swapi.get_film(4) jj = swapi.get_person(36) for c in pm.get_characters().iter(): if c.name == jj.name: print("Why George, why.")
Python编写的Star Wars小游戏
最后,再与大家分享一个国外开发者用Python开发的星战相关游戏,希望大家喜欢。
这个游戏类似现在的跑酷,通过上下左右方向键控制。
是不是很酷!很赞!很期待!
您可能感兴趣的文章:
python正则匹配抓取豆瓣电影链接和评论代码分享python获取豆瓣电影简介代码分享
python实现去除下载电影和电视剧文件名中的多余字符的方法
python实现根据用户输入从电影网站获取影片信息的方法
相关文章推荐
- 黑科技 Python脚本帮你找出微信上删除你好友的人
- 用python抓京东的产品数据
- Python学习第一天
- Python学习第二天
- yield的用法
- Python开发的IDLE调试
- leetcode之Linked List Cycle II
- python报错PyUnicodeUCS2_AsUTF8String或者PyUnicodeUCS4_AsUTF8String的问题
- python twisted启动定时服务
- 执行文件或字符串中的Python代码
- Python循环
- Python-xml解析常用方法简介
- python代码片段——不断尝试执行cmd
- 《笨办法学Python》 第6课手记
- 树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试
- Python选择语句
- [Python标准库]itertools——迭代器函数
- python学习之 循环里面慎用copy类
- python--函数--5
- 关于python文件操作