Forward and Deferred Rendering - Cambridge Computer Science Talks

  Рет қаралды 19,736

Ben Andrew

Ben Andrew

Күн бұрын

A talk given to my fellow Cambridge computer science students on the 27th January 2021.
Abstract:
The visuals of video games and films have deep influences on our culture, from Shrek to Garfield Racing. The modern history of real-time rendering is deeply tied to the architecture of GPUs and what they allow us to do. How have our approaches to rendering changed over time, and what may the future hold?
In this talk, I will compare the Forward and Deferred rendering pipelines, from both a technical standpoint as well as explaining the history behind them. I will also briefly explore what future developments may look like in the industry.
Website:
www.benmandrew.com/
LinkedIn:
/ benmandrew
GitHub:
github.com/benmandrew
Thumbnail image by Paul Siedler.
www.artstation.com/artwork/BR3rl

Пікірлер: 44
@Lavimoe
@Lavimoe Жыл бұрын
"If you cannot explain something in simple terms, you don't understand it." This video really shows how deep an understanding you have on the shader topic. Thanks so much!
@rtyzxc
@rtyzxc 2 ай бұрын
Can't wait for the return of MSAA and sharp graphics again!
@TechDiveAVCLUB
@TechDiveAVCLUB 10 ай бұрын
Can't believe such a perfect digestion of high level information into actionable mental models exist. Thank you!
@gideonunger7284
@gideonunger7284 Жыл бұрын
why is forward always portrayed as lights x meshes. i have never written a forward renderer like that. just put the lights in a buffer and then send the lights affecting a mesh as indices. gives you 1 uniform branch for the loop but that should be fine and way faster than multiple draw calls lol
@donovan6320
@donovan6320 2 жыл бұрын
Should also mention all lighting in doom eternal is dynamic. The "pre-processing" that is being done is called clustered forward rendering, in which a culling stage reduces the lights sampled in a specific part of the scene.
@benmandrew
@benmandrew 2 жыл бұрын
Yep, unfortunately had to cut out clustered rendering to keep the talk focused and under half an hour. It's a very cool technique explained in the Doom Eternal graphics study by Adrian Courrèges (one of my sources at the end).
@donovan6320
@donovan6320 2 жыл бұрын
@@benmandrew I figured, thought I should clarify for those that are curious about the technique and "prepossessing" (technically correct but I would have just called it a culling pass, preprocessing implies a static, pre-runtime/serialised nature to which the light culling pass is not), definitely beyond my paygrade, but is really cool.
@cafe_underground
@cafe_underground 4 ай бұрын
Amazing explanation, I could finally grasp the pros and cons of each technique
@jgriep
@jgriep 2 жыл бұрын
Hands down the best, most straightforward explanation of forward vs. reverse rendering I have seen!
@penneywang6552
@penneywang6552 Жыл бұрын
best video to explain them, from the history , hardware to gpu pipeline work , thank you. looking forward more tutorial with this way .
@StealthMacaque
@StealthMacaque 6 ай бұрын
Unbelievably good explanation. I cannot thank you enough!
@haos4574
@haos4574 Жыл бұрын
This is gold content, watched several videos on the topic, this is the one that actually makes me understand.
@rubenhovhannisyan317
@rubenhovhannisyan317 10 ай бұрын
Thanks a lot. Saved a lot of time and effort.
@egoinstart8756
@egoinstart8756 Жыл бұрын
Excellent. Best video about this topic I've found. Thank you.
@slothsarecool
@slothsarecool 5 ай бұрын
Shrek?? no way 😅 that’s great. Awesome talk, thanks
@schmildo
@schmildo 6 ай бұрын
Thanks mate
@leeoiou7295
@leeoiou7295 Жыл бұрын
Excellent talk. I did a little research and found out that you are just a young lad. Wish you all the best and thanks for such a great talk.
@glass1098
@glass1098 Жыл бұрын
Thanks for the video, i had a lot of questions on the topic and this was an absolute clear explanation of the differences
@Kalandrill
@Kalandrill Жыл бұрын
Thanks a lot for sharing, didn't expect a dive into the current state of things in games. It was a very pleasant surprise :)
@thhm
@thhm 3 ай бұрын
Definitely still a heady topic for me, but thank you for explaining it. Specially for the emerging trends and outlook in the end, definitely interesting.
@santitabnavascues8673
@santitabnavascues8673 10 ай бұрын
Is curious how everybody who illustrates a depth buffer always use the reverse depth approach, where white is closer and black is farther, more curious is that the reverse depth buffer distributes the depth precision much better than the original, 'forward' depth buffer, where closer objects have a depth close to 0 and far objects have a depth closer to 1 😊
@benmandrew
@benmandrew 10 ай бұрын
Correct, for those interested this is due to the non-linear perspective transformation (1/z) either combining with or cancelling out the somewhat-logarithmic distribution of points in IEEE floating point numbers. A really good explanation is on the Nvidia developer website -- developer.nvidia.com/content/depth-precision-visualized.
@pwhv
@pwhv Жыл бұрын
very well explained, loved it
@lovve996
@lovve996 2 жыл бұрын
very useful ! thanks a lot
@gordazo0
@gordazo0 4 ай бұрын
excellent
@jiayuezhu5848
@jiayuezhu5848 2 жыл бұрын
This is such a helpful video!
@stephenkamenar
@stephenkamenar 2 жыл бұрын
thank you shrek
@onevoltten7352
@onevoltten7352 2 жыл бұрын
Thank you! Been going back and forth between defferred and forward as it's a lot more effort using forward shading - requiring much more planning and optimising. I plan to force myself to use Forward rendering during development and commit to a much more optimised game rather than go for dynamic lighting.
@donovan6320
@donovan6320 2 жыл бұрын
I mean you can use forward and have a lot of dynamic lighting... Doom Eternal uses all dynamic forward lighting.
@vitordelima
@vitordelima 7 ай бұрын
@@donovan6320A shader can loop over many light sources during the same rendering step, but many screen space effects are compromised if you don't use deferred.
@donovan6320
@donovan6320 7 ай бұрын
@@vitordelima You arent wrong?
@vitordelima
@vitordelima 7 ай бұрын
@@donovan6320Deferred is only important if you need some extra data from each separate rendering step that isn't easily generated by forward only, but lighting can be calculated in a single step for forward nowadays.
@vitordelima
@vitordelima 7 ай бұрын
@@donovan6320I found out more about it, modern hardware still supports a lot of light sources in forward mode simply by iterating over them but there are methods to improve this via something similar to culling. If you use a method for global illumination that is good enough, deferred or forward don't matter that much because the lighting is calculated in another rendering step.
@carlosd562
@carlosd562 Жыл бұрын
Very good video!
@SergioWolf843
@SergioWolf843 7 ай бұрын
Deferred rendering has the advantage of calculating lights per block and not per pixel, decreasing the GPU overload, so it doesn’t matter how many lights cross your blocks because it won’t affect performance. If I’m not mistaken, Apple has TBDR Patents and has been using it on the iPhone since 2017.
@charactername263
@charactername263 27 күн бұрын
But surely you just put your lights into a GPU buffer and then you can sample the buffer whilst drawing meshes. That makes it just M draw calls for M meshes, with sampling into the buffer for N lights which is really not any different from deferred, other than that deferred avoids redrawing fragments - but even a depth prepass on forward solves that issue.
@dan_perry
@dan_perry Жыл бұрын
Hmm, I thought the PowerVR/Dreamcast was the first tile based deffered renderer?
@jeffg4686
@jeffg4686 Жыл бұрын
have you checked out the "clustered forward renderer" in bevy? Looks pretty nice. Don't know if any downsides. Says unlimited lights
@zugolf4980
@zugolf4980 Жыл бұрын
And this is why you're at Cambridge University
@chenbruce3784
@chenbruce3784 Жыл бұрын
谢谢你
@benmandrew
@benmandrew Жыл бұрын
别客气
A Deep Dive into Nanite Virtualized Geometry
1:10:00
SIGGRAPH Advances in Real-Time Rendering
Рет қаралды 234 М.
КАРМАНЧИК 2 СЕЗОН 4 СЕРИЯ
24:05
Inter Production
Рет қаралды 651 М.
Мы играли всей семьей
00:27
Даша Боровик
Рет қаралды 3,8 МЛН
ШЕЛБИЛАР | bayGUYS
24:45
bayGUYS
Рет қаралды 584 М.
The Bottom Line Blueprint: Expert Tips from Anders CPAs + Advisors @Anderscpa
36:17
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,3 МЛН
How do games render their scenes? | Bitwise
13:12
DigiDigger
Рет қаралды 559 М.
How Big Budget AAA Games Render Clouds
10:45
SimonDev
Рет қаралды 251 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 765 М.
Volume Tiled Forward Shading
7:57
Jeremiah van Oosten
Рет қаралды 17 М.
Physics and Math of Shading | SIGGRAPH Courses
38:35
ACMSIGGRAPH
Рет қаралды 96 М.
OpenGL - deferred rendering
9:42
Brian Will
Рет қаралды 30 М.
The Glitch that Broke Link's Cel Shading
35:10
Jasper
Рет қаралды 545 М.
How do Video Game Graphics Work?
21:00
Branch Education
Рет қаралды 3 МЛН
Пленка или защитное стекло: что лучше?
0:52
Слава 100пудово!
Рет қаралды 1,5 МЛН
How Neuralink Works 🧠
0:28
Zack D. Films
Рет қаралды 27 МЛН
Вы поможете украсть ваш iPhone
0:56
Romancev768
Рет қаралды 456 М.
M4 iPad Pro Impressions: Well This is Awkward
12:51
Marques Brownlee
Рет қаралды 6 МЛН