An open API service indexing awesome lists of open source software.

https://github.com/name-hw/janrenderer

심심해서 만든 C++17과 Zig로 작성된 Vulkan 렌더링 엔진
https://github.com/name-hw/janrenderer

3d 3d-graphics cpp graphics graphics-engine graphics-programming render renderer renderering rendering-3d-graphics rendering-engine shader shaders vulkan vulkan-compute-shaders vulkan-engine vulkan-renderer zig zig-lib zig-library

Last synced: 4 months ago
JSON representation

심심해서 만든 C++17과 Zig로 작성된 Vulkan 렌더링 엔진

Awesome Lists containing this project

README

          

# **JanRenderer (WIP)**

[![.github/workflows/CI.yml](https://github.com/Name-hw/JanRenderer/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Name-hw/JanRenderer/actions/workflows/CI.yml)

Rendering engine built with Vulkan written in C++17 and Zig.

https://github.com/user-attachments/assets/17ed007a-4180-4430-8240-73fc46285b80

## **Features**

- Rendering engine built with Vulkan
- Written in C++17 and Zig
- Using Depth buffer
- Generate Mipmaps
- MSAA (MultiSampling Anti-Aliasing) support
- Compute Shader

## **Getting Started**

1. Link the JanRenderer, zglfw, zgui library (see [this](https://github.com/Name-hw/JanRenderer/blob/09737e3dbf671c098cf2e8e6a234f6afa62bbfa3/build.zig#L268)).
2. Import JanRenderer.zig. (see [this](https://github.com/Name-hw/JanRenderer/blob/main/src/TestApp/main.zig)).

## **Build**

1. First, install [vcpkg](https://vcpkg.io/) and run 'vcpkg install'.
2. Build using zig's build system in Visual Studio Code (Check detailed build steps with `zig build -h`).
3. Executable program and Library files are created.

### Shortcuts (for Vscode users)

- build: Ctrl+Shift+B
- debug: F5
- run: Ctrl+F5

### Vscode extensions

1.
2.
3.

### Libraries

Install the library via vcpkg or zig's build system (see build.zig, build.zig.zon).

### Namings

1. Variables: camelCase
2. Functions: camelCase
3. Types (including objects, structs, enums, typedefs, etc): PascalCase
4. Enums: PascalCase
5. Views (texts displayed in GUI): Title Case
6. ViewModels: PascalCase
7. Initials: UPPERCASE

## **Dependencies**

### Vcpkg

- [volk](https://github.com/zeux/volk)
- [cglm](https://github.com/recp/cglm)
- [stb](https://github.com/nothings/stb)
- [tinyobjloader](https://github.com/tinyobjloader/tinyobjloader)
- [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)

### Zig build system

- [zmath](https://github.com/zig-gamedev/zmath)
- [zglfw](https://github.com/zig-gamedev/zglfw)
- [zgui](https://github.com/zig-gamedev/zgui)