Painterly real-time rendering | Useless Game Dev

preview_player
Показать описание
Join me in this disastrous adventure as I try to make a real-time painterly rendering filter for a video game, there will be brushes, there will be compute shaders, there will be tears. Fun times all around.

*More reading/watching on this subject:*
*Music:*
Licensed under Creative Commons: By Attribution 4.0 License

Licensed under Creative Commons: By Attribution 4.0 License

Licensed under Creative Commons: By Attribution 4.0 License

Licensed under Creative Commons: By Attribution 4.0 License

*Other Credits:*

Support the channel on Patreon to get extra content, and access to the source code of all projects!

And as always, have a good one!

#Painterly #Rendering #Unity #GameDev #IndieDev #devlog
Рекомендации по теме
Комментарии
Автор

I imagine the balance between temporal coherence and artistic style is the biggest challenge.

RooMan
Автор

I like the approach of splitting the image up into different layers of detail. It's kind of reminiscent of the actual painting process where you'd start with midtones blocking out the rough shape and then paint over them for the details. As always great video!

EishausRealNoFake
Автор

A really nice looking effect! I study color and the first time I realized that I could actually turn the values I used day to day into number values to do math with, it certainly opened up a whole different layer of understanding what I chose as one of my majors :D

ChristinaCreatesGames
Автор

May not have been your target, but I love the look of the scene repainting after the camera moves. Would be great for a game that encourages slowing down and taking time to observe.

AnmAtAnm
Автор

I think this shader could work really well when paired with a depth texture. You could use large, maybe even softer, brush strokes for the background, and increase the fidelity of the strokes for foreground objects.

As always, phenomenal video! Thank you for sharing

MattyDoesGameDev
Автор

This is such a cool effect! I think the way it struggles when moving at the end would actually be fantastic for a dream sequence of some kind in a game. Great stuff as always!

gamesplusjames
Автор

First! This is genius! I love your vids, continue like this :)

danilucky
Автор

using a sobel filter to find image directionality is really close to a solution I see a lot of shader devs using:
if you take the results of a sobel filter (X gradient and Y gradient), you can rearrange it into what is called a structure tensor:
X^2, XY
XY, Y^2
for which the eigenvectors describe the perpendicular and parallel directions of that texel's gradient, and the eigenvalues correspond to the magnitude of those directions.
Acerola's video on Kuwahara Filters uses this technique, which is where I first learned about it

GabeFrank
Автор

This is exactly what I was looking for! One thing that might make moving the camera less painful to the senses it to break up the painting into smaller pieces that are angled to the world geometry, which can stay inplace for a while. Distant objects could be combined into one painting while the closest objects get a little painting each. When the view changes enough a redraw and re-combining may be necessary.
I hope this makes sense...

StainlessHelena
Автор

This is incredible for only a few weeks of work! Definitely inspired me to start exploring compute shaders.

embergamedev
Автор

amazing! this marks a new era in game/interactive art dev

circamagic
Автор

The way I know to make a painterly look is the kuwahara filter
Its more blurring the image in a way that resembles a brushstroke than placing a stroke but achieve a similar effect

yanlucasdf
Автор

Dude you are probably the best video game channel on Youtube and that's saying a lot given the thousands of copycat, trash clickbait unoriginal buffoons that post on here. Thank you for all your hard work and you deserve 100x more subscribers

DroolRockworm
Автор

Glad to see you didnt stop making videos, love your work

lucariette
Автор

Far from useless! I found this extremely interesting and I appreciate the work you put into this

ndles
Автор

Yeah. I've seen that talk way back and it got me thinking... It could be maybe used to something else entirely? IDK what, but it's applying "shader look", but in 3D... Random example would be smoke effects. IDK if it would be better or worse than normal smoke effects, blood splatter effects, etc. but it would surely be unique.
Love that you are toying with it :)

GonziHere
Автор

I have zero experience with shades, but for finding the angle: Could you use a depth map, then have the strokes try to minimize the difference in depth beneath them. For example a long stroke on the horizon if placed vertically would have a huge difference in depth from top to bottom but placed horizontally it would have very little difference. love your videos btw and I'm glad you are keeping up with them ♥!!

whud
Автор

something else to consider is painted normal maps, like the absolute normal for the vert not the change from the surface. basically you paint brush strokes of flat areas, which then react to light normally. i saw it done by hand, but that could probably be done automatically, and each brush stroke could have a random value in a map used for color offsets and other stuff. it wouldn't stick off of stuff, but it would at least make each object already look a lot closer to the style, and then maybe hand placed (or again using code to figure out where the strokes are to place on the surface) quads which contain a brush stroke texture that sticks off of it.

morgan
Автор

Loved the way you built off the sobel filter from the previous video. The explanation of compute shaders was good as well. Ive always heard of the cpu being a university student, and the gpu being a classroom of middleschoolers. Who would get done a task faster depends on the complexity of calculations

TJGameDev
Автор

Anybody remember an obscure old proc gen MMORPG called Love from way back in 2010? That had a nice painterly shader, I always wanted to see more games take it up.

BalCleric
join shbcf.ru