mastodon.gamedev.place is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server focused on game development and related topics.

Server stats:

5.8K
active users

I am excited to finally share our recent paper "Filtering After Shading With Stochastic Texture Filtering" (with @mattpharr @marcosalvi and Marcos Fajardo), published at ACM I3D'24 / PACM CGIT, where we won the best paper award! 1/N

@BartWronski ah, I remember a year or two ago you were asking around about Unreal jittered sampling and other “strange” texture filtering approaches. Now we know where all that went! Really nice!

@aras yes, we had a tech report with our initial findings and a ton of folks reported some great precedents in old games. We knew of all the academic literature, but game developers just use them and often not even report. :)
The coolest example was this old Star Trek game and the first Unreal, we had no idea! This helped us a lot to contextualize our research. :)

Game developers, please report your findings and even "hacks"! :)

@aras Even if writing a full paper might seem intimidating and a ton of work (plus sometimes dealing with gatekeeping reviewers), GDC or Siggraph "Advances" presentations, blog posts, JCGT articles or arXiv tech reports are good enough to find and reference and much easier to write. :)

@BartWronski there’s at least 10x effort (and prestige?) difference between a blog post and a GDC/Siggraph talk, but yes even a blog post is 1000x better than nothing. From personal experience though, “hey I found a gross hack!” the first instinct is to *not* write about it :) But of course you have no idea if your “gross hack” is actually a sensible application of a theory that has not been formulated yet.

@BartWronski your paper is a perfect blend of “proper literature” and “documenting gamedev practices” by the way. The latter is very often not well documented or even understood (I’m sure you are aware of a million reasons why :)). But it is curious that production environment sometimes stumbles upon actually sound theory by accident, without realizing it.

Bart Wronski 🇺🇦🇵🇸

@aras I had this observation in an older blog post of mine that artists manually sharpening mipmaps (which seemed like a gross hack) is actually an intuitive compensation for ugly bilinear filter and correct, best-fit optimization-based solution gives similar results :) bartwronski.com/2021/07/20/pro

@BartWronski @aras artists are smarter than we give them credit for. I'm pretty sure incorrect lighting falloff was making up for the renders not being sRGB correct :P

@demofox @BartWronski definitely. But my point is, in gamedev (or generally outside of "research"), many of these things are not because someone wanted to find a theory; they are because someone wanted to save half a millisecond. I'm 99% sure stochastic mip sampling happened in gamedev only because of in a virtual texturing system manually doing full trilinear is very costly. Someone had an idea of random mip choice, and went "hey that does not look too bad!" and so it shipped.

@demofox @BartWronski which again is why I'm very happy for paper like this (and a handful of others) that "bring industries together". I think Bart mentioned it too, but many graphics people are blissfully unaware of most of signal processing things done by audio people, for example. It might be useful! (or it might not, lol)

@demofox @BartWronski I'm totally fanboying Bart here though -- since you have experience in gamedev *and* research *and* music -- 🤯 -- excellent! ❤️

@aras @demofox thank you, it means a ton coming from you :) I am nerdy about some niche and mostly useless things, but sometimes, they turn out to be useful after all 😅

@aras @BartWronski Yeah, Bart is a mensch haha. & I love that the best research comes from people that are well versed in both worlds.

@demofox @aras switching fields for almost 5y helped me a lot :) I would kind of recommend it to everyone (assuming they are ok with re-starting almost from scratch...). The terminology difference was funny ("what the hell is optical flow? oh, you mean motion vectors?"), but I contributed knowhow from games and graphics to some CV/ML research and camera products. :)
"What do you mean games already do robust temporal multi-frame super-resolution???"

@BartWronski @demofox "What do you mean games already do robust temporal multi-frame super-resolution???" is funny. It goes the other way too though, like half of all the ECS stuffs within gamedev are along the lines of "ok so you've invented an extremely limited relational database, right" and they go "what's a relational database?" :)

@BartWronski @demofox complete topic jump, but thanks Bart and Alan for this "discussion" right here. Since 2020 I've been pretty much sitting at home and working in isolation, and right now I'm on the brink of spiralling into some depression episode and/or realizing how much I miss in-person discussions. This one is not in-person, but still. Thanks.

@aras @demofox I work from home, but my team is scattered across various timezones, so totally relatable. I get great discussions with them, but still sometimes feel alone (I'm extraverted). Discussions here help - and Aras, please come to some conference if you can! :)

@BartWronski @aras @demofox yep, I've done two work from home stints (one in 2010, another in 2020), and I burned out both times.

Aras, take care of yourself, it's easy to end up in a bad spot

About all the folks saying "come visit!" around here, every rendering team on the planet would love to have you show up at their office for a week and have random discussions over lunch.

You could really start the nerdiest world tour ever. And we'd all love it 😄

@TheIneQuation @jon_valdes @BartWronski @aras @demofox Digital Dragons, too, not far from Aras, but I think in 2 days so maybe not enough heads up :) It's a cool little conference though

@msinilo @jon_valdes @BartWronski @aras @demofox it's grown too big for its own good, though. Last year I had trouble seeking out friends in the crowd, and the party venue has been too small to accommodate everyone who wants to get in for a number of years now.

@TheIneQuation @jon_valdes @BartWronski @aras @demofox Ah interesting. Last one I've attended was, uh, 2017 I think. Sounds like that's just how it goes though, GDC was actually a nice little conf back in 2000s 😆

