重新设计的地理测量管道与大量的im­er plugins、新缺陷、可视化和处理工具、新示例包括内置流感模拟和射线传输着色器和一系列可以激发灵感的酷炫项目。

大型修复需要时间来转移属性,这就是为什么此次修复会更多在上一次事故发生六个月后,2019.10.我大胆地说,这是Mag­num迄今为止最繁忙的续租,而且工作跨度很大跨越项目的几个领域。下面是释放高光灯详细的变更日志大约是100倍大,请参阅机器人的链接.

新的地理测量管道

As­set im­port and geometry processing是Mag­num的重要组成部分之一。对于2020.06年6月,它从一个相当普通的dec­ade-old“toy en-gine”中被重写充满了需求的改进标准::矢量以提高效率和灵活的GPU友好设计,适合网格等新样式着色器。我不会再重复这一切声明,请参阅详细的深入教育艺术形式:

Magnum封面图像中的新几何管道
Mag­num的新几何管线 2020年5月27日
灵活高效的网眼布代表、定制、全新数据类型和大量新的处理、可视化和分析工具。符合21世纪要求的GPU友好型地理测量存储。

让我们进一步扩展C++

远离标准::vec­tor,尤其是在重新设计网格工具名称空间,意味着Mag­num必须提供位置。内容::Ar­ray有一段时间了,但某些进口商的采购Prim­it­ives公司那不容易知道最终的索引/ver-tex计数是预先确定的,必须通过快递来支持很少增长,比如标准::vec­tor有。

容器::阵列<颜色3> 调色板

阵列附加<MyFancy分配器>(调色板, {
    0xa5c9ea_rgbf,
    0x3bd267_rgbf,
    0xc7cf2f_rgbf
});

A类内容::Ar­ray事实与事实无关al-loc­at­或-,您还可以切换到不同的al-loc-at­,或在以后的任何时候。

为了避免众所周知的的缩写标准::vec­tor尤其是在客户方面al-loc­ators公司。2020.06年出现的改进仍有点少服务和定义,这就是为什么它还没有在更多细节中进行转换-一旦完成这项工作,预计将有一个标准的艺术作品和这是对常见问题的补充。直到那时,请参阅可生长射线用于培训。

STL的最后一个主要组成部分是阻止我们前进不是作为我希望它们能轻巧灵活标准::字符串s.之后我决定不再使用新的API,这意味着位置不有序。现有API将逐步完善很早就和以前一样离开了标准::vec­tor标准::unique_ptr在过去。当然,一如既往选择进入新API的兼容性具有标准::字符串/标准::字符串视图将提供-目标并不是为了让标准C++的用户受益,目标是实现灵活性和提供其他服务。

数学和算术好

成为新的贸易::Mesh­DataAPI在支持的ver-tex上扩展了很多格式,数学库接收的批处理数学::pack­In­to()/开箱()效率低下的功能浮点型和8/16位压缩或半浮点型之间的转换。当不需要转换时,实用程序::copy()从一个新的实用性/算法。小时header给你一个标准::mem­cpy()/标准::复制()尽管如此工作涉及多个定义和稀疏数据布局。

图像视图2D 型钢混凝土, 直流

公用事业::复制(型钢混凝土.像素().轻弹<1>(), 直流.像素());

镜像图像-在一条线上内容::StridedAr­rayView在下面。

这个网格工具除了为重新设计的工作流,现在包含网格工具::con­cat­en­ate()用于加入multiple网格,或例如网格工具::gen­er­ateIn­dices()对于将条带、环或风扇转换为平面索引网格。

plugins的新功能

越来越多的Mag­num用于导入越来越广泛的数据集不同的格式,更多未处理的角落案例被发现固定的。

  • 这个作为简单端口现在正确地导入多轮辋网格,为Y向上提供预处理的材质和计数/如果一个文件定义了Z向上方向覆盖。
  • 现在所有的导入程序都导入了基本颜色和纹理,而不是其中的任何一种或者其他。最重要的是,这是源于COL­LADA格式-早期贸易API和新功能Collada进口商plu­gin是在它之后被改造的,无论何时重新观看这一设计决定证明COL­LADA实际上是唯一的格式使用这种格式和其他格式(OBJ、glTF、OpenGEX…)支持两者的结合。
  • Tiny­Glt­fIm­er公司无法输入内叶网格。这是一条捷径,可以提前增强型模拟。令我惊讶的是glTF模型已被广泛应用于GPU,这解释了为什么自2018年的原始公共租赁。

