Header media
Rendering related threads
A place to store rendering related threads I find (or create) on Twitter for posterity.
Photo via @h3r2tic

Rendering related threads

Someone at work asked me today where do I find all those presentations about graphics techniques and made me realise that it might not be so common knowledge to people just starting gfx programming. Thread of links.
9
921
Show this thread
This is a prime example of why one should do algorithmic improvements first instead of micro-optimisations: Shadow pass started at 16ms, using a custom buffer layout to reduce mem bandwidth took it to 13ms, using SAH to reduce traversal steps took it down to 3.6ms (GTX 970).
Quote Tweet
HRT Sponza shadows, naive BVH vs BVH with Surface Area Heuristic heatmap comparison: On the left image blue is lowest, red is > 500 steps through the BVH per pixel. On the right image, adding SAH speeds up traversal x3.7 on the HD4000 (Good SHA tutorial medium.com/@bromanz/how-t).
Image
Image
4
76
Programming with compute shaders (efficiently), balancing workloads with resources and thinking in parallel, gives many opportunities to learn how GPUs really work (well, pretty close at least). A few links to get you started. (1/N)
7
319
Show this thread
A common theme in the questions I received so far is that beginners feel intimidated by graphics programming and do not know how to start. They need not be though as graphics programming can be approached in different ways and at many levels of complexity (1/5).
3
48
Show this thread
alright, below I'm gonna list some professors/researchers in Computer Graphics whose research and papers I absolutely love. you folks are also very much welcome to post your own suggestions below!
8
188
Show this thread
Good example of float precision issues if world space is used in rendering. I personally prefer camera centered world space (camera is 0,0,0). This is often better than view space, because. A) faster & less lossy xform, B) normals stay in world space (easy to sample cubemaps).
Quote Tweet
Good article by @dougbinks on precision issues encountered when using screen space derivatives for normal generation in frag shader: enkisoftware.com/devlogpost-201
3
78
Show this thread
The most curious GPU bottleneck: ROP exports apparently retire in submission order. If your PS has early out fast path and very slow generic path, exports of fast pixels will stall (wait previous slow pixel). Moved shadow cone trace PS->CS = 50% perf gain (both Nvidia and AMD).
Image
11
207
Show this thread
Idea: sample-reusing reconstruction for area lighting (similar to reconstruction of reflections). Pick one light per pixel via single-slot weighted reservoir sampling, reuse spatially with approximate occlusion. 1spp, 1spp+16 tap filter:
Image
Image
5
59
Show this thread
The most elegant UE4 RHI hack... Apparently I need to ship this because Turing (RTX) drivers have the same UINT clear bug that Intel and AMD fixed 1+ year ago. Spec allows using UINT clear to clear unorm/float (bitwise fill), apparently nobody reads DX11 spec "Remarks" sections.
Image
1
18
Show this thread
Optimization for forward shading pixel shaders with light tile/froxel load: Instead of loading the same light with each pixel, load a different light with each pixel inside a 2x2 quad and use quad swizzle to broadcast light data in light loop. This reduces number of loads by 4x.
8
101
Show this thread
AMD and Nvidia fragment shader waves (Vulkan 1.1). Red channel = some lanes in wave are disabled (SIMD not fully utilized). Green channel = 16x16 tile quantization. 100% = all lanes are in same 16x16 tile. Each 25% darker green color = wave covers one more 16x16 tile.
Image
Image
4
64
Show this thread
On Nvidia GPUs (tile binning raster), you might actually be able to achieve perfect wave scalarization in full screen passes (one triangle) when reading screen aligned 2d/3d grids. Thus you could use all 32 lanes of a wave to load light/decal array -> swizzle -> loop per pixel.
Image
1
10
Show this thread
Every meeting with NVIDIA ever: DEV: "Give us hardware documentation!" NVIDIA: "Thank you for your feedback!" Also NVIDIA: "Can you please do X using technique Y instead of Z?" DEV: "Why?" NVIDIA: "No reason!"
5
107
This is your daily reminder that in finite discrete representations such as floating and fixed point, there are almost no sets of four representable points that are coplanar. So, the computed intersection of a ray and a triangle is almost never on the surface if you test it!
9
169
Show this thread
Color grading poll: 1) if you use a volume texture to do color grading, what resolution volume do you use? If not using a volume texture, what do you do? 2) if you could get the same quality result from a smaller texture but multiple texture reads, would that be interesting?
7
25
Now that people have already said highly controversial stuff like ”debugger is useless for C++ development”, I think I can share my own controversial thoughts about unit testing, DRY, copy-paste coding and function length, etc... with 20 years of C++ programming experience.
46
3,135
Show this thread
Hey Eric! I'm looking for good resources / ideas on how to batch! batch! batch! Do you have anything like that lying around? My goal here is to reduce drawcalls when I have lots of unique geometries with unique materials. Ex:
2
22
Holy poly ! :) Classic normal mapping (left) vs microfacet-based normal mapping. For metals especially it makes such a huge impact. Some artifacts on the right are my still wip impl, black fringes on the left instead come from backfacing normals and energy leaks #rombotools
Image
1
158
Most games that reviews criticize as having bad "graphics" have poor lighting and animation. You can push limited geometry and texture very far if you get the other two right. Even just three-point lighting and distance attenuation is good, and VR makes it cheap to perform mocap
10
79
For texture minification using mip-mapping, we usually let the hardware handle everything. But I was curious how the hardware actually implements it, so I tried to reimplement it myself in a shader. Video of my results below. My texture minification appears to work :D
3
136
Show this thread
Found some screenshots from a game I worked on, no longer in production. All snow is applied in a screen-space pass, after the g-prepass, modifying the albedo, normal, metalness and roughness in the g-buffer before the lighting pass.
Image
Image
Image
Image
5
59
Show this thread
So what people do these days to prevent light leaking through thin walls in irradiance volumes? Especially small walls inside open spaces (so can't simply define "rooms" with different volumes)
2
20
"premultiplied alpha" why? because interpolation! imagine side by side texels: 255,255,255,255 (opaque white) and 0,0,0,0 (invisible black) the halfway point is 127,127,127,127 as in, NASTY *GREY* FRINGE, when for sure you wanted 255,255,255,127 (seethru white) premult=👍
Image
3
33
With all the AMD GCN architecture and scalarization blog posts recently, here's my understanding of NVIDIA Volta & Turing architectures' Independent Thread Scheduling features, and whether they affect the performance of divergent code:
2
64
Show this thread
GPUs execute 2d compute dispatch groups in scanline linear order. Not good for L1$ if your shader processes 2d area local data (blur, SSAO, SSR). Nvidia GDC 2019 slides show up to 47% perf increase by tiling your group.xy with a few ALU instructions. Claybook does similar stuff.
Image
Image
11
290
You can wave hello to DX11 wave intrinsics now, ! Formally added with our latest driver release (build 6618). Checkout our release notes for link to Github with HLSL header file. Thanks again for the feedback! downloadcenter.intel.com/download/28646
Quote Tweet
Feature request to Intel: Please add DX11 extension for wave intrinsics. It’s the last remaining piece to allow widespread adoption of wave intrinsics on PC. NVAPI / AMD AGS already expose wave intrinsics on DX11. DX12 / Vulkan have built in support. All relevant HW has support.
Show this thread
3
105
To the lovely CG folk who follow me here: what are the great “must read” classic Computer Graphics papers from the pre-gpu era that still hold up today?
8
31
Looking for academic papers or technical documents discussing high-quality texture baking using ray tracer(without rasterizer). e.g. UV map generation, uniformly random sampling baking points over mesh faces, etc.
2
24

You’re up to date