• Stars
    star
    127
  • Rank 282,790 (Top 6 %)
  • Language
    C++
  • License
    The Unlicense
  • Created about 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

โœ–๐ŸŒฑ A DirectX 12 starter repo that you could use to get the ball rolling.

Cover Art

DirectX 12 Seed

cmake-img License

A DirectX 12 repo you can use to get started with your own renderer.

Setup

First install:

Then type the following in your terminal.

# ๐Ÿ‘ Clone the repo
git clone https://github.com/alaingalvan/directx12-seed --recurse-submodules

# ๐Ÿ’ฟ go inside the folder
cd directx12-seed

# ๐Ÿ‘ฏ If you forget to `recurse-submodules` you can always run:
git submodule update --init

# ๐Ÿ‘ท Make a build folder
mkdir build
cd build

# ๐Ÿ–ผ๏ธ To build your Visual Studio solution on Windows x64
cmake .. -A x64

# ๐Ÿ”จ Build project
cmake --build .

Refer to this blog post on designing C++ libraries and apps for more details on CMake, Git Submodules, etc.

Project Layout

As your project becomes more complex, you'll want to separate files and organize your application to something more akin to a game or renderer, check out this post on game engine architecture and this one on real time renderer architecture for more details.

โ”œโ”€ ๐Ÿ“‚ external/                    # ๐Ÿ‘ถ Dependencies
โ”‚  โ”œโ”€ ๐Ÿ“ crosswindow/                    # ๐Ÿ–ผ๏ธ OS Windows
โ”‚  โ”œโ”€ ๐Ÿ“ crosswindow-graphics/           # ๐ŸŽจ DirectX 12 Swapchain Creation
โ”‚  โ””โ”€ ๐Ÿ“ glm/                            # โž• Linear Algebra
โ”œโ”€ ๐Ÿ“‚ src/                         # ๐ŸŒŸ Source Files
โ”‚  โ”œโ”€ ๐Ÿ“„ Utils.h                         # โš™๏ธ Utilities (Load Files, Check Shaders, etc.)
โ”‚  โ”œโ”€ ๐Ÿ“„ Renderer.h                      # ๐Ÿ”บ Triangle Draw Code
โ”‚  โ”œโ”€ ๐Ÿ“„ Renderer.cpp                    # -
โ”‚  โ””โ”€ ๐Ÿ“„ Main.cpp                        # ๐Ÿ Application Main
โ”œโ”€ ๐Ÿ“„ .gitignore                   # ๐Ÿ‘๏ธ Ignore certain files in git repo
โ”œโ”€ ๐Ÿ“„ CMakeLists.txt               # ๐Ÿ”จ Build Script
โ”œโ”€ ๐Ÿ“„ license.md                   # โš–๏ธ Your License (Unlicense)
โ””โ”€ ๐Ÿ“ƒreadme.md                     # ๐Ÿ“– Read Me!

More Repositories

1

CrossWindow

๐Ÿ’ป๐Ÿ“ฑ A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
C++
620
star
2

webgpu-seed

๐Ÿ”บ๐ŸŒฑ An example on how to render a hello triangle with WebGPU.
TypeScript
296
star
3

CrossShader

โš”๏ธ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
C++
279
star
4

image-editor-effects

๐Ÿ’Ž A WebGL example of image adjustment / effects shaders found in Photoshop, other image editors and game engines.
TypeScript
96
star
5

a-trip-through-the-graphics-pipeline-book

๐Ÿ“• A clone of @rygorous series of posts on the graphics pipeline.
84
star
6

CrossWindow-Graphics

A header only library to simplify creating ๐ŸŒ‹ Vulkan / โšช OpenGL / ๐ŸŒ WebGL / โŽDirectX / ๐Ÿค– Metal data structures with CrossWindow.
C++
79
star
7

vulkan-seed

๐ŸŒ‹๐ŸŒฑ A Vulkan starter repo that you could use to get the ball rolling.
C++
75
star
8

CrossWindow-Demos

๐Ÿฅช Examples of how to use CrossWindow for things like rendering graphics, listening to events, etc.
C++
66
star
9

webgl-seed

๐ŸŒ๐ŸŒฑ A starter repo for building WebGL applications.
TypeScript
48
star
10

raw-vulkan

๐Ÿ”ฅ Experiments building Vulkan applications, libraries, and abstractions.
C++
45
star
11

GPU-Zen-2-Baker

๐Ÿฅง An OpenGL 4.x example of GPU Zen 2's ray casting techniques for baked texture generation chapter.
CMake
41
star
12

metal-seed

๐Ÿค–๐ŸŒฑ An Apple Metal starter repo that you could use to get the ball rolling.
Objective-C++
38
star
13

opengl-seed

โšช๐ŸŒฑA modern OpenGL starter repo that you could use to get the ball rolling.
C++
33
star
14

fig-standing-desk

๐Ÿ—œ๏ธ A custom standing desk that you can control from the command line.
Rust
16
star
15

strange-attractors

โคด๏ธ Algorithms to generate strange attractors such as Lorenz, Burgers, etc.
Python
15
star
16

foil

โœจ A portfolio CMS library designed for engineers, artists, technical artists, musicians, and bloggers looking to showcase a portfolio of front-end experiments, games, art, articles, and more.
Rust
11
star
17

PxWar

๐Ÿš€ A bullethell game built with TypeScript and Canvas.
TypeScript
6
star
18

opengl-seed-wasm

๐ŸŒโšช An example of of the opengl-seed example compiled to WebAssembly.
HTML
6
star
19

ora

๐Ÿ’ก A game where you're a blur of light trying to escape an encroaching darkness made for the 2012 GameMaker Steam Workshop.
Game Maker Language
4
star
20

alaingalvan

โ‰ About Alain Galvan, Graphics Software Engineer.
3
star
21

crosswindow-imgui

๐Ÿ–Œ๏ธ An optional library wrapping ImGui and providing bindings for CrossWindow events.
C++
3
star
22

alainxyz-comments

๐Ÿ”ฎ Utterances powered comments for the Alain.xyz blog.
2
star
23

conan-vulkan-sdk

Conan package for the Vulkan SDK.
Python
2
star
24

guardian

๐Ÿ‘ผ A real time monster based role playing game (RPG) I made for GameMaker's 2010 summer competition.
Game Maker Language
2
star
25

foil-starters

๐ŸŒ  A monorepo of all available starters for the foil CMS.
SCSS
1
star