Im­age import­ers也不会落后于支持它的格式,例如DDS或Basis Universal现在可以提高部分mip级别贸易::Ab­strac­tIm­port­er::im­age2D­Level­Count()和第二段贸易::Ab­strac­tIm­port­er::im­age2D(),随着这一切的临近场景导入器。与此相关,开发商StbIm­ageIm‐port­er公司现在可以导入帧改进了极原油的GIF视频播放.

主要适用于测试目的Prim­it­ives公司图书馆现在通过Prim­it­i­veIm­port­er(主视图)普鲁金。这可以用于举例说明内置的主要功能出口进口商-基于管道而不必添加新代码路径。

正如在Mag­num的新几何管线艺术界已经有了一些共同的广告和宣传使用新的贸易::Mesh­DataAPI:

最后,这里有一个新的场景转换界面网格运算器场景转换器斯坦福德场景康弗特成为第一有两个插件。除此之外,image import现在有一个简单的图标用于Win­dows*.ico公司文件,还有(也是非常琐碎的)Stl导入器用于二进制STL文件,通常用于3D打印。

所有im­er和convert­er plu­gins都收到了一个标记,表示可以输出动词,也被视为--冗长的中的操作磁感应转换器,磁场景转换器mag­num-player实用程序。plugins用它来证明您了解长期运行的操作或处理数据。这可能是最重要的在Assimp的情况下很有帮助,它喜欢在某些文件上崩溃或出错。

内置着色器改进、新的可视化工具

也许最重要的着色器广告是在着色器::Phong着色器::平面-当独自一人时支持GL公司自2014年发布以来,内置着色器没有直到现在,才开始使用此功能。对于展示柜灯泡物理学方框2D现在,我们正在对每个示例进行简化他们中的大多数人对整个场景只进行了一次平局。在线试用:

Box2D示例屏幕截图
Box2D示例 webgl1 物理学 标准化
用立方体构建一个日程表,并允许您在之后对其进行描述。
子弹物理示例截图
灯泡物理示例 webgl1 物理学 标准化
展示了一张旋转桌,桌上摆满了可以击落的立方体。

完成glTFKHR文本翻译出口支持,现在有着色器::Phong::set­Tex­tureMat­rix()能够进行稳定的温度偏移着色器::平面.

完成了切线和正常地图导入,着色器::Phong正常2019.10年发布的地图最终可以得到充分利用。这是非常接近的与…绑在一起着色器::MeshVisu­al­izer­3D现在不仅能够可视化线框,但也包括tan­gent、bit­an gent和normal dir­ection,非常适用于消除这些可怕的光照是一个问题。

着色器::Phong/着色器::平面现在还可以输出per-ver-tex对象ID at­trib­ute,这意味着着色器::MeshVisu­al­izer­3D可以可视化还有那一个,与ver-tex和prim­it­ID结合在一起用一个新的调试工具::ColorMap还包括非常逼真的Turbo彩色地图安托·米哈伊洛夫。

某些GL驱动程序可能会一团糟

即使这里显示的所有其他新功能都不是一个成功的理由如果你想升级,你肯定会想选择以下三种解决方法打赌驱动程序组件:

  • 难以复制同步In­tel上的错误Win­dows驱动程序使AR­B_­dir­ec­t_state_ac­cess公司膨胀基本上无法处理与buf­fers或VAO相关的任何事情。通常情况下在基于ImGui的应用程序中被称为flick­er­ing。此解决方案的一个子集2019.10已经完成,但由于其半自治性质,它没有完成涵盖所有情况。这项工作让所有希望和彻底破灭DSA查看这些驱动程序上受影响的代码路径。
  • In­tel Win­dows驱动程序并不真正尊重外部统一位置,但相反,它只是一个非常模糊的建议。这个bug是当然也永远存在,但只有在最新的文字转换之后才能看到,正常的贴图和内置着色器的标准化,这导致了位置是除连续不断的序列之外的任何事物。司机们没有一个合适的押韵或理由来表达他们的独特风格ID,解决方案是AR­B_­ex­pli­cit _ uni­form _ location公司In­tel Win­dows驱动程序也会出现。
  • 很难在驱动程序中找到上限很小的错误,但即使如此然而,自从苹果重新编写了他们的(预先准备好的)GL 4.1驱动程序位于Met­al之上,它被独立发现仅由两个不同的用户进行。何时德国劳埃德船级社:Buf­fer­Tex­ture它会导致所有缓冲修改因我的假设而崩溃内部驱动程序状态的校正。解决方案避免了在更新或映射时取消绑定数据GL::Buf­fer.

