vulkan-tutorial-rust
所属分类:GPU/显卡
开发工具:Rust
文件大小:1261KB
下载次数:0
上传日期:2022-03-30 13:47:34
上 传 者:
sh-1993
说明: 遵循vulkan教程(<https:vulkan-tutorial.com>),使用Rust编程语言。
文件列表:
Cargo.toml (2619, 2022-03-30)
LICENSE (1067, 2022-03-30)
assets (0, 2022-03-30)
assets\android.png (8288, 2022-03-30)
assets\apple.png (16068, 2022-03-30)
assets\linux.png (11913, 2022-03-30)
assets\vulkan.png (19618, 2022-03-30)
assets\windows.png (5452, 2022-03-30)
azure-pipelines.yml (1969, 2022-03-30)
ci (0, 2022-03-30)
ci\azure-install-rust.yml (739, 2022-03-30)
ci\azure-steps.yml (961, 2022-03-30)
download_asset.py (1766, 2022-03-30)
shaders (0, 2022-03-30)
shaders\spv (0, 2022-03-30)
shaders\spv\09-shader-base.frag.spv (536, 2022-03-30)
shaders\spv\09-shader-base.vert.spv (1280, 2022-03-30)
shaders\spv\17-shader-vertexbuffer.frag.spv (536, 2022-03-30)
shaders\spv\17-shader-vertexbuffer.vert.spv (840, 2022-03-30)
shaders\spv\21-shader-ubo.frag.spv (536, 2022-03-30)
shaders\spv\21-shader-ubo.vert.spv (1436, 2022-03-30)
shaders\spv\25-shader-textures.frag.spv (692, 2022-03-30)
shaders\spv\25-shader-textures.vert.spv (1596, 2022-03-30)
shaders\spv\26-shader-depth.frag.spv (692, 2022-03-30)
shaders\spv\26-shader-depth.vert.spv (1600, 2022-03-30)
shaders\src (0, 2022-03-30)
shaders\src\09-shader-base.frag (205, 2022-03-30)
shaders\src\09-shader-base.vert (469, 2022-03-30)
shaders\src\17-shader-vertexbuffer.frag (204, 2022-03-30)
shaders\src\17-shader-vertexbuffer.vert (324, 2022-03-30)
shaders\src\21-shader-ubo.frag (203, 2022-03-30)
shaders\src\21-shader-ubo.vert (470, 2022-03-30)
shaders\src\25-shader-textures.frag (314, 2022-03-30)
shaders\src\25-shader-textures.vert (591, 2022-03-30)
shaders\src\26-shader-depth.frag (314, 2022-03-30)
shaders\src\26-shader-depth.vert (576, 2022-03-30)
... ...
# vulkan-tutorial-rust
[![Build Status](https://dev.azure.com/usami-ssc/usami-ssc/_apis/build/status/unknownue.vulkan-tutorial-rust?branchName=master)](https://dev.azure.com/usami-ssc/usami-ssc/_build/latest?definitionId=5&branchName=master) [![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
A Rust implementation of the [Vulkan Tutorial](https://vulkan-tutorial.com) based on [ash crate](https://crates.io/crates/ash).
## Status
The environment configuration is same as ash. See [here](https://github.com/MaikKlein/ash#example) for more detail.
Vulkan is quite hard. All examples on official website have been finished. :beers:
## Usage
Enter the project root directory, download the assets by the python3 script:
```shell
vulkan-tutorial-rust$ python download_asset.py
```
Run any example with the following command:
```shell
$ cargo run --bin example_number
```
Here replace `example_number` with option in the following table:
| example_number | Code | Reference | Note |
| -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 00 | [00_base_code.rs](./src/tutorials/00_base_code.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Base_code) | |
| 01 | [01_instance_creation.rs](./src/tutorials/01_instance_creation.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Instance) | |
| 02 | [02_validation_layers.rs](./src/tutorials/02_validation_layers.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Validation_layers) | |
| 03 | [03_physical_device_selection.rs](./src/tutorials/03_physical_device_selection.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Physical_devices_and_queue_families) | |
| 04 | [04_logical_device.rs](./src/tutorials/04_logical_device.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Logical_device_and_queues) | |
| 05 | [05_window_surface.rs](./src/tutorials/05_window_surface.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Window_surface) | |
| 06 | [06_swap_chain_creation.rs](./src/tutorials/06_swap_chain_creation.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Swap_chain) | |
| 07 | [07_image_view.rs](./src/tutorials/07_image_view.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Image_views) | |
| 08 | [08_graphics_pipeline.rs](./src/tutorials/08_graphics_pipeline.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics) | |
| 09 | [09_shader_modules.rs](./src/tutorials/09_shader_modules.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Shader_modules) | |
| 10 | [10_fixed_functions.rs](./src/tutorials/10_fixed_functions.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Fixed_functions) | |
| 11 | [11_render_passes.rs](./src/tutorials/11_render_passes.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Render_passes) | |
| 12 | [12_graphics_pipeline_complete.rs](./src/tutorials/12_graphics_pipeline_complete.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Conclusion) | |
| 13 | [13_framebuffers.rs](./src/tutorials/13_framebuffers.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Framebuffers) | |
| 14 | [14_command_buffers.rs](./src/tutorials/14_command_buffers.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Command_buffers) | |
| 15 | [15_hello_triangle.rs](./src/tutorials/15_hello_triangle.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation) | |
| 16 | [16_swap_chain_recreation.rs](./src/tutorials/16_swap_chain_recreation.rs) | [Link](https://vulkan-tutorial.com/Drawing_a_triangle/Swap_chain_recreation) | |
| 17 | [17_vertex_input.rs](./src/tutorials/17_vertex_input.rs) | [Link](https://vulkan-tutorial.com/Vertex_buffers/Vertex_input_description) | The Validation Layer will complain. This example may crash on Windows. |
| 18 | [18_vertex_buffer.rs](./src/tutorials/18_vertex_buffer.rs) | [Link](https://vulkan-tutorial.com/Vertex_buffers/Vertex_buffer_creation) | |
| 19 | [19_staging_buffer.rs](./src/tutorials/19_staging_buffer.rs) | [Link](https://vulkan-tutorial.com/Vertex_buffers/Staging_buffer) | |
| 20 | [20_index_buffer.rs](./src/tutorials/20_index_buffer.rs) | [Link](https://vulkan-tutorial.com/Vertex_buffers/Index_buffer) | |
| 21 | [21_descriptor_layout.rs](./src/tutorials/21_descriptor_layout.rs) | [Link](https://vulkan-tutorial.com/Uniform_buffers/Descriptor_layout_and_buffer) | The Validation Layer will complain. |
| 22 | [22_descriptor_sets.rs](./src/tutorials/22_descriptor_sets.rs) | [Link](https://vulkan-tutorial.com/Uniform_buffers/Descriptor_pool_and_sets) | |
| 23 | [23_texture_image.rs](./src/tutorials/23_texture_image.rs) | [Link](https://vulkan-tutorial.com/Texture_mapping/Images) | |
| 24 | [24_sampler.rs](./src/tutorials/24_sampler.rs) | [Link](https://vulkan-tutorial.com/Texture_mapping/Image_view_and_sampler) | |
| 25 | [25_texture_mapping.rs](./src/tutorials/25_texture_mapping.rs) | [Link](https://vulkan-tutorial.com/Texture_mapping/Combined_image_sampler) | |
| 26 | [26_depth_buffering.rs](./src/tutorials/26_depth_buffering.rs) | [Link](https://vulkan-tutorial.com/Depth_buffering) | |
| 27 | [27_model_loading.rs](./src/tutorials/27_model_loading.rs) | [Link](https://vulkan-tutorial.com/Loading_models) | Test this example in release mode. |
| 28 | [28_mipmapping.rs](./src/tutorials/28_mipmapping.rs) | [Link](https://vulkan-tutorial.com/Generating_Mipmaps) | Test this example in release mode. |
| 29 | [29_multisampling.rs](./src/tutorials/29_multisampling.rs) | [Link](https://vulkan-tutorial.com/Multisampling) | Test this example in release mode. |
### example usage
```
$ cargo run --bin 00
```
## Snapshot
![All snapshots](snapshot/snapshot_all.png)
## See also
[bwasty/vulkan-tutorial-rs](https://github.com/bwasty/vulkan-tutorial-rs) — another Rust implementation using [Vulkano](https://crates.io/crates/vulkano)
[adrien-ben/vulkan-tutorial-rs](https://github.com/adrien-ben/vulkan-tutorial-rs) — another Rust implementation with some more custom chapters.
[KhronosGroup/Vulkan-samples](https://github.com/khronosGroup/Vulkan-samples) — Offical examples from KhronosGroup
[SaschaWillems/Vulkan](https://github.com/SaschaWillems/Vulkan) — More examples in C++
近期下载者:
相关文件:
收藏者: