@demofox@mastodon.gamedev.place
@demofox@mastodon.gamedev.place avatar

demofox

@demofox@mastodon.gamedev.place

Graphics and game dev research. previously nvidia, blizzard, monolith, others. graphics, audio synth, exotic computation. No gods, no masters. http://blog.demofox.org.

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

My video's power level is over 9000

demofox,
@demofox@mastodon.gamedev.place avatar

@TonyVladusich oh yeah totally. Interesting.

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

So linkedin as a social media platform... I feel like if I speak my true thoughts as a promethean anarchist, that is going to be detrimental.
And I cannot stand seeing all the people I know to be useless getting prestigious positions.
Mastodon friends, I live for the toots.

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

Ok so the internet is the epitome of cache invalidation problems (f5 and dns), and the challenge of naming things (urls). Are there significant off by one errors? :P

demofox,
@demofox@mastodon.gamedev.place avatar

@rrika neat!

demofox,
@demofox@mastodon.gamedev.place avatar

@pkhuong oh right :)

aras, to Playdate
@aras@mastodon.gamedev.place avatar

Short blog post about "Everybody Wants to Crank the World", a demo I made recently https://aras-p.info/blog/2024/05/20/Crank-the-World-Playdate-demo/

Calculating only some pixels both spatially and temporally is pretty much the same as DLSS, right? :P

demofox,
@demofox@mastodon.gamedev.place avatar

@aras @NOTimothyLottes Yeah it's kind of an interesting thing because if you filter it as spatial blue noise, and it becomes a good image, do you even need a temporal component to the noise anymore?! seems likely not right?
at the risk of being spammy, you folks should check out the new noise textures if you haven't yet. FAST noise.
https://github.com/electronicarts/fastnoise
you can have noise E.g. meant to be box filtered spatially, and EMA over time. also can make higher quality STBN.

demofox,
@demofox@mastodon.gamedev.place avatar

@aras noise.zip has pregenerated textures in it, and this page is a sort of flow chart to figure out which type of noise to use.
https://github.com/electronicarts/fastnoise/blob/main/FastNoiseDesign.md
A bit complicated I guess, but it's flexible and multipurpose.

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

Real or The Onion headline: "Red Lobster files for bankruptcy after missteps including all-you-can-eat shrimp."

demofox,
@demofox@mastodon.gamedev.place avatar

@mogwai_poet makes sense! Evidence of your gluttony piling up curbs the appetite.

demofox,
@demofox@mastodon.gamedev.place avatar

@flargh @mogwai_poet oh my god!!
by the way, totally funny, the owner of the place still wins. You fill up on tails.
🤢

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/

demofox,
@demofox@mastodon.gamedev.place avatar

@BartWronski good idea, it might! I'll give it a go

demofox, (edited )
@demofox@mastodon.gamedev.place avatar

@nickappleton yeah, so this does that exact thing, and that stuff is great. It makes a nice bijection / shuffle. The irrational makes it have the low discrepancy properties.
If you want to know more about that, here's a video. apologies that it's 50 minutes though :P
The first half is the relevant bits.
https://www.youtube.com/watch?v=tethAU66xaA

demofox,
@demofox@mastodon.gamedev.place avatar

@nickappleton cool deal. Rest well!

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

For folks that know me as "the blue noise guy", I've put together a 50 minute video that talks about many of the things I've learned in my ~decade long dive into noise and related topics - up to and including our latest paper published days ago at I3D.
I hope you enjoy it!
https://www.youtube.com/watch?v=tethAU66xaA

A slide showing how random numbers which are positively correlated on the screen give correlated resulting renders, uncorrelated random numbers give uncorrelated renders, and negative correlation random numbers give negatively correlated renders. Negatively correlated renders have the best perceptual quality, despite all three having the same actual error.

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig Yeah isn't that neat?
I thought sqrt(2) was globally 2nd place to golden ratio because it is an infinite string of 2's.
A couple days ago i saw that sqrt(3) is an infinite string of "12121212..." which i think makes it be better than sqrt(2).
Someone should make some kind of irrational number table sorted from most to least so we have a place to go and grab em when we need em :)

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig something to also consider here... lets say you wanted to do 2 shuffles and you wanted to make sure they didn't interact with each other (same irrational would make them be the same shuffle but offset), you could pick a 2nd good irrational number, but that irrational number may be somewhat similar to the first irrational number. So it's like you want it to be irrational with respect to integers, but also golden ratio. "Co-irrational" numbers need to come into math's existance :)

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig I agree with you and think that could work great, yeah. Only problem with this type of solution is it takes huge strides across the memory and is cache unfriendly!
Unsure what to do about that in general, but i have something cooking for this problem when it's in screenspace for rendering :P

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig a bit yeah. It seems like it could help us come up with an irrational value for the x axis, and another for the y axis, that combined would make nice 2D point sets. Right now we have heuristics for doing that, but nothing solid.
IMO state of the art is "R2"
https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig and haha... welcome to the blue noise / golden ratio club.

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig i wonder if you could do some hierarchical thing, like it would work in small windows at a time, but work in a way such that the statistics of how long something will live on average before being stomped is the same? not sure of the details but it seems probable

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig LDS is deterministic. It can be a set (must use all points for it to work well) or a sequence (can use any points from 0 to N and it works well).
LDS wins over BN at numerical integration and similar "do a thing with RNG and calculate error" situations.
BN is randomized and is high frequency noise.
There is 2 kinds of BN. BN points and BN textures.
BN points can be sets or sequences too.
At dimensions > 2 Owen Scrambled Sobol seems to be the winner.
BN textures are for perceptual error.

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig yeah for sure and 1d LDS can give you benefits in probabilities.
For rendering, LDS has problems with aliasing, Blue noise does not.

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig yeah, FAST is optimized so that if you know you are going to render, then apply a specific spatial filter, then a specific temporal filter, it minimizes the POST FILTERING error.
If you optimize noise for a gaussian filter spatially, that gives you blue noise, which is also how you optimize for perceptual error.
But you can optimize for box spatially which is what we usually use!
Check out "D" on this page for something interesting/unsolved about perceptual error.
https://github.com/electronicarts/fastnoise/blob/main/FastNoiseDesign.md

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig and FAST lets you have whatever per pixel value type you want. scalars, vectors, importance sampled vectors, etc. It's best to use noise textures with what you want in them, vs take scalar values and turn it into a vector, because that warping hurts the frequencies.

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig yeah so true! and box filtering is the same as averaging so if you ever find yourself averaging, or shuffling, or using random numbers etc etc, you have something to try. It's crazy how wide open this is. Like, a person could just start writing all sorts of computer science research papers and improving things IMO :P

demofox,
@demofox@mastodon.gamedev.place avatar

@sprig drool those are great usage cases IMO. For that last one, you might be interested in this post if you don't want to have a go at tackling it yourself. Or maybe you can improve this method or find a better one!
"Weighted Round Robin (Weighted Random Integers) Using The Golden Ratio Low Discrepancy Sequence"
https://blog.demofox.org/2020/06/23/weighted-round-robin-using-the-golden-ratio-low-discrepancy-sequence/

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