I Tried Sorting Pixels

preview_player
Показать описание
Pixel sorting has been a niche data moshing technique in the generative art community for many years, but an efficient real time pixel sorting shader for games has never been made for a few reasons. Can I solve the puzzle and invent one?

Topics covered include: GPU sorting algorithms (the parallel bitonic merge sort), basic shader optimizations and advanced shader optimizations regarding memory use.

Download my GShade shader pack!

Support me on Patreon!

Socials:

Music:
During The Test - Persona 3 OST
Afternoon Break - Persona 3 OST
This Mysterious Feeling - Persona 3 OST
Fearful Experience - Persona 3 OST
Just Like This - Persona 3 OST
Iwatodai Dorm - Persona 3 OST
Soft Oversight - Sonny Boy OST
Judgement - Sonny Boy OST
GO!GO!STYLE - Paradise Killer OST
Midori Eyes - Paradise Killer OST
Dead End Chaos Theatre - Earthbound OST
Vehicle Handling - Persona 2 Innocent Sin OST
Police Station - Persona OST

Thanks for watching!

This video is dedicated to my friend, Alotryx.

#acerola #graphics #gamedev #unity3d #graphics #shaders
Рекомендации по теме
Комментарии
Автор

the 30 second parallel bitonic merge segment took me 15 hours to edit

anyways what was your favorite cat clip

Acerola_t
Автор

Graphics Programmers: My program renders an image for 3 days, but I was able to shave off 4.3 hours, I'm so good at it
Real-Time Graphics Programmers: I just wasted quarter of a millisecond, it was reserved for pathfinding calculations, my managers is going to kill me

capsey_
Автор

In art class, I opened my photos in notepad++ and wrote some stories. My teacher was shockingly confused how I'd intentionally altered a pic to make it "glitched." They're just numbers in an order, and I changed it.

Not_mera
Автор

I read the title of the video as “I tried snorting pixels” — so you’re welcome for your next video idea.

holo_fever
Автор

I would like to point out that the effect would be great for gameplay if it were only applied to certain objects in the game, via a two-color buffer that shows which areas are allowed to be affected by the effect before the contrast map is applied to those areas, allowing the effect to be limited to certain portions of the image.

the uses would be awesome.
you could have a character's skin glitching out, but their clothes stay stable, you could have a sword that leaves behind a glitchy trail in the air, and so on and so forth.

Attemptedburger
Автор

I'm not gonna retain any of this information, but I always feel like acerola got to learn so much in making each video! This was really interesting to watch!

Mcbuzzerr
Автор

i have never and likely will never need to create graphics shaders, yet these videos are so endlessly entertaining and informative that i can't stop watching

Manafii
Автор

I would love to see a game made with this filter. something like psychological or surreal horror. I think this filter paired with good sound design and a decent art style would make for a really mind bending and fun game

themilkguy
Автор

Came for the programming knowledge, stayed for the reminders that the monogatari series live forever in my heart

juliusnebulus
Автор

The editing is very spesifically cultured and I now want more.

MMYLDZ
Автор

Babe, wake up. New Acerola video just dropped

dimon
Автор

In animation, PixelSorters are a great way to create scene transitions with this glitch aestethic! Ist awesome to see how they work

TheDrMike
Автор

Actually one of the most beginner friendly descriptions of Compute Shaders i have ever heard.
You should do more with them. I had a hard time when learning Compute Shader Concepts the first time.

verybasic
Автор

If the parallel bitonic merge sort was fast enough you can also use it in the span sorting case: Do a first pass to assign to each pixel the index of its corresponding span, and then sort the entire column lexicographically first by span index. Lexicographical sorting can be accomplished by putting span index into some bits higher than the highest data bits of the sort keys.

austinconner
Автор

I'm a video editor who loves glitchy effects and learning about how pixel sorting actually works has been very entertaining. I love how the post-processing workflow is so similar to doing VFX and colour correction too lol

WinderTP
Автор

I'm pretty new to shader programming and have no idea of 90% of the shader optimizations you were talking about, but just so I didn't feel dumb, I covered the cat videos with my hands in order to avoid getting distracted!

Also, instead of having groups that have already finished a thread wait for the others to finish, can't you divide the spans in 2s (two spans a thread) so you can roughly get them 2 spans done by one group at the same time as others? It may sound weird because I'm probably mixing up some of these terms

dotdotmod
Автор

I think there IS an improvement on the shader code to be made: If your sortvalue buffer is of a known data type (e.g. uint8), I think you can use a radix sort - which should be a lot faster than your current alg.

ThethUSER
Автор

Oh boy time for another sorting rabbit hole.

Also having Nekopara as the associated visual for a "video game" just killed me every time.

Riccorbypro
Автор

14:43 waittt i was literally thinking "hey this looks like a serial experiments lain edit" this ENTIRE time

psychwardescapee
Автор

"tasteful chromatic aberration" was up there in hype quotes for this video, just below "lets switch over to FFXIV"

Riazey