Brian Karis Profile
Brian Karis

@BrianKaris

16,806
Followers
375
Following
32
Media
1,423
Statuses

Engineering Fellow - Graphics at Epic Games.

San Francisco, CA
Joined November 2009
Don't wanna be here? Send us removal request.
@BrianKaris
Brian Karis
4 years
Finally, after over a decade of personal research, >3 years of full time work, I am so proud to show my ultimate passion project: virtualized geometry tech we call Nanite coming in #UE5 and a demo using it running real-time on PS5.
@UnrealEngine
Unreal Engine
4 years
👋 Say hello to Unreal Engine 5—take your first look now! #UE5
967
6K
22K
223
622
4K
@BrianKaris
Brian Karis
4 years
As some have noticed Nanite software rasterizes most of the triangles we draw! We have 2 different specialized software rasterizers running in async compute. Fast enough to fill the screen with micropolys. More cool info on #UE5 , Nanite, and Lumen: .
19
229
967
@BrianKaris
Brian Karis
3 years
I’m finally going to spill all the Nanite secrets! Long and dense talk. 127 slides and counting. Less than a month away!
@mirror2mask
Natalya Tatarchuk 🇺🇦
3 years
@siggraph Advances in Real-Time Rendering in Games course line up here: - awesome program this year, themes of efficient upscaling, handling dense geometry, RTGI and large-scale worlds lighting, to name a few.
8
164
550
18
130
951
@BrianKaris
Brian Karis
4 years
I learned this week that I have been promoted to Engineering Fellow here at Epic, a level that did not previously exist. Humbled. I never thought I'd be considered for such a thing in my career.
89
8
892
@BrianKaris
Brian Karis
3 years
Slides for "A Deep Dive into Nanite Virtualized Geometry" are now posted. Should cover everything you wanted to know about how Nanite works.
22
221
748
@BrianKaris
Brian Karis
2 years
The response has been amazing! Thank you! There is one type of response that I’ve heard that I’d like to correct though. I did not prove anything was the right or wrong approach. These were merely my conclusions along the way as to the path I most believed would achieve my goals.
@HPG_Conf
High-Perf Graphics
2 years
At the #HPG2022 in-person event, @BrianKaris presented his Journey to Nanite. He talked about the process of inventing the groundbreaking geometry engine in UE5, highlighting the perseverance, confidence, and fear that comes with research. Watch it here:
6
326
1K
16
72
602
@BrianKaris
Brian Karis
4 years
More tech info will be coming later this week on Nanite, Lumen, how this demo was made. #ue5 . Stay tuned.
30
49
568
@BrianKaris
Brian Karis
3 years
Nanite documentation here: Super high level explanation of what is and how it works. Detailed explanation of how to use it.
19
124
542
@BrianKaris
Brian Karis
4 years
When I say over a decade I'm not exaggerating. Some blog posts of mine from the beginning of 2009. From then till now I've been thinking about this. So excited this day has finally come
13
55
487
@BrianKaris
Brian Karis
3 years
I'll be doing a live stream soon (I think next week) to cover some more #Nanite info and answer questions. For a full technical deep dive into how Nanite works I'll be presenting at #SIGGRAPH2021 in August.
12
78
486
@BrianKaris
Brian Karis
4 years
Sigh. Apparently I need to weigh in on this TAA topic. MSAA is an antiquated technique designed to generate more samples on polygon edges as that was the only area that was undersampled at the time. 1/12
20
83
434
@BrianKaris
Brian Karis
4 years
More details on Nanite here:
@UnrealEngine
Unreal Engine
4 years
We're kicking off Unreal Fest Online 2020 with a look at next-gen game development and the creation of our Unreal Engine 5 demo. #UnrealFest #UE5 Tune in now:
11
127
450
12
91
392
@BrianKaris
Brian Karis
3 years
“Our experiments suggest the key element of Neural Radiance Fields is not the neural network but the differentiable volumetric renderer.”
@_akhaliq
AK
3 years
Plenoxels: Radiance Fields without Neural Networks abs: project page: propose a view-dependent sparse voxel model, Plenoxel, that can optimize to the same fidelity as NeRFs without any neural networks
11
166
900
7
57
383
@BrianKaris
Brian Karis
3 years
Video of "A Deep Dive into Nanite" SIGGRAPH 2021 talk by myself and coauthors @Stubbesaurus @gwihlidal : #UE5
4
113
361
@BrianKaris
Brian Karis
3 years
IMO the most important thing to work on for gamedev technology and services is how to reduce the cost of making games without needing to sacrifice production value. I can’t speak for Epic’s entire strategy but that is my personal drive.
6
40
349
@BrianKaris
Brian Karis
3 years
Great analysis! I enjoyed it. Glad you liked the demo.
@digitalfoundry
Digital Foundry
3 years
The Matrix Awakens - a defining moment in the latest gaming generation. @Dachsjaeger , @dark1x and myself discuss this astonishing demo in the wake of discussions with Epic Games:
66
329
2K
2
14
317
@BrianKaris
Brian Karis
4 years
But over the last year I've been joined by an amazing team of engineers who have all been super influential to Nanite and this demo @Stubbesaurus , @gwihlidal , Andrew Lauritzen, @ols_olsson , @ZabirH , @Snosixtytwo . Been an amazing experience working with them. So proud of this team
13
13
282
@BrianKaris
Brian Karis
3 years
Here it is! Go download UE5!
@UnrealEngine
Unreal Engine
3 years
Unreal Engine 5 is now available in Early Access! Find out more and go hands-on with Nanite, Lumen, and all of the exciting new tools and features:
200
2K
6K
6
26
248
@BrianKaris
Brian Karis
3 years
I have become a human pixel shader
Tweet media one
11
7
245
@BrianKaris
Brian Karis
6 years
Posted the beginning of my blog series on Spherical Gaussians: . This has been a long time coming. Enjoy! More in the series coming soon.
4
78
201
@BrianKaris
Brian Karis
4 years
Really excited for tomorrow! Not something I say often these days.
12
15
177
@BrianKaris
Brian Karis
4 years
SW rasterization is an important component of Nanite but one of many that goes into pulling this all off. We'll be talking more about how it works in time and of course the source code will be available for you to check out yourself early 2021. #UE5
8
20
169
@BrianKaris
Brian Karis
2 years
@HPG_Conf The slides are here which include the complete script of what I said. Also included are a few bonus slides and footnotes that needed to be cut for time.
4
31
160
@BrianKaris
Brian Karis
3 years
@iBrews @mmalex #Nanite will use pixel sized triangles when there's pixel sized detail. It decides how many tris to use based on amount of pixel error. Default is 1 so it allows error of <1 pixel, which effectively is imperceptible. Big tris can be <1 pixel different than original if its flat.
2
10
138
@BrianKaris
Brian Karis
2 years
This is the night before SIGGRAPH starts. If you arrive in town before 7pm you might as well come because registration is cheap and it should be fun. I will be speaking about the circuitous path of research that lead to Nanite, what didn't work and what I learned along the way.
@HPG_Conf
High-Perf Graphics
2 years
🚨 #HPG2022 is excited to announce our in-person reception co-located with #SIGGRAPH2022 in Vancouver. We will have a keynote by none other than @BrianKaris of Epic Games, who will talk about his journey to Nanite. More details and registration info here:
0
13
57
1
18
141
@BrianKaris
Brian Karis
2 years
OMG these look incredible! Didn't know about any of this. Amazing! Check out the art blast
@quixeltools
Quixel
2 years
We wanted to see what was possible when you pair #UE5 with Quixel Megascans, as well as assets from @Sketchfab and the @UnrealEngine Marketplace. Introducing “Ninety Days in Unreal Engine 5” Full video here: #quixel #megascans #ninetydays #unrealengine
29
363
2K
3
15
137
@BrianKaris
Brian Karis
4 years
Threadrippers became vital when WFH took build distribution away.
@AMDRyzen
AMD Ryzen
4 years
Check out this new case study to see how @EpicGames employs @AMD Ryzen Threadripper processors to enhance productivity, enable greater creative freedom, and dramatically improve build times in Unreal Engine. Read the full case study here:
Tweet media one
5
22
176
7
15
134
@BrianKaris
Brian Karis
4 years
Many others involved in this demo outside of direct Nanite development. Far too many to count but a few I worked with closely @Feaneroh @EpicShaders @knarkowicz @GuillaumeAbadie @YuriyODonnell @MarcusWassmer Michal Valient.
3
6
131
@BrianKaris
Brian Karis
4 years
Yes, Nanite draws the gbuffer in 4.5ms on average! Many assumed this amount of detail only can be had at 30fps. Not true! This is well within typical 60hz budgets. That doesn’t even count optimizations I’ve made since.
11
14
124
@BrianKaris
Brian Karis
3 years
Virtual Shadow Map documentation: Detailed geometry needs detailed shadows. Virtual shadow maps are an awesome new feature that was developed in conjunction with Nanite.
3
27
121
@BrianKaris
Brian Karis
3 years
Less than a day now! Join me tomorrow in "Advances in Real-Time Rendering in Games, Part 1" (hopefully this link works) and then in the following Q&A section.
0
15
110
@BrianKaris
Brian Karis
4 years
Also in the @digitalfoundry article above, we render virtualized shadow maps with Nanite to get those super detailed shadows. Without it is sometimes hard to tell the difference between real high poly geo and normal maps. Detailed shadows are important!
6
7
105
@BrianKaris
Brian Karis
3 years
Awesome article on how to add custom render passes to @UnrealEngine . Looks like there are other great #ue4 #ue5 articles from the past on the site too.
1
22
104
@BrianKaris
Brian Karis
7 years
Kim Libreri and myself are building a team here in the Bay Area focused on pushing the state of the art in real-time simulation and computer graphics. We are looking for others to join us and help build the future of Unreal. If interested contact me or
4
43
97
@BrianKaris
Brian Karis
7 years
First day starting at the new Epic San Francisco office! I moved out here months ago and have been working out of my home waiting for the office to open and today is finally the day.
5
4
89
@BrianKaris
Brian Karis
8 years
Here are the slides from my #GDC16 talk on digital humans. Now with proper references!
3
39
80
@BrianKaris
Brian Karis
2 years
Really enjoyed this panel! Surprised that no one made the tiling texture argument in favour of UVs and 2d textures. I'll make a bold dataless claim here. The vast majority of pixels rendered in modern games are sampling an artist created texture with a coord outside of [0,1].
@HPG_Conf
High-Perf Graphics
2 years
(5/5) At 12:00 pm (PST), we will have a panel discussion on high-performance geometry, featuring industry leaders Henry Moreton (NVIDIA), Jonathan Dupuy (Unity), Ryan Schmidt (Epic), David Farrell (Adobe), and Alex Evans (NVIDIA)
Tweet media one
0
3
27
2
13
77
@BrianKaris
Brian Karis
3 years
So many of the industry ills come from games having ever increasing costs to make. Massive studio consolidation, many beloved devs closing, sequels and licensed IP dominating everything, lack of innovation in design due to risk aversion…
1
2
79
@BrianKaris
Brian Karis
3 years
Check out the slides even if you saw my talk today. They include a long list of references to prior work, complete speaker notes of every word I said, bonus notes on many slides, and bonus slides that had to be cut for time.
2
3
75
@BrianKaris
Brian Karis
6 years
Was a reviewer on this. Happy to see it published. Good stuff!
@JCGT_announce
JCGT
6 years
Fdez-Agüera, A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting.
Tweet media one
1
104
220
2
12
74
@BrianKaris
Brian Karis
4 years
Was up till 4am last night finally finishing #TLOU2 . Absolute masterpiece! I can’t stop thinking about it all day. Congrats to the whole team @cgyrling @mrobin604 .
4
1
74
@BrianKaris
Brian Karis
7 years
Where the hell did the idea that our #ue4 ray tracing demo requires $150k worth of hardware to run? Seeing this all over the web. Runs great on 4 TitanVs which are 3k a piece. The fancy DGX Nvidia built box we ran on costs 50k but is probably overkill.
14
23
72
@BrianKaris
Brian Karis
8 years
We're going in same direction for same reasons. UE4.0 had parts in a graph but not the whole frame. Going all in to get all these benefits.
@FrostbiteEngine
FrostbiteEngine
8 years
"FrameGraph: Extensible Rendering Architecture in Frostbite" presentation slides by @YuriyODonnell at #gdc17 up now!
1
130
257
4
19
71
@BrianKaris
Brian Karis
2 years
@_mamoniem While funny to think of it as coworkers fighting with each other it’s actually following more a respectful pattern of academic publishing of citing prior work and comparing against state of the art and ground truth.
0
1
71
@BrianKaris
Brian Karis
2 months
@mirror2mask @siggraph I had many people ask me if I saw this talk. Yes, I did. What did I think? Well it's a Nanite clone with a few minor differences. If this was peer reviewed I expect it would be rejected due to lack of novelty but I have that gripe about many talks in this course over the years.
11
12
69
@BrianKaris
Brian Karis
3 years
@BartWronsk I personally like Ed Catmull’s version. Ideas are cheap. People matter. “If you give a good idea to a mediocre team, they will screw it up. If you give a mediocre idea to a brilliant team, they will either fix it or throw it away and come up with something better.”
3
3
67
@BrianKaris
Brian Karis
2 years
Reminder that I’ll be doing the keynote at the HPG dinner on Sunday. Another monster of a slide deck clocking in at 115 slides so far. No repeated material.
@BrianKaris
Brian Karis
2 years
This is the night before SIGGRAPH starts. If you arrive in town before 7pm you might as well come because registration is cheap and it should be fun. I will be speaking about the circuitous path of research that lead to Nanite, what didn't work and what I learned along the way.
1
18
141
3
14
67
@BrianKaris
Brian Karis
8 years
I'm going to be talking about UE4's hair shading model at #SIGGRAPH2016 in the Physically Based Shading course
4
32
63
@BrianKaris
Brian Karis
4 years
@iquilezles Not quite there yet 😔
1
1
63
@BrianKaris
Brian Karis
10 years
Insane UE4 archviz renders http://t.co/vzxyr4nMaV
Tweet media one
4
60
57
@BrianKaris
Brian Karis
3 years
Looks incredible!
3
2
61
@BrianKaris
Brian Karis
2 years
While I’d love for my work to be built upon, I’d honestly be happier yet if more unexpected approaches are developed. I’d love to see more point based, voxel, implicit, regular and irregular mesh research done. The world is boring if we all do the same thing.
3
8
63
@BrianKaris
Brian Karis
9 years
I will be speaking at #GDC16 on real time digital humans and photorealistic rendering in #UE4 .
3
26
62
@BrianKaris
Brian Karis
4 years
DLSS and new innovation in temporal sample reuse is the future and will continue to be our reality for a very long time, until we have enough power to generate numerous path traced samples per pixel in a single frame. 9/12
2
3
56
@BrianKaris
Brian Karis
4 years
PS. Even if you accumulated shading samples in another space, micropoly geometry now means nearly every pixel is an "edge" pixel. Traditional hardware MSAA will still not be the solution.
9
2
54
@BrianKaris
Brian Karis
3 years
Dune was amazing! Everything I hoped it would be after all these years.
1
1
55
@BrianKaris
Brian Karis
6 years
Off to SIGGRAPH! If anyone wants to chat about graphics or especially if you are interested in working at Epic, please hit me up. This year I’m mostly going to talk to people.
2
7
54
@BrianKaris
Brian Karis
4 years
Just watched #KlausNetflix for the first time. Incredible film with amazing animation. Should have won all the animation awards last year. Delightful story with a good message, beautiful artistry, and genre pushing technology. Kept me guessing how it was done the whole way.
2
1
55
@BrianKaris
Brian Karis
4 years
So we are left with temporal accumulation of samples. Will this go away anytime soon? I argue no. It is going in the opposite direction. The amount of cost to generate a pixel is increasing faster than hardware power and slower than screen resolutions. 6/12
2
5
54
@BrianKaris
Brian Karis
2 years
@_mamoniem I wrote all of that. I did so to compare my approach vs other published approximations at the time.
2
2
56
@BrianKaris
Brian Karis
4 years
Definitely check out the last third of the video where @Feaneroh covers the art production of the demo. The last bit where she flies 100mph through a city? Yeah, that was all just a detailed as everything else, you just couldn't tell.
Tweet media one
2
3
54
@BrianKaris
Brian Karis
2 years
Gotta love it when a paper comes out that directly answers questions you already had.
@JCGT_announce
JCGT
2 years
Hansson-Söderlund, Evans, and Akenine-Möller, Ray Tracing of Signed Distance Function Grids.
Tweet media one
0
39
166
1
3
52
@BrianKaris
Brian Karis
4 years
It's relevant lifetime lasted from colored triangles through textured triangles. It was artificially extended through per pixel shading and early days PBR with NDF prefiltering. It ran out with artist created material shaders. 2/12
3
2
51
@BrianKaris
Brian Karis
2 years
@tom_forsyth @iquilezles @pervognsen @CasualEffects Graph/visual programming languages are IMO marketing gimmicks. The only benefit they provide is appearing to be not scary. Human language countless times has converged on text, linear lists of symbols as the most efficient form of written communication, doubly so with a keyboard
11
6
53
@BrianKaris
Brian Karis
4 years
Now if folks want to debate what space is best to accumulate samples temporally, screen space vs others, that's more interesting and understandably contentious. 12/12
2
1
49
@BrianKaris
Brian Karis
3 years
… general lack of fidelity and immersion in indie, giant teams that lose the sense of shared vision, long term crunch, shift away from stand alone products and single player to multiplayer and GaaS where the people are the content because actual content is too expensive.
1
0
52
@BrianKaris
Brian Karis
11 years
New blog post "Specular BRDF Reference" http://t.co/i4G50IjBtX covering a large number of choices for the microfacet specular model.
3
32
51
@BrianKaris
Brian Karis
4 years
The question "Is TAA optional?" is really the question "Is image quality optional?". I've argued for years it shouldn't be optional in Fortnite but I don't ultimately make that decision. TAA and actually AA altogether can be disabled along with shadows. 10/12
3
4
46
@BrianKaris
Brian Karis
4 years
Good resource but also a nice reminder to give others some slack when speaking in person. There’s likely at least one term on this list you’ve been mispronouncing.
@CasualEffects
morgan
9 years
How to pronounce technical terms in graphics in English: e.g., skip the "s" in Fresnel!
Tweet media one
40
110
254
0
5
48
@BrianKaris
Brian Karis
2 months
@mirror2mask @siggraph I welcome others building on my or my team's work. I hope you do! I enjoyed , , and . But be upfront in what you're doing.
3
7
47
@BrianKaris
Brian Karis
4 years
Also memory isn’t insane. This is super WIP and was immature for the demo’s release timeframe but it a top focus for us right now. It’s already not as bad as you think and it will get significantly better over the next year.
2
2
44
@BrianKaris
Brian Karis
4 years
@mmalex @D3rzo @UnrealEngine Wow, thanks. Hugely inspired by your work on Dreams! I think you’ll notice a few parallels if you read between the lines in the upcoming tech talk.
1
4
43
@BrianKaris
Brian Karis
2 months
@GPUOpen Very happy to see this published! DGF is very similar to Nanite's encoding minus attributes. Switching Nanite to this format would be some work but is definitely possible. Doing so wouldn't be much of a win for rasterization but the really exciting part here is ray tracing it.
3
6
45
@BrianKaris
Brian Karis
4 years
In the modern age of Monte Carlo integration and ray tracing (that we have at least partly been in for a generation and firmly are in now) we need a vast number of samples per pixel. 1 will not do. This means supersampling is required. 4/12
2
1
42
@BrianKaris
Brian Karis
2 years
My point being that UV control of the instancing of 2d textures is extremely powerful and I'd go further and say it is the most well used "procedural" art tool ever invented for 3d graphics. Too often is the problem of texturing conflated with painting a model.
5
4
43
@BrianKaris
Brian Karis
2 years
My conclusions are opinion, not fact. Perhaps my arguments were convincing. If not, prove me wrong! Or perhaps your goals differ from mine which changes the conclusion.
1
1
43
@BrianKaris
Brian Karis
4 years
When disk size isn't a concern, say film or enterprise use cases, you can do this and more. Honestly I expect data delivery to be one of the biggest constraints in game graphics for next gen. Virtualization tech like Nanite, VT and fast SSDs make the run-time side a nonissue.
3
5
42
@BrianKaris
Brian Karis
4 years
For real-time it isn't practical to generate those all in a single frame. In some RTing contexts sample sharing can be done spatially. That isn't possible for a large class of problems as evidenced by the fate of MLAA and it's decedents. 5/12
1
1
41
@BrianKaris
Brian Karis
3 years
Wow!
@DukeGunston
Ryan Corniel
3 years
Tweet media one
Tweet media two
Tweet media three
Tweet media four
2
10
83
0
0
43
@BrianKaris
Brian Karis
4 years
@ID_AA_Carmack UE4 does this at pixel granularity. A full screen dithered stencil is laid matching a fade amount. LODs stencil test against 0 or 1. This way we skip any shader permutations with discard. All objects fade in/out at global cycles which also means no per object fade timer state.
2
0
41
@BrianKaris
Brian Karis
3 years
What can we do about it? Obviously make the tools easier and faster. But perhaps bigger than that, stop remaking things from scratch! Reuse or share! That implies a shared style to art assets which means photoreal (just like film).
4
0
42
@BrianKaris
Brian Karis
4 years
@castano Thanks! Not vector displacement or tessellation. That was my plan for this problem for many years but it's not general enough. Stay tuned for more info.
2
0
42
@BrianKaris
Brian Karis
9 years
. @Paragon This trailer is rendered in #UE4 with game assets btw. Those are the character art assets used in game.
6
16
40
@BrianKaris
Brian Karis
3 years
It also implies the fidelity of those assets are “future proof” or at least can span generations before they need to be replaced or updated. That means autoscaling and tech like Nanite. It means PBR and converging on a shared reality of how light behaves.
2
0
41
@BrianKaris
Brian Karis
1 year
@phyronnaz This is mostly just the voxel prototype I made years ago while researching approaches for virtualized geometry. I talked about it in my HPG talk with screen shots. It's been sitting in a shelf ever since and I got sick of fixing it locally.
@HPG_Conf
High-Perf Graphics
2 years
At the #HPG2022 in-person event, @BrianKaris presented his Journey to Nanite. He talked about the process of inventing the groundbreaking geometry engine in UE5, highlighting the perseverance, confidence, and fear that comes with research. Watch it here:
6
326
1K
1
4
39
@BrianKaris
Brian Karis
5 years
@TimSweeneyEpic @JCGT_announce is a great example of an open journal. Everyone involved is volunteer and their operating costs are minuscule . Would love to see paywalled journals die immediately but the argument they need a ton of money to do so is false.
4
8
37
@BrianKaris
Brian Karis
4 years
Temporal upsampling has gained great popularity as a means to generate less than 1 sample per pixel as the cost of those samples increases. More sophisticated denoisers (distant decedents of TAA) accumulate even more samples than old TAA ever did. 8/12
1
1
35
@BrianKaris
Brian Karis
4 years
@renderwonk @olson_dan Absolutely. I "lost" a ton of time on a voxel, point based, and displacement prototypes during R&D. But the solution I landed on then was highly informed by that work. Wouldn't have gotten here without many failures first.
1
3
37
@BrianKaris
Brian Karis
4 years
No one would say to a painter, go back and delete those early paint strokes you completely covered later on. That's unnecessary and the request sounds ridiculous. Why shouldn't it be the same for set dressing?
4
0
37
@BrianKaris
Brian Karis
3 years
One does not require the other but the true power is when they are used together. The detailed shadows show Nanite meshes in their full glory and the way Nanite renders makes VSMs fast.
1
3
38
@BrianKaris
Brian Karis
3 years
Thank you everyone that joined! Quick note: last year's demo content I showed in the editor was not PIE so does not have the same lighting which is activated by blueprints to hand tune sun light for different areas. So the lighting surely didn't look as nice as the original.
2
0
37
@BrianKaris
Brian Karis
4 years
The signals being sampled per pixel are increasing in their frequency and variance, all motivated by Monte Carlo integration of the rendering equation. 7/12
1
1
35
@BrianKaris
Brian Karis
2 months
Personal annoyance in terminology. A surfel is an element of geometry. The term you are probably looking for is (ir)radiance cache. 100s of papers about them since 1988. Each element is called an irradiance cache record.
4
3
36
@BrianKaris
Brian Karis
11 years
New blog post about HDR and tone mapping http://t.co/U6xy7PBDY9
4
15
35
@BrianKaris
Brian Karis
5 years
Gorgeous! Congrats to all involved! This is the first real look at what the next generation of games can look like.
@NinjaTheory
Ninja Theory
5 years
Announcing Senua’s Saga: Hellblade II
594
2K
8K
1
3
36