@BartWronski@mastodon.gamedev.place
@BartWronski@mastodon.gamedev.place avatar

BartWronski

@BartWronski@mastodon.gamedev.place

Principal Research Scientist at NVIDIA.

Technology and art.
Computer Graphics by day, Techno and Industrial music by night.

https://linktr.ee/bartwronski

Ex Google Research, Ex games (Sony, Ubisoft, CD Projekt).
Politically leftist. He/they.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

demofox, to random
@demofox@mastodon.gamedev.place avatar

New Blog Post: A Low Discrepancy Shuffle Iterator (+Random Access & Inversion)

What if you had a shuffle iterator that could traverse a shuffle, without actually shuffling.

What if that shuffle was a low discrepancy sequence so neighboring values were very different and had nice numerical properties?

Another POV: selection without replacement. stateless, and low discrepancy.

https://blog.demofox.org/2024/05/19/a-low-discrepancy-shuffle-iterator-random-access-inversion/

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@demofox a neat application of this is possibly for LDS discrete sequence importance sampling; simply N is not the element count, but sum of the element values and then one can do a binary search over the discrete CDF. This could be useful for importance sampling when elements are sorted according to some other diversity metric, like spatial distance or whatever.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@demofox would Hilbert curve remapping work? I have this snippet from some old article (can't find it now) for converting 1 LDS random number to 2, works not ideal, but pretty ok. Then you can start with just 1D. :)

BartWronski, to random
@BartWronski@mastodon.gamedev.place avatar

Are there any shader toy experts here?

Two of my recent shader toys display just black on iOS Safari (no compilation errors), while a separate iOS app shows them "okay" (some bugs, but at least not a black screen).
https://www.shadertoy.com/view/clXXDs
https://www.shadertoy.com/view/MfyXzV
Nothing crazy, pretty simple, but using feedback for TAA accumulation.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@demofox interesting, will give a try to tweaking:
if (iTime > 0.1 && iMouse.z < fragCoord.x) {
col = col * 0.02 + texture(iChannel1, orig_uv).xyz * 0.98;
}
otherwise it initializes the buffer, but maybe the time is too late because of the compilation or something along those lines?

gavkar, to random
@gavkar@mastodon.gamedev.place avatar

It is commencement speech season. Here is one that I really liked that breaks down “follow your dream” by @3blue1brown at Harvey Mudd: https://youtu.be/W3I3kAg2J7w?si=57sbr4uWu_VE1Cyk. Grant Sanderson also has great educational videos on YouTube that I highly recommend.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@gavkar hah, I just watched it (I am a big fan of his channel) and agree 100% with his take. For one, I did not know at college what my dream was (I loved audio, graphics, but also low-level, electronics) and even what I'm possibly good at. Secondly, having a passion can suffice to be excellent, or not (I have one for music and learned to be ok at producing and happy with it, but I have no talent, so will never be great). Third, it's possible no one cares about my passions. :)

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@gavkar the latter might be a sign of us being older - for our generation, "successful" meant something different than for new generations, and YouTubers, influencers, and social media reach is definitely one of the new measures. :)
and for career paths, I often get questions about career advice or mentoring requests from people just starting out. While I can never commit to "proper" long-term mentoring 1/2

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@gavkar (plus my career path was very unusual and starting in a different reality of 00s Poland, so not relevant), I am happy to answer any questions. And I noticed that people tend to strongly focus on questions about which specific skills to develop, or even libraries, languages, APIs to learn. I wonder where this misconception that those are important comes from. I always reply to focus on core skills - math, how hardware works, theory of their domain, and problem-solving in any language.

bitinn, to random
@bitinn@mastodon.gamedev.place avatar

“Tone Mapping Considerations for Physically-Based Rendering”

Cool interactive comparison.

https://modelviewer.dev/examples/tone-mapping

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@bitinn This screenshotted excerpt is terrifying. "Some folks don't understand PBR and creating correct assets where diffuse is more saturated to compensate for specular, so we bias a supposedly natural tonemapper so that incorrectly authored assets display better, while hurting any asset that is scanned or authored correctly". :(

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@bitinn and this is the right thing to do :) PBR is a tool and you can violate all the constraints for specific effects if you understand those. It'd even be ok for a game to have a custom LUT like this - 100% fine by me! (not that anyone cares haha :) )

