GODOT 3.0 开发进度汇报 #6

经过了又一个月的开发工作,在此作进度报告。本月的工作可以划分为:完成Web导出工具开发、GDNative、以及新的粒子系统。
Web Export
Godot 现在有了一款实验性的导出工具,导出目标为WebAssembly 与 WebGL2。这要感谢eska的工作成果。这项功能需要在最新的Chrome或Firefox浏览器中进行测试,不过运行效果是真的好。它甚至可以让游戏在移动Web环境完美运行!
这里有一个小型的 platformer demo 供大家体验(记住只能在最新版本的Chrome或Firefox下运行!)。
GDNative
我们最近写了一篇关于 GDNative的文章。现在,让我来告诉你由Thomas Herzog (karroffel) 与Bojidar Marinov (bojidar-bg)开发的这项令人惊艳的新特性。它能产生许多好玩的事情:
- 添加用C++编写的Godot对象,而无需重新编译godot或编辑器。原理是在此之前要先创建一个模块,用于进行隐式重新编译一切。
- 可以优化游戏的任意部分,即用C++进行重写,也可用任何能编译成目标平台原生代码的语言进行编写,而且无需重新编译引擎或模板。
- 不用任何的重新编译即可绑定任意外部库(如SQLite、Steam等)。甚至可能从我们的Asset共享仓库下载这些绑定库。
- 使用官方库可以添加更多的Godot之外的导入导出格式。比如你可以从Asset Sharing平台下载一个FBX导入模块。就像直接支持各种素材一样,如Spine(译注:2D动画制作软件)使用自己的库。
- 添加外部脚本语言,如Lua、Python等。当然,不到GDScript那么好的整合程度,能发挥的作用会比较小,你要清楚这些限制。
这将是Godot 3.0一项令人惊艳的新副产物。
新的粒子系统
Godot 3.0会带来一套新的粒子系统。随着时代的变化,该系统最主要的区别是粒子系统完全通过GPU来处理的,这意味着什么呢?
速度!
你可以在那些过时的CPU或移动设备上运行几十万个粒子,或者在现代的桌面GPU上运行上百万个粒子。

定制化
我们提供了默认的粒子材质的同时,还可以让你完全通过Shader编写自己的粒子逻辑。还可以将例子系统转换到Shader以便手动进行进一步的修改。
更多能力
默认粒子材质允许使用时间变化曲线对所有参数进行调整(tweaking)。

同时它也不再仅限于公告牌(Billborad)。新的例子系统默认才用Mesh - 要想实现那种代理四面体(译注:你知道公告牌是什么效果就知道这个词什么意思了)的效果,只需要创建一个QuadMesh节点,并指定一个billboard 属性为true的材质即可。

由于可以通过GPU处理更多粒子,因此可以实现更精彩的效果如基于暴风算法的跟随(brute-forced trails):

并且最终能提供更强大的自发光体,如Box、Sphere及Mesh面或体。Mesh平面也可直接按法线发光:

我们也想让骨骼变换(skeletal transform)支持发光Mesh,不过虽然不是太复杂也得等到3.1啦 :(
Godot 3.0 alpha
截止本次报告为止,在3.0中计划的所有主要功能均已实现。我们很快会释出一个alpha构建版本,以便所有人开始体验及『捉虫』。敬请期待!
查看代码
如果你有兴趣看看代码里这几个特性是如何实现的,可以检出托管在GitHub上的 master 分支代码。
本文译自: https://godotengine.org/article/godot-30-progress-report-6
GODOT 3.0 开发进度汇报 #6的更多相关文章
- GODOT 3.0 开发进度汇报 #7
由于原文采取了记流水账的方式,觉得没有必要照直翻译了,就只选取了其中的主要信息. GDNative C++ 语言绑定 进行了重写以便Godot更好的生成和处理脚本. D 语言绑定 也正在积极开发中. ...
- GODOT 3.0 开发快照版本 ALPHA1 释出
经过将近一年的开发后,master 分支(即未来的Godot 3.0)所有功能特性接近完成,可以在Godot社区里进行更广泛的测试了.因此我们释出了第一个Alpha快照版本,供老用户体验.报告Bug. ...
- stm32上的Lava虚拟机开发进度汇报(3)
感觉遇到一个瓶颈了,这几天都没有什么进度. 前几天把函数和一些最基本的伪指令实现了一下,能跑一点仅使用了绘图函数的lav,但是函数调用的问题一直没解决. 后来发现是粗心漏写了个++,解决了函数调用的问 ...
- stm32上的Lava虚拟机开发进度汇报(1)
这几天我打算在stm32上做一个lava的虚拟机,只要160*80的黑白显示就行了,主要是想怀旧一下,嘿嘿. 目前的进度是图形显示和按键处理完成了,还有文本显示.文件处理.其他函数等. 当然,这都仅是 ...
- stm32上的Lava虚拟机开发进度汇报(4)
这段时间颓废了,基本上没在弄这个东西. 主要是因为前段时间把代码基本上写完之后,但是问题一大堆,除了自己写的几个简单测试程序,其他现成的东西没有一个是能正常运行的,很是郁闷,也不知道哪里有错误,所以放 ...
- stm32上的Lava虚拟机开发进度汇报(2)
现在已经基本完成了Lava主要函数的编写,但还是有几个问题没解决: 1.实心圆和实心椭圆 2.FillArea 3.GetWord 其中FillArea如果没有很好的解决方法就算了,GetWord用g ...
- [课程设计]Scrum 2.0 多鱼点餐系统开发进度(第二阶段项目构思与任务规划)
[课程设计]Scrum 2.0 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...
- JRainbow开发进度
最新版本下载 http://pan.baidu.com/s/1c0GcDMg&third=15 相关信息 JRainbow的简单介绍:http://blog.csdn.net/jrainbow ...
- ASP.NET Core 1.0 开发记录
官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...
随机推荐
- 关于ViewPager设置属性页setCurrentItem会阻塞主线程ANR总结
关于android开发设置View Pager的直接跳转页set CurrentItem会阻塞主线程ANR. 根据网上解决的说法,分析源码: if (mFirstLayout) { // We don ...
- 查看指定java进程的jvm参数配置命令之jinfo
一.查看所有的参数 jinfo -flags PS:3739为JAVA进程ID Attaching to process ID , please wait... Debugger attached s ...
- VS Code 中文注释显示乱码
将设置中的"files.autoGuessEncoding"项的值改为true即可. 1.文件 2.首选项 3.设置 4.搜索 "files.autoGuessEncod ...
- glide 镜像
运行glide install 失败 国内墙的原因, 某些网站上不去 [ERROR]Update failed for golang.org/x/crypto: Cannot detect VCS ...
- mybatis 框架动态传入参数${}和#{}之间的区别
动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理.下面让我们先来熟悉下myb ...
- php正则表达式入门-常用语法格式
php正则表达式入门-常用语法格式 原文地址:http://www.jbxue.com/article/24467.html 分享下php正则表达式中的一些常用语法格式,用于匹配字母.数字等,个人感觉 ...
- Atitit 函数调用的原理与本质attilax总结 stdcall cdecl区别
Atitit 函数调用的原理与本质attilax总结 stdcall cdecl区别 通常来说函数调用要用到的两条基本的指令:”CALL”指令和”RET”指令.”CALL”指令将当前的指令指针(这个指 ...
- xcode代码没颜色的解决方案
转自:http://blog.csdn.net/jiarusun000/article/details/7527631 今天代码使用了svn后发现项目中的所有原文件都没颜色了... 查找半天后发现是因 ...
- 深入理解Linux内核-进程
1.进程的静态特性 进程:程序执行时的一个实例 进程描述符(task_struct): 进程的基本信息(thread_info).指向内存区描述符的指针(mm_struct).进程相关的tty(tty ...
- tiny-cnn开源库的使用(MNIST)
tiny-cnn是一个基于CNN的开源库,它的License是BSD 3-Clause.作者也一直在维护更新,对进一步掌握CNN非常有帮助,因此以下介绍下tiny-cnn在windows7 64bit ...