经过了又一个月的开发工作,在此作进度报告。本月的工作可以划分为:完成Web导出工具开发、GDNative、以及新的粒子系统。

Web Export

Godot 现在有了一款实验性的导出工具,导出目标为WebAssembly 与 WebGL2。这要感谢eska的工作成果。这项功能需要在最新的Chrome或Firefox浏览器中进行测试,不过运行效果是真的好。它甚至可以让游戏在移动Web环境完美运行!

这里有一个小型的 platformer demo 供大家体验(记住只能在最新版本的Chrome或Firefox下运行!)。

GDNative

我们最近写了一篇关于 GDNative的文章。现在,让我来告诉你由Thomas Herzog (karroffel) 与Bojidar Marinov (bojidar-bg)开发的这项令人惊艳的新特性。它能产生许多好玩的事情:

  1. 添加用C++编写的Godot对象,而无需重新编译godot或编辑器。原理是在此之前要先创建一个模块,用于进行隐式重新编译一切。
  2. 可以优化游戏的任意部分,即用C++进行重写,也可用任何能编译成目标平台原生代码的语言进行编写,而且无需重新编译引擎或模板。
  3. 不用任何的重新编译即可绑定任意外部库(如SQLite、Steam等)。甚至可能从我们的Asset共享仓库下载这些绑定库。
  4. 使用官方库可以添加更多的Godot之外的导入导出格式。比如你可以从Asset Sharing平台下载一个FBX导入模块。就像直接支持各种素材一样,如Spine(译注:2D动画制作软件)使用自己的库。
  5. 添加外部脚本语言,如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的更多相关文章

  1. GODOT 3.0 开发进度汇报 #7

    由于原文采取了记流水账的方式,觉得没有必要照直翻译了,就只选取了其中的主要信息. GDNative C++ 语言绑定 进行了重写以便Godot更好的生成和处理脚本. D 语言绑定 也正在积极开发中. ...

  2. GODOT 3.0 开发快照版本 ALPHA1 释出

    经过将近一年的开发后,master 分支(即未来的Godot 3.0)所有功能特性接近完成,可以在Godot社区里进行更广泛的测试了.因此我们释出了第一个Alpha快照版本,供老用户体验.报告Bug. ...

  3. stm32上的Lava虚拟机开发进度汇报(3)

    感觉遇到一个瓶颈了,这几天都没有什么进度. 前几天把函数和一些最基本的伪指令实现了一下,能跑一点仅使用了绘图函数的lav,但是函数调用的问题一直没解决. 后来发现是粗心漏写了个++,解决了函数调用的问 ...

  4. stm32上的Lava虚拟机开发进度汇报(1)

    这几天我打算在stm32上做一个lava的虚拟机,只要160*80的黑白显示就行了,主要是想怀旧一下,嘿嘿. 目前的进度是图形显示和按键处理完成了,还有文本显示.文件处理.其他函数等. 当然,这都仅是 ...

  5. stm32上的Lava虚拟机开发进度汇报(4)

    这段时间颓废了,基本上没在弄这个东西. 主要是因为前段时间把代码基本上写完之后,但是问题一大堆,除了自己写的几个简单测试程序,其他现成的东西没有一个是能正常运行的,很是郁闷,也不知道哪里有错误,所以放 ...

  6. stm32上的Lava虚拟机开发进度汇报(2)

    现在已经基本完成了Lava主要函数的编写,但还是有几个问题没解决: 1.实心圆和实心椭圆 2.FillArea 3.GetWord 其中FillArea如果没有很好的解决方法就算了,GetWord用g ...

  7. [课程设计]Scrum 2.0 多鱼点餐系统开发进度(第二阶段项目构思与任务规划)

    [课程设计]Scrum 2.0 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...

  8. JRainbow开发进度

    最新版本下载 http://pan.baidu.com/s/1c0GcDMg&third=15 相关信息 JRainbow的简单介绍:http://blog.csdn.net/jrainbow ...

  9. ASP.NET Core 1.0 开发记录

    官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...

随机推荐

  1. Android中ViewPager实现滑动条及与Fragment结合的实例教程

    ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...

  2. javascript刷新页面代码

    原文链接:http://caibaojian.com/javascript-refresh-page.html reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload ...

  3. HTML5无刷新修改URL

    HTML5新添加了两个api分别是pushState和replaceState,DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,可以在用户的访问记录中前进和 ...

  4. Android之旅-Intent与Intent Filter[上]

    Intent代表了Android应用的启动“意图”,Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,取决于Intent的各个属性. 一.显式的Intent 明确指定了要启动 ...

  5. Python 爬虫 大量数据清洗 ---- sql语句优化

    . 问题描述 在做爬虫的时候,数据量很大,大约有五百百万条数据,假设有个字段是conmany_name(拍卖公司名称),我们现在需要从五百万条数据里面查找出来五十家拍卖公司, 并且要求字段 time( ...

  6. [转]如何禁止 IIS 在 C:\Windows\System32\LogFiles\HTTPERR 中生成日志文件

    1. 在注册表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters 中新建 dword 值:EnableError ...

  7. [LeetCode] Shortest Word Distance I & II & III

    Shortest Word Distance Given a list of words and two words word1 and word2, return the shortest dist ...

  8. tomcat 8080 冲突 急速解决方法 -------屡试不爽

    cmd    输入: netstat -ano|findstr 8080 记住 最后的端口号**** 再输入: taskkill  /pid  ****  /f

  9. Push UIViewController with different orientation to previous

    转自:http://stackoverflow.com/questions/6695837/push-uiviewcontroller-with-different-orientation-to-pr ...

  10. android 去掉标题栏、状态栏、横屏

    // 去掉标题栏 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); // 全屏.隐藏状态栏 getWindow().setFlags(Wind ...