@msinilo @jon_valdes @BartWronski @aras @demofox gic.gd/ on the other hand still has some room to grow. And I'm no longer on the program board, so there's no conflict of interest in bragging! 😜

@aras come to Seattle for breadsticks! :)

@aras (sorry for jumping in) I can somewhat relate. I work 100% from since a year before covid. I have smallish kids and it is hard to deny the convenience of working from home, but I feel that it will not be sustainable as they become a little older and can take care of themselves. Hopefully by then there are still offices left that I can start going to!

@aras @BartWronski @demofox I'm also serious, come hang out in Portland with Wade & I and work for a bit on whatever out of our office. Alternatively, I'm still trying to get out to Poland at some point and take a motorcycle trip with Drobot up to your neck of the woods.

@mtothevizzah @aras @demofox let me know when you decide when to go to Poland! maybe by some magic coincidence, I would be there as well? (right now aiming for September, but this might change; and generally, Poland is super awesome May-October)

I haven't seen Drobot for years now, it would be super fun. (though no motorcycle for me - I cannot drive one and they scare me :) )
I also plan to do "Fall Colors" trip this year again and Maine is definitely high on the priority list. :)

@BartWronski @mtothevizzah @aras @demofox I'm jumping in clueless about motorcycles and who Wade is, but completely up to get on a train to Poland and join in 😊

I very much relate to missing inspiring discussions 💜

@iralmeida @BartWronski @aras @demofox @wadeb naturally. Amsterdam is still on my hit list for Europe as well!

@mtothevizzah @iralmeida @BartWronski @aras @demofox Maine is a nice place to visit, especially in Summer+Fall, and I too miss in-person collaborations! Bart, do you think anyone is using inverse rendering now to automate these artist mipmap tricks? Like, directly updating the vertices + mipmaps of a low-LOD model as parameters, to try to match downsampled images of a high-LOD model.

@wadeb @mtothevizzah @iralmeida @aras @demofox doing it with vertices is also probably doable today with all the advances in differentiable rasterization, it got fast! This latest branch in particular should be of interest: github.com/NVlabs/nvdiffrec/tr not just rewritten in Slang, super fast and clean, but also includes many advances like: research.nvidia.com/publicatio

And for Maine, definitely want to come back. Just need to decide when, and train vs road trip vs flying. :)

GitHubGitHub - NVlabs/nvdiffrec at slangOfficial code for the CVPR 2022 (oral) paper "Extracting Triangular 3D Models, Materials, and Lighting From Images". - GitHub - NVlabs/nvdiffrec at slang

@BartWronski @mtothevizzah @iralmeida @aras @demofox Thanks! It looks like they did what I was thinking of re: optimizing mipmaps directly. Should get things like normal-to-gloss automatically. Props to them for using Simplygon output as a reference and seed since that tracks production practice. Re: speed and renderers, I've been playing with PyTorch and Kaolin but wondering about just trying ggx-research.github.io/publica and starting with our existing LODs + mipmaps, to just try and improve quality.

ggx-research.github.ioTransforming a Non-Differentiable Rasterizer into a Differentiable One with Stochastic Gradient Estimation

@wadeb @mtothevizzah @iralmeida @aras @demofox I am a big fan of this paper, super cool and easy technique. :) I don't know if I would suggest Slang (HLSL compatible) + clean gradients, or their approach (no need to compute gradients manually at all, but they are noisy), as I have not tried it. Probably similar amount of work for integration (setting up multiple passes, IDs etc. vs creating a backwards pass with Slang). Theirs might be easier for one-off, real gradients could pay long term.

@wadeb @mtothevizzah @iralmeida @aras @demofox if you ever want to add more ML components to the engine and pipelines (like gradients of BRDF flowing to a tiny network or optimizing something else using the BRDF), having real gradients will pay off - just my very biased opinion as I both contributed to Slang.D and work precisely on learning things inside real game-like renderers. :) Also, their approach will not work after a light bounce (suddenly everything contributes to everything).

@BartWronski @wadeb @mtothevizzah @iralmeida @aras I've been pushing for more use of differentiable slang at seed and ea. It's really nice if you want to do any learning/optimization at runtime. You can have the slang compiler turn it into raw hlsl too which makes it nice and portable.

@demofox @wadeb @mtothevizzah @iralmeida @aras it's a really neat and convenient language, IMO. And the ecosystem is great, it can take or output HLSL, CUDA, and you can bind your real proper game shaders to PyTorch (just compute ones, but I doubt this is a problem nowadays). The only possible concern: now HLSL is adding templates, Slang works with generics. The latter might be better (real types, better errors etc), but this can cause divergence in future.

@demofox @wadeb @mtothevizzah @iralmeida @aras in either case, I think Toksvig-like approaches are outdated. With optimization you can work with *any* BRDF, include subtle effects like albedo change due to interactions with specular, convert between BRDFs (simplified one for LOD!), or when combined with raytracing, easily bake in (directional?) ao and spec occlusion, all automatically!

@BartWronski @aras @demofox It may be Sept or Oct, will let you know. Michal and I have also talked about doing a bike-packing trip across Scotland, we'll see what happens, and go bug @neil if we do…

@aras @BartWronski @demofox IIRC @wolfpld has an anecdote about a colleague independently discovering transformation matrices. 😉

@TheIneQuation @aras @BartWronski @demofox Yeah. He was a smart guy, did some impressive things. But lack of formal education made for some funny moments at work.