All Projects → ssloy → Tinykaboom

ssloy / Tinykaboom

A brief computer graphics / rendering course

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Tinykaboom

Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+91.19%)
Mutual labels:  fun, graphics, 3d, shaders, rendering, computer-graphics, 3d-graphics, raytracing, rendering-engine, tutorial, learning, raytracer, raytracing-engine
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+466.97%)
Mutual labels:  fun, graphics, 3d, shaders, rendering, computer-graphics, 3d-graphics, rendering-engine, tutorial, learning
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (-33.41%)
Mutual labels:  fun, graphics, 3d, rendering, computer-graphics, 3d-graphics, rendering-engine, tutorial, learning
Renderhelp
⚡️ 可编程渲染管线实现,帮助初学者学习渲染
Stars: ✭ 494 (-76.22%)
Mutual labels:  graphics, 3d, shaders, rendering, 3d-graphics, rendering-engine, tutorial, learning
Softwarerenderer
Software rendering engine with PBR. Built from scratch on C++.
Stars: ✭ 323 (-84.45%)
Mutual labels:  graphics, shaders, 3d-graphics, graphics-programming, rendering-engine, learning
Renderer
A shader-based software renderer written from scratch in C89
Stars: ✭ 1,366 (-34.23%)
Mutual labels:  graphics, 3d, shaders, rendering, 3d-graphics, graphics-programming
Hybridrenderingengine
Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
Stars: ✭ 563 (-72.89%)
Mutual labels:  graphics, shaders, 3d-graphics, graphics-programming, rendering-engine, learning
Photon-v2
A program that takes photographs of a virtual world.
Stars: ✭ 75 (-96.39%)
Mutual labels:  rendering, computer-graphics, raytracer, raytracing, rendering-engine
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (-96.24%)
Mutual labels:  graphics, rendering, 3d-graphics, raytracing, graphics-programming
C-Raytracer
A CPU raytracer from scratch in C
Stars: ✭ 49 (-97.64%)
Mutual labels:  rendering, computer-graphics, raytracer, raytracing, rendering-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 (+463.22%)
Mutual labels:  graphics, 3d, shaders, 3d-graphics, graphics-programming
Glsltuto
GLSL shaders tutorial
Stars: ✭ 168 (-91.91%)
Mutual labels:  shaders, rendering, tutorial, learning
Unity Dithered Transparency Shader
Unity material and shader for applying clipped, dithered transparency
Stars: ✭ 174 (-91.62%)
Mutual labels:  graphics, 3d, shaders, rendering
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (-91.29%)
Mutual labels:  graphics, 3d, rendering, graphics-programming
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-90.52%)
Mutual labels:  graphics, shaders, 3d-graphics, graphics-programming
Lume
Create CSS3D/WebGL applications declaratively with HTML. Give regular DOM elements shadow and lighting.
Stars: ✭ 445 (-78.57%)
Mutual labels:  graphics, 3d, 3d-graphics, graphics-programming
Yave
Yet Another Vulkan Engine
Stars: ✭ 211 (-89.84%)
Mutual labels:  3d, shaders, rendering, 3d-graphics
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-80.74%)
Mutual labels:  graphics, 3d, 3d-graphics, graphics-programming
Awesome Creative Coding
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
Stars: ✭ 8,696 (+318.68%)
Mutual labels:  shaders, computer-graphics, 3d-graphics, graphics-programming
Yocto Gl
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Stars: ✭ 1,391 (-33.03%)
Mutual labels:  graphics, rendering, computer-graphics, 3d-graphics

KABOOM! in 180 lines of bare C++

This repository is a teaching aid for my computer graphics lectures. It is not meant to produce the ultimate or even physically realistic renders. It is meant to be simple. This project is distributed under the DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE.

Check the article that accompanies the source code.

This project is closely related to my software raytracer. If you are looking for a software rasterizer, check the other part of the lectures.

In my lectures I tend to avoid third party libraries as long as it is reasonable, because it forces to understand what is happening under the hood. So, the raytracing in 180 lines of plain C++ produces this result:

compilation

git clone https://github.com/ssloy/tinykaboom.git
cd tinykaboom
mkdir build
cd build
cmake ..
make

You can open the project in Gitpod, a free online dev evironment for GitHub:

Open in Gitpod

On open, the editor will compile & run the program as well as open the resulting image in the editor's preview. Just change the code in the editor and rerun the script (use the terminal's history) to see updated images.

Homework

The possibilities are infinte. For example, you can add the environment map and some transparency:

Add other objects and illuminate them:

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].