• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

StarArawn/harmony: A modern 3D/2D game engine that uses wgpu.

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

StarArawn/harmony

开源软件地址:

https://github.com/StarArawn/harmony

开源编程语言:

Rust 82.2%

开源软件介绍:

Harmony

A modern 3D/2D game engine that uses wgpu and is designed to work out of the box with minimal effort. It uses legion for handling game/rendering data.

Note: Currently this library is very early in development. Things are very likely going to change.

Features

  • A custom async based asset manager that handles loading data for you.
  • Ability to load custom assets via the asset manager.
  • Loads GLTF meshes
  • (png, jpg, hdr) image support.
  • Per-material type forward rendering.
  • Unlit materials.
  • Scene's managed by specs world.
  • Entity Transforms
  • Perspective Camera
  • Frustum Culling
  • Render Graph
  • Skybox rendering from an .hdr texture.
  • Multi-threaded rendering
  • Custom render pipelines
  • Directional lighting
  • Clustered Shading (Point)
  • PBR shading model
  • Multi-point light shadow mapping.
  • IMGui integration
  • Multiple Enviroment probes(almost done).

Future Features (Prioritized)

  1. HDR/Tonemap rendering
  2. Temporal SMAA
  3. SSAO
  4. Directional Shadow Mapping
  5. Asset Bundling
  6. More useful scene features
  7. WASM Support

Long Term

  • Investigate using a hybrid rendering pipeline setup similar to halcyon, but without ray tracing(for now..).
  • Raytracing support?

Running

To run on metal with validation:

METAL_DEVICE_WRAPPER_TYPE=1 cargo run --example hello-cube

To run on vulkan:

cargo run --example hello-cube

Validation should be turned on already you only need to make sure to have the latest vulkan sdk installed. https://vulkan.lunarg.com/

Examples

  • hello-world a simple example showcasing the ability to draw text to the screen.
  • hello-cube a example of how to load gltf files and display them on the screen.
  • benchmark a benchmark that renders 2500 cubes to test performance.

shaderc-rs

We use shaderc-rs in harmony to compile GLSL into spir-v. This process works great once we have compiled shaderc-rs unfortunetly shaderc-rs uses shaderc which is written in C++. It tends to compile very slow and require certain things to compile successfully. We have an issue to eventually replace shaderc with something written in pure rust, but currently that crate does not exist. For now anyone attempting to use harmony who encounters issues compiling shaderc should take a look at the documentation found in the readme of shaderc-rs's github page which can be found here:

https://github.com/google/shaderc-rs

If more help is needed or you feel as though the issue you encountered is directly related to shaderc's usage in harmony feel free to open an issue.

Screenshots

Hello Cube PBR shadow

Known issues

  • No WASM support yet..

Acknowledgements:

Help?

You can find me on the rust game development discord server. I'm more than happy to help out if I am around!




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Sponsor @StarArawn on GitHub Sponsors · GitHub发布时间:2022-06-08
下一篇:
armory3d/armory: 3D Engine with Blender Integration发布时间:2022-06-08
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap