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

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

Short blog post about "Everybody Wants to Crank the World", a #playdate #demoscene 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

C++ header only implementation available at https://github.com/Atrix256/GoldenRatioShuffle/blob/main/LDShuffle.h

demofox,
@demofox@mastodon.gamedev.place avatar

@lritter I can always count on you to understand and appreciate these things, and have done similar work. It's nice not to just be a crackpot in the corner 😀

demofox,
@demofox@mastodon.gamedev.place avatar

@toerror that is so cool. If you haven't seen the term "format preserving encryption" is the formal term for it. It's a weird name, but it's used a lot. Credit card companies use it to generate the next credit card number, I've heard :)

demofox,
@demofox@mastodon.gamedev.place avatar

@j2kun yeah for sure! And I need to update the code to cache that off 😂

demofox,
@demofox@mastodon.gamedev.place avatar

@j2kun and thanks Jeremy. This is so niche, it seems very few people will understand the value, but you are definitely one of them :)

demofox,
@demofox@mastodon.gamedev.place avatar

@BartWronski that's a neat idea!
I've also tried a bit to get this working in 2d. I thought I had a nice solution but then I tried at different resolutions, and it fell apart.

demofox,
@demofox@mastodon.gamedev.place avatar

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

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.

demofox,
@demofox@mastodon.gamedev.place avatar

@BartWronski you might try explicitly initializing the buffer values to make sure no NaNs are coming from uninitialized memory.

demofox,
@demofox@mastodon.gamedev.place avatar

@BartWronski yeah it could be

demofox,
@demofox@mastodon.gamedev.place avatar

@BartWronski it would be great to get a pix or renderdoc capture wouldn't it? It seems like they (browsers) sometimes have support for it, but then remove it, then re add it in a different way. It makes it real hard when it's so opaque, but it also forces us users to get real creative with debugging, which is a nice skill to have after acquiring it tbh 😂

stux, to random
@stux@mstdn.social avatar
demofox,
@demofox@mastodon.gamedev.place avatar

@stux tfw my dad was talking about pong 25+ years ago

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

demofox,
@demofox@mastodon.gamedev.place avatar

@mtothevizzah @BartWronski @aras @neil those trips sound so great

demofox,
@demofox@mastodon.gamedev.place avatar

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

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