But slapping a post effect like this, calling it "natural", and in a Khronos standard is pretty bizarre and IMO going to cause only more confusion in the long run.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@smilebags @bitinn yeah I don't really understand why couldn't they just subtract this from "iffy" diffuse reflectances or apply some soft contrast to them (common tech art hack when converting legacy materials 10y ago :) lift black but everything above a threshold - apply some ad-hoc S-curve).
As @troy_s mentioned, people really need to stop confusing material properties like reflectances with "color"; even radiance is not color. Color is in the brain, not in electromagnetic waves or atoms.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@bitinn @smilebags I 100% agree it's just a guideline - even for photorealistic games, it's not even "physical", those idealized models are not real. There is no "correctness", just consistency.
I admit I know nothing about e-commerce, so I might be very off. But I know a lot about PBR in games, I lead whole studio's transition to it.
So, for e-commerce, why use a PBR renderer on non-PBR assets at all? And if using a PBR one, wouldn't they care for perfect life-like surface appearance etc?

mbr, to random
@mbr@mastodon.gamedev.place avatar

On twitter @sebbbi mentions a cheap approximation of sin(π x) on [-1,1]

sin(π x)/4 ≈ x - x |x|

Normally if we want a two term approximation of an odd function we're stuck with the form:

a(x) = c₁ x + c₃ x³

but if we move away from pure polynomials then another two term form is possible:

b(x) = k₁ x + k₂ x |x|

and this generalizes to however many term odd/even function approximations (filling in otherwise skipped powers with one as abs which spit into two subexpressions w & w/o abs)

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@mbr @sebbbi one thing that just "clicked" for me (probably obvious to you and many): the neat part is that despite seemingly "nasty" abs theoretically incompatible with techniques like linear least squares or Remez, it "just works out" as one can focus only on the positive part due to symmetry.

bitinn, to random
@bitinn@mastodon.gamedev.place avatar

GM: How do we make leadership care about Web Assembly and Web GPU in Chrome?

PM: Web AI applications.

Result:

“WebAssembly and WebGPU enhancements for faster Web AI, part 1”

https://developer.chrome.com/blog/io24-webassembly-webgpu-1

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@bitinn those are super cool improvements and proposals, even for games and such! :) I am seriously considering making some future demos in it anytime sharing notebooks or shadertoys are not enough.

BartWronski, to random
@BartWronski@mastodon.gamedev.place avatar

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

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@aras yeah and some of them had even worse compression ratios than yours :( visibility of blog posts is close to zero for non-academics. And I even had one academic explicitly refusing to cite my blog post about a similar method as their paper "because it's not peer reviewed". :(

FWIW, I think if you wrote a LaTeX version of your post, just put it on arXiv with references - you'd get a ton of citations. And at many conferences, chance of a "best paper" award. :)

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@aras sonetimes it's incentives (your reviewers will be academics, so you better cite them all to not offend any potential one 😅), but discoverability is a real issue as well...

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@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 😅

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@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,
@BartWronski@mastodon.gamedev.place avatar

@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,
@BartWronski@mastodon.gamedev.place avatar

@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,
@BartWronski@mastodon.gamedev.place avatar

@mattpharr @jesta88 @aeva I put this "everyone" in quotation as tongue-in-cheek suggestion that it's not really everyone, and it's not that obvious - because of the way we teach and practice it. :)
"Bilinear is free? Sure, I'll use it! Everyone uses it? It must be the right thing to do!"

Once it's not free (our motivation - filtering under a new compression format) and you see the different outcome, you are starting to question yourself and everything you know - "which way is correct?!" :)

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@wadeb @mtothevizzah @iralmeida @aras @demofox 1. there was a paper from my colleagues that does that for both meshes and materials: https://research.nvidia.com/publication/2021-04_appearance-driven-automatic-3d-model-simplification but back then was arguably way too slow. 2. We wrote an article to the new GPU Zen about exactly that for materials :) and it's IMO practical and fast. Uses Slang.D, so no need to rewrite BRDFs in a different language. Should be out in a few weeks, but if you're curious, I'll ask around if I can share a preprint

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@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: https://github.com/NVlabs/nvdiffrec/tree/slang not just rewritten in Slang, super fast and clean, but also includes many advances like: https://research.nvidia.com/publication/2023-08_flexible-isosurface-extraction-gradient-based-mesh-optimization

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

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@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.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@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,
@BartWronski@mastodon.gamedev.place avatar

@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.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • tacticalgear
  • rosin
  • Youngstown
  • mdbf
  • ngwrru68w68
  • slotface
  • khanakhh
  • ethstaker
  • everett
  • kavyap
  • thenastyranch
  • DreamBathrooms
  • magazineikmin
  • anitta
  • osvaldo12
  • InstantRegret
  • Durango
  • cisconetworking
  • modclub
  • cubers
  • GTA5RPClips
  • tester
  • normalnudes
  • Leos
  • provamag3
  • megavids
  • lostlight
  • All magazines