All Projects → K0bin → SourceRenderer

K0bin / SourceRenderer

Licence: MIT license
A tiny 3D engine that loads and renders Source engine maps - Also known as dreieck.exe

Programming Languages

rust
11053 projects
c
50402 projects - #5 most used programming language
GLSL
2045 projects
kotlin
9241 projects
CMake
9771 projects
typescript
32286 projects

Projects that are alternatives of or similar to SourceRenderer

panic-panda
A 3D rendering demo powered by Python and Vulkan
Stars: ✭ 67 (+109.38%)
Mutual labels:  vulkan, 3d-graphics
Vktk
Vulkan Toolkit
Stars: ✭ 32 (+0%)
Mutual labels:  vulkan, 3d-graphics
Vkquake2
id Software's Quake 2 v3.21 with mission packs and Vulkan support (Windows, Linux, MacOS, FreeBSD, Raspberry Pi 4)
Stars: ✭ 543 (+1596.88%)
Mutual labels:  vulkan, 3d-graphics
pygfx
Like ThreeJS but for Python and based on wgpu
Stars: ✭ 72 (+125%)
Mutual labels:  vulkan, 3d-graphics
Yave
Yet Another Vulkan Engine
Stars: ✭ 211 (+559.38%)
Mutual labels:  vulkan, 3d-graphics
osre
An open source render engine
Stars: ✭ 95 (+196.88%)
Mutual labels:  vulkan, 3d-graphics
Vkquake
Vulkan Quake port based on QuakeSpasm
Stars: ✭ 955 (+2884.38%)
Mutual labels:  vulkan, 3d-graphics
Osiris
Free open-source game cheat for Counter-Strike: Global Offensive, written in modern C++. GUI powered by Dear ImGui.
Stars: ✭ 1,851 (+5684.38%)
Mutual labels:  csgo, source-engine
Filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Stars: ✭ 13,215 (+41196.88%)
Mutual labels:  vulkan, 3d-graphics
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (+143.75%)
Mutual labels:  vulkan, 3d-graphics
rend3
Easy to use, customizable, efficient 3D renderer library built on wgpu.
Stars: ✭ 546 (+1606.25%)
Mutual labels:  vulkan, 3d-graphics
PhasmaEngine
3D Graphics Engine
Stars: ✭ 39 (+21.88%)
Mutual labels:  vulkan, 3d-graphics
nautilus
another graphics engine
Stars: ✭ 16 (-50%)
Mutual labels:  vulkan, 3d-graphics
MoravaEngine
2D/3D graphics engine written in C++ language. It currently supports the following graphics APIs: OpenGL 3.3+, Vulkan 1.2, DirectX 11. Its current purpose is to experiment with various CG concepts and techniques.
Stars: ✭ 129 (+303.13%)
Mutual labels:  vulkan, 3d-graphics
Advancedfx
Half-Life Advanced Effects (HLAE) is a tool to enrich Source (mainly CS:GO) engine based movie making.
Stars: ✭ 231 (+621.88%)
Mutual labels:  csgo, source-engine
Vkdoom3
Vulkan DOOM 3 port based on DOOM 3 BFG Edition
Stars: ✭ 566 (+1668.75%)
Mutual labels:  vulkan, 3d-graphics
Pyvmf
A python VMF parser
Stars: ✭ 18 (-43.75%)
Mutual labels:  csgo, source-engine
Gonav
A Source Engine navigation mesh file parser written in Go.
Stars: ✭ 37 (+15.63%)
Mutual labels:  csgo, source-engine
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+36456.25%)
Mutual labels:  vulkan, 3d-graphics
Berserk
[WIP] High performance 3D graphics game engine
Stars: ✭ 31 (-3.12%)
Mutual labels:  vulkan, 3d-graphics

SourceRenderer

Source Engine map renderer written in Rust

It's a Rust port of https://github.com/K0bin/sourceloader and I plan to add a Vulkan renderer. The main goal of this project is to learn Rust and Vulkan.

Features:

  • rather basic Vulkan forward renderer
    • temporal anti aliasing
    • SSAO
    • clustered forward shading (currently only supports point lights)
    • incomplete PBR lighting
    • Two render paths:
      • Conservative:
        • Frustum culling & occlusion culling (based on GPU queries)
      • GPU driven:
        • frustum culling in compute
        • occlusion culling in compute using a hierarchical z-buffer
        • bindless textures
    • Vulkan ray tracing
      • Soft shadows (denoising is still TODO)
    • Late latching just before submission to minimize latency
    • Texture streaming using a transfer queue
  • Pipelined rendering
  • loading Source engine maps:
    • loading BSP levels
      • basic brush geometry
      • displacements (at least to some degree)
      • light maps
      • static models
    • loading 2D VTF textures
    • loading the most basic VMT materials
  • loading GLTF levels (currently without textures and needs to be rewritten to use less memory)

Platforms:

  • Desktop
    • using SDL2
    • tested on Linux & Windows
    • shouldn't take too much work to make it work on Mac OS
  • Web version
    • using web workers & SharedArrayBuffers for threading
    • extremely limited WebGL2 renderer
  • Android version
    • used the Vulkan renderer
    • using Khronos Vulkan extension layers to support timeline semaphores and synchronization2 on older drivers
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].