为了娱乐起见,所有当前OpenGL驱动程序解决方法的列表如下在文档中.

但也有一些非负面的GL新闻,甚至

最后50框架:
帧时间:16.65毫秒CPU持续时间:14.72毫秒GPU持续时间:10.89毫秒顶点提取比率:0.24
 剪裁的基本体:59.67%

例如,可以使用管道统计查询。输出自调试工具::FramePro?filer.

地理测量管线和大型数据集的工作要求我做各种各样的工作这些措施带来了新的GL::管道统计查询类。展示AR­B管道统计查询不适用于提供真正地很多,但至少是一些事情,可悲的是,这是唯一的非优先获得方式任何NVidia车手数据。一个新的调试工具::FramePro?filer类使用这些查询为您提供易于集成的每帧速率处理。

除此之外,还有各种各样的小碎片,比如夹持式平面支撑广告,主要是根据不同用户的需求而定制。查看更改日志底部的链接可查看完整列表。

一个很小但广受欢迎的变化正在发生网格.(着色器)着色器.(网格)。origin是API如何演变的结果多年来,这就是为什么我一直对它的真实性视而不见我终于明白了。如果你明白的话,这是一个很好的外卖Mag­num API中任何让人觉得奇怪或不太熟悉的东西,请很明显,无论你感觉如何“无用武之地”或是被排斥。反馈类似这很重要,如果我再也听不到,我可能再也无法解决这个问题。

Mesa’s Zink是最近取得巨大进步的一个最重要的项目OpenGL-over-Vulkan驱动程序。Stable Mesa 20.1没有默认启用现在,它只是GL 2.1,但最新的通信已经发布支持3.1.之后修复文本创建例程中的一些错误,以使GL 2.1文本再次工作,Mag­num现在也可以使用Zink。

应用程序改进

多亏了七方承包商的共同努力,平台::GlfwAp­plication平台::Sdl2平台现在支持诅咒或管理,也用于导入自由。两种应用程序现在都可以设置获胜图标,如果你在Win­dows,您可以使用它与新的图标导入器使用一个文件设置可执行图标和a此外,运营商还提供了一些服务,让操作系统可从中选择。

这个导入库被切换为使用内置着色器::Flat2D代替了cus tom着色器,后者移动了相当多代码使其在WebGL 1上也能工作。这是可能的,这要归功于内置2019.10年发布的着色器接收ver-tex颜色或支持。

通常用于数据处理或测试的无窗口应用程序用于支持文本共享。这个平台::无窗口电子应用通过支持EGL设备选择--磁装置操作开始时间2019.10,现在它也支持--磁铜器件仅用于过滤CUDA设备,如果您在装有NVidia GPU的机器上运行。

如果您不使用内置应用程序包装底座-gtkmm引导程序项目你为我们主演了GTKmm,加入了基本-XX宽发布在预租约中,并使用QtQuick引导程序下一个。

十亿吨酷炫的新样品

这个年度最佳业绩奖项授予Nghia Truong公司提交五个测试样本,每个样本都有不同的表现al-gorithm完全从头开始,并推出了许多好东西。他们所有人现在可以作为WebGL演示使用,请随时尝试:

2D流体模拟示例屏幕截图
2D流体模拟示例 webgl2 物理学 用户界面
2D流感模拟使用APIC方法。
3D流体模拟示例屏幕截图
3D流体模拟示例 webgl2 物理学 用户界面
SPH流感模拟与一个dy­namic绑定。
光线跟踪示例屏幕截图
光线传输 webgl1
简单实用的CPU射线传输。
八叉树示例屏幕截图
八叉树 webgl1 物理学 标准化
用于通信的松散八叉树
弧线球示例屏幕截图
Ar­cBall Cam­era示例 webgl2
的重要性Ken Shoe­make的篮球摄像机时代具有平滑的导航功能。
WebXR示例屏幕截图
WebXR示例 webgl1 网络xr
如何使用Em­scripten WebXR库使用Mag­num。

除此之外,WebXR还解决了最初的Web­VR API,如下所示我们的示例,上面有链接,目前您可以在Chrome中试用它也可以在An­droid浏览器中使用。

构建系统改进

