- 2011 - A trip through the Graphics Pipeline 2011
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
- 2020 - GPU ARCHITECTURE RESOURCES
#include "../platform/platform.h" | |
#include <cstdlib> | |
#include <cstring> | |
#include <bgfx/bgfx.h> | |
#include <bgfx/embedded_shader.h> | |
#include <bx/allocator.h> | |
#include <bx/math.h> | |
#define NK_IMPLEMENTATION |
// Copyright 2019 Google LLC. | |
// SPDX-License-Identifier: Apache-2.0 | |
// Polynomial approximation in GLSL for the Turbo colormap | |
// Original LUT: https://gist.github.com/mikhailov-work/ee72ba4191942acecc03fe6da94fc73f | |
// Authors: | |
// Colormap Design: Anton Mikhailov ([email protected]) | |
// GLSL Approximation: Ruofei Du ([email protected]) |
-
A. Schneider, "Real-Time Volumetric Cloudscapes," in GPU Pro 7: Advanced Rendering Techniques, 2016, pp. 97-127. (Follow up presentations here, and here.)
-
S. Hillaire, "Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite" in Physically Based Shading in Theory and Practice course, SIGGRAPH 2016. [video] [course notes] [scatter integral shadertoy]
-
[R. Högfeldt, "Convincing Cloud Rendering – An Implementation of Real-Time Dynamic Volumetric Clouds in Frostbite"](https://odr.chalmers.se/hand
A couple of weeks ago I played (and finished) A Plague Tale, a game by Asobo Studio. I was really captivated by the game, not only by the beautiful graphics but also by the story and the locations in the game. I decided to investigate a bit about the game tech and I was surprised to see it was developed with a custom engine by a relatively small studio. I know there are some companies using custom engines but it's very difficult to find a detailed market study with that kind of information curated and updated. So this article.
Nowadays lots of companies choose engines like Unreal or Unity for their games (or that's what lot of people think) because d
#include <cstdio> | |
#include <cmath> | |
struct float2 | |
{ | |
float x = 0.0f; | |
float y = 0.0f; | |
float2() {} | |
float2( float _x, float _y ) { x = _x; y = _y; } | |
}; |
uint16_t encode16_morton2(uint8_t x_, uint8_t y_) | |
{ | |
uint32_t res=x_|(uint32_t(y_)<<16); | |
res=(res|(res<<4))&0x0f0f0f0f; | |
res=(res|(res<<2))&0x33333333; | |
res=(res|(res<<1))&0x55555555; | |
return uint16_t(res|(res>>15)); | |
} | |
//---- |
A quick breakdown of lighting in the restir-meets-surfel
branch of my renderer, where I revive some olde surfel experiments, and generously sprinkle ReSTIR on top.
Please note that this is all based on work-in-progress experimental software, and represents a single snapshot in development history. Things will certainly change 😛
Due to how I'm capturing this, there's frame-to-frame variability, e.g. different rays being shot, TAA shimmering slightly. Some of the images come from a dedicated visualization pass, and are anti-aliased, and some show internal buffers which are not anti-aliased.