#winit #wgpu #graphics #3d-rendering #abstraction-layer

taika

在wgpu和winit之上的轻量级抽象

1个不稳定版本

0.4.0 2024年8月3日

#295图形API

Download history 122/week @ 2024-07-29 17/week @ 2024-08-05

每月139次下载

MIT许可协议

38KB
870 代码行

Taika Logo

在wgpu和winit之上提供了一个低成本抽象层,以使它们的API更加易用。

这是一个正在进行中的项目。最初这个项目是打算替换loitsu中的渲染器LoiRen,但是项目被拆分了。也许有一天还会实现这个目标。目前大部分设置都是硬编码的,这将会改变。

状态

Taika处于早期开发阶段,这意味着API将会有大的变化。然而,它目前被用于一个生产就绪的游戏,这为库提供了一个很好的测试平台。

目标

  1. 简化窗口创建
  2. 引入"RenderPasses"和"RenderPipelines",这是游戏引擎中常见的模式。
  3. 通过提供半稳定的API,使WGPU和Winit的API变更不那么令人沮丧。尽管如此,API变更仍然会发生。
  4. 提供完整的WGPU访问权限

除了这些目标,Taika还包括一些针对游戏开发的通用工具,以及一些非常基本的资产管理形式。Taika旨在被构建,而不是作为一个完整的资产管理系统。

Taika不做什么

  • 输入处理,您可以通过监听传递给事件处理器的winit事件来自行处理
  • 音频,使用其他库
  • 使渲染变得简单。您仍然需要编写着色器,并实现可绘制的特性,才能实际向GPU发出绘制调用。Taika不会自行发出绘制调用

注意事项

  • 当为Windows构建时,后端选择被重写为DX12,因为vulkan有一些输入性能问题。(截至wgpu 22.0)
  • rendering::RenderPassrendering::RenderPipeline的命名有点令人困惑,因为它们也在wgpu中使用。
  • 目前没有示例!

平台

在Windows、Linux(wayland和x11)和macOS上积极测试。

将来可能会支持Web

依赖关系

~8–43MB
~694K SLoC