Clang CL公司现在,它是一个经过特别支持和测试的组件,以防您想要构建对于Win­dows,但恨两者无论是MinGW还是MS­VC都不适合您的需求。有些MinGW Clang的支持工作已经完成,但严重的未解决问题仍然很重要,所以GCC仍然MinGW唯一支持的承包商。

因为依赖管理很难,除非你有一个系统范围的软件包管理员或Vcp­kg(千克)当然,为你做这项工作诸如Open­AL、Basis Universal、mesh­optimizer或ImGui等依赖项现在可以捆绑为CMake子项目。此外,在CMake中进行了各种修复查找在以下情况下常用的统计关联依赖模型解决项目问题。

为了更好地跟踪您的支出,所有Mag­num项目现在都包含版本。小时header­er包含构建该库所用的exact compmit。

内置CMake An­droid支持,随着NDK的引入而中断r19再次使用CMake 3.16+,仅使用最低限度的变通措施.构建文档和机器人故障排除指南更新以反映这一事实。

新的和改进的工具

使用新产品贸易:Ab­stractS­cene Con­verter­er面部表情丰富,有一个磁场景转换器实用性。目前唯一的支持输出是PLY(通过斯坦福德场景康弗特)虽然操作数量有限,但这一领域正在扩张时间,就像它对图像转换插件所做的那样。此外,该工具各种解释网格工具诸如重复删除或实时过滤。

磁记录转换现在可以了收集并生成特定格式的原始像素数据,当处理不受高层图像影响的低级管道包含更多格式。对于数据诊断和调试磁记录转换磁场景转换器学习了一个新的--信息以格式打印文件内容、像素/ver-tex格式和数据布局。

这个mag­num-player实用性被大量用于内部测试并吸收所有新的环境广告——它可以发挥作用正常的地图,显示了着色器::MeshVisu­al­izer­3D你可以跑调试工具::FramePro?filer使用P(P)键。只有native应用程序有新的广告现在,网络版本还没有更新。

Mag­num项目聚光灯

为了让您了解Mag­num的用途,这里有一个当前的选择基于Mag­num的活动或最近发布的项目,还有更多精彩内容准备好下一步。无参数或顺序显示:


Ternarii公司

敏锐的洞察力和趣味十足的Tet­ris-inspired益智游戏,运行于浏览器。我目前为止的最高得分是63k,击败我!


奥伯龙

一款以工作为导向的轻量级游戏引擎正在启动我们的能力和性能。


雕塑家

基于GPU的雕刻/增强应用。目前在al-pha。


[修订]

Vhite Rab­bit最近发布的以网络为中心的游戏引擎。


迷你

目前正在进行的N体重力模拟Mag­num.杂志。这张声明封面图片是其中一张模拟图片的静止帧。

三次曲线的二次逼近

一种用于转换分段计算的简单降噪技术分片四次样条中的样条,主要保持参数 抄送1 持续性。


序列性

亲爱的ImGui,一个用于C++17的单一文件、imme-di-mode服务器wid­get和EnTT。示例由Mag­num提供动力。


Stilleben公司

Gen­er­ates real­istic ar­iments of rigid body­ies,并提供各种输出,可用于训练深度学习模式。

mpFluid CAVE前端

在CAVE-like Environments中的实际Ex­pr­a­tion和Com­taal Steering,用于高性能流体模拟。类似CAVE的环境是在这里预先准备好的。

如果你有一个项目,你想让男人参与下一个项目聚光灯, 我们 知道! 对于Git­Hub上托管的项目for­get添加#杂志要制作的标签它们更容易被发现。

完整更改日志

有太多的事情发生了,这部艺术作品一如既往地只是一部残破的作品变更日志的版本-我相信我已经了解了一些隐藏宝石:

更新以前的版本

如果您使用自制软件,Arch?Linux平均零售价或构建你自己的*.deb(代布)包装,2020.06年的租赁协议已经在那里可用。Vcp­kg打包更新目前正在等待合并微软/vcp­kg#12211,MSYS包在msys2/MINGW包装#6641Arch­Linux社区包更新将很快就结束了。如果您使用Mag­num单打,那些已收到2020.06年的所有广告。

如果您已经有了新的代码贸易::Mesh­DataAPI、,恭喜你,你有95%的支持率。如果没有,新的租约应该主要地复合材料使用您的existing代码,只会发出大量警告,其中每个警告将告诉您要使用的API。

谢谢你

外部正在对Mag­num的工作进行详细说明但这并不是一个例外,谢谢大家(以及阿波罗向我所得到的人致敬):