Daniel Schroeder

50 posts

Daniel Schroeder banner
Daniel Schroeder

Daniel Schroeder

@dan5sch

Making pretty pictures with GPUs

Minnesota Katılım Ekim 2018
172 Takip Edilen1.5K Takipçiler
Sabitlenmiş Tweet
Daniel Schroeder
Daniel Schroeder@dan5sch·
Here's an update on my small-voxel renderer, inspired by the look of games like Doom and Quake. The work I shared last year focused on handling simpler environment geometry. Since then, I've greatly expanded the scope of what I can depict in this art style. More info in thread.
English
33
124
1.7K
61.7K
Daniel Schroeder
Daniel Schroeder@dan5sch·
@mankrip The voxelization is done ahead of time. Among other things, this allows me to calculate parameters for a more elaborate shading model that improves the appearance of the resulting meshes once illuminated. I go into some more detail about this in the blog post.
English
0
0
1
93
mankrip
mankrip@mankrip·
@dan5sch Since you're voxelizing triangle meshes now, how about interpolating the triangle mesh animations before voxelizing them? Or is the voxelization not done in realtime?
English
1
0
0
104
Daniel Schroeder
Daniel Schroeder@dan5sch·
Here's an update on my small-voxel renderer, inspired by the look of games like Doom and Quake. The work I shared last year focused on handling simpler environment geometry. Since then, I've greatly expanded the scope of what I can depict in this art style. More info in thread.
English
33
124
1.7K
61.7K
Daniel Schroeder
Daniel Schroeder@dan5sch·
Currently, all the light sources in my small-voxel renderer are dynamic (though without inter-object shadows). I didn't demo this in the new YouTube video, but somebody asked about it in the comments, so here's a quick example.
English
4
12
282
8.5K
Daniel Schroeder
Daniel Schroeder@dan5sch·
@easyldur Thanks! I guess it depends on your perspective on what is high or low spec these days. The sequences in the video stay above 90 FPS at 1440p on a six-year-old GPU that was considered by reviewers at the time to be good for 1440p gaming (Radeon RX 5700 XT)
English
1
0
3
463
Stefano Rivera
Stefano Rivera@easyldur·
This is SO appealing! I don't know why, but I never, ever truly liked meshes, since the PS1 era. I guess, in my mind the world is made of pixels and not triangles. Super Street Fighter II >>> Virtua Fighter. Is this computationally intensive? Could it be rendered on a low-specs device? Or does it need at least a mid-range GPU? Nice choice of music BTW!
English
1
0
1
611
Daniel Schroeder
Daniel Schroeder@dan5sch·
@art_of_kemal Thanks! I'm considering several options for where to take this project as I continue development. I talk about this in more detail in the blog post that I linked. One of my reasons for sharing this update now is to gauge interest from other developers and make more connections
English
1
0
7
887
Kemal
Kemal@art_of_kemal·
@dan5sch Actually this is amazing. While it gives the nostalgic look of the old era games, it also supports good geometry detail. Do you have any future plans to make this ready for commercial works?
English
1
0
9
963
Daniel Schroeder
Daniel Schroeder@dan5sch·
@OrigamiSDH A sufficiently simple version of enemy voxelization could be possible in real time. I chose to bake them because it lets me do as much compute as I want to allow the render-time results to look nicer and render fast. And yeah, Prodeus's dynamic enemy sprites do look quite nice.
English
0
0
0
31
Daniel Schroeder
Daniel Schroeder@dan5sch·
@matiasgoldberg Thank you for pursuing this, if your report did prompt the change. I always found Vulkan's specification of how synchronization primitives behave when acquiring or presenting swapchain images to be frustratingly incomplete, so it's good to see movement here.
English
1
0
4
342
Matías N. Goldberg
Matías N. Goldberg@matiasgoldberg·
I don't know who discovered this problem; nor if my reporting in Nov 2023 sparked some contribution or this was independently discovered. But whoever found the root of the problem and created a validation layer for this, BIG THANK YOU.
English
2
1
99
3.4K
Matías N. Goldberg
Matías N. Goldberg@matiasgoldberg·
On Nov 2023 I informed NVIDIA, Microsoft and AMD something was wrong in Vulkan Presentation and that I could repro with enough persistence even on vkcube. SDK 1.4.313.0 proved me right and almost every Vulkan app is wrong. Finally the problem was found and I feel vindicated🧵
English
7
31
444
21.7K
Daniel Schroeder
Daniel Schroeder@dan5sch·
@miketuritzin People focus on the borrow checker when they compare Rust to C or C++, but when I've experimented with Rust, one of the design decisions I've appreciated the most is the radically simpler initialization semantics
English
0
0
2
72
Mike Turitzin
Mike Turitzin@miketuritzin·
You can fix this for specific classes/structs, but I believe this is the default across the C++ STL.
English
2
0
3
683
Daniel Schroeder
Daniel Schroeder@dan5sch·
That's a wrap for GDC 2025! Thank you to everyone who met with me this week -- I got to have a lot of interesting conversations this year
English
1
0
2
980
Daniel Tabár
Daniel Tabár@Data01·
@dan5sch Thanks indeed it was a multi-year mega heavy lift from the team! hope to see you at GDC! on that note, @rianflo are you doing your awesome gfx get-together tradition this year too? would be a great place to meet
English
2
0
0
72
Daniel Schroeder
Daniel Schroeder@dan5sch·
Hey folks. I'll be in San Francisco next month for GDC! Here's a look at what I've been adding to the small-voxel renderer I'm building, inspired by the visuals of classic 90s 3D games. Feel free to reach out if you're interested in meeting (DMs, or the email on my website)
Daniel Schroeder tweet media
English
10
4
160
6.8K
Daniel Schroeder
Daniel Schroeder@dan5sch·
@Data01 Yep! I've seen some of your posts about this. I'm sure the streaming was a bear to get working well
English
1
0
1
88