Hacker News new | past | comments | ask | show | jobs | submit login
GPU Performance for Game Artists (fragmentbuffer.com)
107 points by mnem on July 8, 2017 | hide | past | web | favorite | 9 comments

This is a great article for programmers too - maybe too much for non technical artists.

The article doesn't really go into how to make more performant art, and thats probably for the best - a lot of that will be game and engine dependent. It's really easy to 'optimize' in a way that hurts the engine (or for programmers to build/configure the engine and shaders in a way that is counter to the artists workflow or visual targets).

"Some engines (most notably the latest version used by Assassin’s Creed) have even gone in a radically different direction, using the capabilities of the latest GPUs to drive rendering and effectively doing away with draw calls altogether."

I'm curious about this. Is it procedural generation? How does it work? The only thing I could find with a while of searching is:

"AnvilNext [...] is capable of generating structures in a flexible and automatic manner while following specific design rules and templates, which reduces the amount of time and manual effort required for artists and designers to create an intricate urban environment. Specific landmarks, such as the Notre Dame de Paris, are still designed by hand [...]."

-- https://en.wikipedia.org/wiki/Anvil_(game_engine)

He refers to a talk from the Assassin's Creed team in comments, and I discovered the person who gave the talk wrote a fairly extensive set of forum posts on it (including links to the original slides) here: https://forum.beyond3d.com/threads/gpu-driven-rendering-sigg...

Frostbite does GPU culling. This presentation is a really good explaination of their approach. It relies heavily on the ballot instruction to do parallel prefix sum in a compute shader and multidraw indirect to procedurally issue draw calls based on compute shader results.


If you're interested in actual procedural generation and placement on the GPU Guerilla Games gave a great talk about doing this in Horizon Zero Dawn. https://www.guerrilla-games.com/read/gpu-based-procedural-pl....

GameDev.net has a copy of the article that includes the images:


Unfortunately without images :(

This is a great, concise explanation of the openGL pipeline.

It would be great to have a similar explanation for Vulkan.

The Vulkan graphics pipeline isn't any different than the OpenGL graphics pipeline (or DX11/12, gnm or Metal) although the details of how commands and data are sent to the GPU change. This article is pretty high level, so it applies equally to both APIs...

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact