How to average color

  Рет қаралды 122,449

Gneiss Name

Gneiss Name

Ай бұрын

Talking about the pitfalls of averaging colors and how gamma and color space affects it.
Discord Link: / discord
BisectHosting was gracious enough to provide us with the Minecraft server we use for the community. If you are in the market for a server then you can use my code gneiss to get 25% off the first month when using any of their gaming servers.
bisecthosting.com/gneiss

Пікірлер: 270
@gneissname
@gneissname Ай бұрын
Small correction: I wrote and said square root and square in the wrong order when I was showing the conversion of the colors on the board. The values were correct, just wrote it wrong. Also 13/3 is 4.333, not 6.5.... i changed the divisor and didn't update the answer. just horrible. I added a little correction video to the appropriate place in the video.
@IFlyingTea
@IFlyingTea Ай бұрын
So it's "Computer Color is Broken" all over again
@gneissname
@gneissname Ай бұрын
I found that video while I was editing the first version of this and the candle explanation was so good I decided to replicate it and re-record the episode. The Minecraft gamma that I put back at the end was going to go there originally.
@tomikun8057
@tomikun8057 Ай бұрын
haha this reminds me of the captain disillusion video
@ImpossibleEvan
@ImpossibleEvan Ай бұрын
Human eyes are broken and computers don't pander to us
@raeplaysval
@raeplaysval Ай бұрын
or “human vision is broken”
@HappyBeezerStudios
@HappyBeezerStudios Ай бұрын
@@raeplaysval indeed it is. Green is the brightest and pink doesn't exist.
@christophfischer2773
@christophfischer2773 Ай бұрын
I am convinced Gneiss could make me watch paint dry.
@gneissname
@gneissname Ай бұрын
Challenge accepted.
@joaocomtil_
@joaocomtil_ Ай бұрын
@@gneissname He's gonna make a whole video about how drying paint changes slightly in color and the mechanics of paint drying with simulations in Minecraft (idk what i'm talking about)
@VGACGAEGA
@VGACGAEGA Ай бұрын
​@@joaocomtil_lol
@frostebyte
@frostebyte Ай бұрын
I'll watch, dead serious.
@aleksandrstinchcomb2840
@aleksandrstinchcomb2840 Ай бұрын
@@gneissname Oh goody, now I have something to look forward to! You've already accepted the challenge! No takesy backsies!
@SarahImperial
@SarahImperial Ай бұрын
To be honest, I wasn't expecting the geologist Minecraft KZbinr to solve one of my biggest problems with doing pixel art out of nowhere, but I'll be danged. I've always had trouble figuring out how to do gradients in my pixel art, especially with the low color palette, and now I've got a pretty quick shorthand for calculating good average colors/have a strong idea where to color pick if I don't want to math it out. So uh... genuinely, thanks a bunch!
@anj000
@anj000 Ай бұрын
If you are rotating pixel art there is better way of doing this then averaging the colors. See Rotation by Shearing
@rainbowcraft2694
@rainbowcraft2694 Ай бұрын
For palettes if I need a middle color I make a pixel of color A and then put color B over it at 50% opacity to get color C. I don't know how the result maths out but I can do it without having to math it out or anything. I can also fine tune the color manually afterwards. I'm curious if this method is accurate or not but don't want to do the math for it-
@GoodGamer3000
@GoodGamer3000 Ай бұрын
"Let's look at this *normal* Minecraft painting" 0:14
@ProfessorBuge
@ProfessorBuge Ай бұрын
Very and completely normal, 100% vanilla
@ZrSiO4-ZrSiO4-ZrSiO4-ZrSiO4
@ZrSiO4-ZrSiO4-ZrSiO4-ZrSiO4 Ай бұрын
Looks gneiss to me
@aliasd5423
@aliasd5423 Ай бұрын
Between you and Acerolla, I’m really glad we’re getting quality content on youtube about OKLAB
@gneissname
@gneissname Ай бұрын
Someone commented about Acerolla on another video and I wasn’t familiar, watched some stuff since and now subbed. I didn’t know they talked about Oklab.
@RePorpoised
@RePorpoised Ай бұрын
Yeah, his video “Your colours suck (it’s not your fault)” is the video about it. It more or less introduced and explained to me most of the general terms related to digital colour. Really appreciated that video.
@aliasd5423
@aliasd5423 Ай бұрын
@@gneissname like @reporpoised said above 👆, his “your color suck” video is pretty well made about it, he’s got a quick and punchy editing style with a lot of zoomer memes.
@morgan0
@morgan0 Ай бұрын
i’m glad it’s gotten more attention, it’s been a favorite of mine for years
@rav3nston3
@rav3nston3 Ай бұрын
i really hate when the messy interpolation averaging happens in pixel art stuff, it looks blurrier because it's not taking the most prevalent color and displaying that, it's just mixing them together and assuming that'll look right
@oblivion_2852
@oblivion_2852 Ай бұрын
There's a great video by matt parker about how skews can rotate images without messing up the overall image
@rav3nston3
@rav3nston3 Ай бұрын
@@oblivion_2852 oh i use aseprite, it's got a good system for scaling and rotating, might check that vid out though!
@Fire_Axus
@Fire_Axus Ай бұрын
your feelings are irrational
@riley1636
@riley1636 Ай бұрын
actually, they're completely rational. the world is not as good as it could be and they wish it was better. thats pretty in accordance to reason or logic.
@thezipcreator
@thezipcreator Ай бұрын
for pixel art just use Nearest Neighbor to resize. averaging colors together works well for large images
@bebcky
@bebcky Ай бұрын
Common misconception about sRGB gamma, the gamma curve of the sRGB color space actually comes from the response curve of a CRT display, not the human eye, the two just happen to be similar to each other
@rebmcr
@rebmcr Ай бұрын
That's not just happenstance, the three phosphors in CRTs were selected (from a much bigger pool of possibilities) BECAUSE they match closely with human cone cells.
@penguino118
@penguino118 Ай бұрын
CRT superiority is proven yet again.
@Soandnb
@Soandnb 17 күн бұрын
@@penguino118 I mean, that extends to modern display tech as well.
@Obsidianninja11
@Obsidianninja11 Ай бұрын
Cool. This is what you were talking about in that discord stream!
@gneissname
@gneissname Ай бұрын
Yeah, this is the sidetrack I got on while making the texture noise and then got sidetracked from this one to make the paining one.
@thespinningcube
@thespinningcube Ай бұрын
One misconception about gamma correction I'd like to address-cameras don't do gamma correction simply because applying a curve to the colors makes them look more accurate to our eyes. We do it because the monitor is applying the opposite curve to the colors being fed into it (approximately but not exactly an x^2.2 curve). The two curves cancel out. The camera stores the colors in a nonlinear space, and the monitor takes those values which are in a nonlinear space and makes them linear again. One benefit of this is that sRGB makes it so that the brightnesses corresponding to the RGB byte values appear to be spaced apart evenly to our eyes (they are distributed more evenly in perceptual brightness), which makes color banding less noticeable than if the relationship was perfectly linear. Another detail is that the sRGB curve was chosen because it closely matched the curve found in CRTs.
@orbik_fin
@orbik_fin 3 күн бұрын
Exactly. And the reason it's called gamma *compression* is that using the nonlinear mapping allows using fewer bits to represent color. 8 bits per pixel is enough in sRGB, but you need at least double that in linear color to avoid noticeable banding.
@sneekcreeper689
@sneekcreeper689 Ай бұрын
That love how when you first learned about color for computers you think oh it's just RGB. Then you get Gama thrown at you and color space .etc
@omayoperations8423
@omayoperations8423 Ай бұрын
Man these are always great videos.
@rocksocar
@rocksocar Ай бұрын
The way you visualise in Minecraft is so cool. I don't know how much of it is actually in engine or how much is editing magic, but either way you create a very immersive learning experience
@clangauss4155
@clangauss4155 Ай бұрын
It's a minor tangent to your intro, but maybe a young artist who catches this would be curious: needing to average color values of pixels when transforming an image only happens when the image is a raster or a bitmap. The same need doesn't exist for vector images.
@incription
@incription Ай бұрын
vector images are still rastered into pixels, and when you have edge cases like half a pixel being filled, or working with super sampling / anti aliasing, you may need to worry about color spaces
@Gandhi_Physique
@Gandhi_Physique Ай бұрын
@@incription Vector images and raster images are two different things though. Wouldn't that only come into play if you make the decision to rasterize the image? (I just learned this in a textbook lol, I don't know anything)
@official-obama
@official-obama Ай бұрын
@@Gandhi_Physique you need to rasterize it if you want to display it on a screen that has pixels
@incription
@incription Ай бұрын
you have to rasterize a vector image when you render it to the screen@@Gandhi_Physique
@stephaneduhamel7706
@stephaneduhamel7706 Ай бұрын
​@@official-obamabut that's something that only needs to be happening at the very end of the pipeline, after applying rotation and scaling. Rasterizing a vector image before rotating or scaling it would be a very dumb idea, for many reasons.
@matttryc1907
@matttryc1907 Ай бұрын
I always love these videos! In undergrad I worked on a project with a species of fish that would change color based on its behavior and social rank. I used an LAB color space to quantify the changes in their color through time!
@alfiemac9928
@alfiemac9928 Ай бұрын
1:55 I feel like this applies to alot of things in life, for example if your running away from one lion or two lions is much more important than 102 or 103 lions, same as if you lost 1kg or 2kg of weight is much more important than 52 kilos or 53 kilos.
@gneissname
@gneissname Ай бұрын
The real truths
@MagicGonads
@MagicGonads Ай бұрын
the lions example is true, the weight example is not what matters with non-linear scales is the absolute reference frame, not the relative reference frame the significance of a loss or a gain of 52kg vs 2kg depends on how much you already weigh e.g. if you are 50kg, a 52kg loss would mean you... have negative mass? with the lion example, if our measurements began at -100 lions, then the difference between adding 102 vs 103 lions would be quite significant and the difference between adding 1 or 2 lions would not. You count lions starting at 0 lions whereas you didn't specify where the loss/gain began in the weight example.
@KindredKin
@KindredKin Ай бұрын
Exception when there's threshold values. E.g. you may be able to barely lift 40kg, but 41kg is too much and you injure your muscles instead.
@MrZomboman101
@MrZomboman101 Ай бұрын
these videos are always so intresting, i love how u can be talking about a topic that has nothing to do with minecraft but still have it perfectly fit with the game
@jesteh
@jesteh Ай бұрын
You put a lot of effort into your content. You also have a lot of passion. I think that's awesome!
@deikay5414
@deikay5414 Ай бұрын
super super interesting stuff. this might sound like an insult at first, but the video felt really long. not because it was boring, but because you crammed so much information in the first three minutes i thought the video was gonna end. there aren't many videos that i find have so much helpful info. keep it up!
@nathanitet
@nathanitet Ай бұрын
Your videos are so interesting, I really enjoy your style of content!
@bananajuicetech
@bananajuicetech Ай бұрын
Love this deep dive. I'm always game for more color space talk. Thanks for sharing.
@m4jci6
@m4jci6 Ай бұрын
These videos about color are so fire I can't get enough of them.
@d3crypt3d
@d3crypt3d Ай бұрын
i love your freaking good videos about gamma/color
@ary0oYT
@ary0oYT Ай бұрын
Such a banger video. Keep up the good work
@jikkohelloua5922
@jikkohelloua5922 22 күн бұрын
I just love, how everything in your videos make perfect sense, and you seem like a very educated person, and then spontaneously 13/3 is 6.5... that makes me laugh so god damn hard
@bengoodwin2141
@bengoodwin2141 Ай бұрын
I had an idea that might make for a good geology video. Given that the overworld is explicitly not made of granite, andesite, diorite, basalt, tuff, or calcite, and that deepslate is some kind of slate or other sedimentary rock under high pressure, and the evidence of stone being some kind of carbonate rock due to the abundance of caves, and volcanic activity only at the deepest points of those caves, I think a plausible explanation for the overworld's strange geology is that the entire world as we know it is made up of what used to be layers of coral-like organisms, hundreds of meters thick, and that the deepslate layer was once the ancient seafloor of a water world.
@LarsDonner
@LarsDonner Ай бұрын
I really hate the term "gamma correction". There is nothing correct about it and the term itself doesn't tell you weather or not it means applying or removing the gamma curve. IMO we should just say linear or gamma space, which is much clearer.
@decb.7959
@decb.7959 23 күн бұрын
The term "gamma encoding" is what I use, since the point of gamma is to store and transmit color. It helps me remember that my program needs to decode color values into linear space on the way in, and re-encode them into gamma space on the way out (then the monitor will decode them again when it displays them).
@DakkyW
@DakkyW Ай бұрын
As a programmer and a color science & art nerd, your vids are so nice to see and learn from
@maxkasters2198
@maxkasters2198 20 күн бұрын
Man, I love this channel +sub
@Gandhi_Physique
@Gandhi_Physique Ай бұрын
World record for fastest intro ever. Ngl it sounded like I joined part way in the video, then I realized you said "Gneiss here" but fast lol.
@VoidySan
@VoidySan Ай бұрын
Bro, your teaching style × high quality Minecraft visual examples is. Like. Incredible for my soft litl brain.
@paper8635
@paper8635 Ай бұрын
1:59 reminds me I should listen to Bill Evans again, Thanks! Also, when showing the better average at 2:43, the arch on the graph reminds me of Lambert's Emission Law, even though that has more to do with value rather than color for art related purposes.
@daktotathecolossus7404
@daktotathecolossus7404 Ай бұрын
These are so fascinating
@soupsoup7831
@soupsoup7831 Ай бұрын
I love your videos on colors
@docopoper
@docopoper Ай бұрын
At this rate you're going to do a video on premultiplied alpha.
@tiddly5
@tiddly5 Ай бұрын
if i remember correctly, captain disillusion did a pretty good video on that
@TheWorstAlex
@TheWorstAlex 11 күн бұрын
OMG I LOVE THIS STUFF SM
@Albert-yu1cg
@Albert-yu1cg Ай бұрын
yay new colour video
@Matojeje
@Matojeje Ай бұрын
I'm excited that we're going down this rabbit hole
@fibbooo1123
@fibbooo1123 Ай бұрын
Your videos about color are great! Any chance you could do one about how colorblind eas changes the perception?
@2JRaz
@2JRaz Ай бұрын
I think some gneissname Minecraft calculus explanations would be very interesting to watch. Could be good for trying to learn those concepts too, especially for multivariable calculus with 3 Dimensional concepts! Just a suggestion
@coldwaterstudio3658
@coldwaterstudio3658 Ай бұрын
Holy fuck I need this thank you so much. Thank you for your beautiful brain.
@officialnolimitcrew8960
@officialnolimitcrew8960 12 күн бұрын
The amount of knowledge in this minecraft video.... waiting on that geo one💪
@almicc
@almicc Ай бұрын
Very neat demonstrations, and here I thought you just did geology stuff
@Neptoid
@Neptoid Ай бұрын
If this man did math animations or video essays about the math or code it would just become my main resource on learning about computer color
@givowo
@givowo Ай бұрын
Huh neat. I'll take this into account when working with shaders
@Mr6Sinner
@Mr6Sinner Ай бұрын
The best kind of correct, indeed.
@maxmanium2032
@maxmanium2032 Ай бұрын
Been messing with Doom's color palette for a while now. It taught me a lot...
@greenberrygk
@greenberrygk Ай бұрын
I love this guy
@flatikk
@flatikk 5 күн бұрын
you could say that the playback slider of this youtube video is a uniform space, except not relative to color, but to instanity, because linarly to how far I get into the video it perceptually starts feeling more like a fever dream
@slavdey
@slavdey Ай бұрын
Damn those MC visualisation looking sick
@oliviareillyyoutube6652
@oliviareillyyoutube6652 12 күн бұрын
I LIKE THE “no” IN THE TITLE THO IT MAKES ME BRAIN HAPPY
@aepokkvulpex
@aepokkvulpex Ай бұрын
Ohhhh this is definitely a big pet peeve. I think I've seen Captain Disillusion do a video on something very similar to this very topic, iirc "the horrors of the alpha chanel"? If you haven't seen it, I would highly recommend. I think you'd like it and a few of his other videos tbh
@EliasWolfy
@EliasWolfy Ай бұрын
2:58 OMG, this really looks like a mix of the two colors better than the color on the left side!
@thomasfplm
@thomasfplm Ай бұрын
When you started talking about using the averages of numbers, what I thought was that it would maybe be better to use a logarithmic scale for the average. Like the example you gave with the candles, my guess is that we would perceive proportional increases. Adding adding 4 candles to already existing 4 candles would have about the same effect as adding 1 candle to an existing candle.
@quinntaylor1170
@quinntaylor1170 Ай бұрын
This man is a genius with display entities.
@OfOodlesAndNoodles
@OfOodlesAndNoodles Ай бұрын
as a web developer that still doesn’t quite get the CSS color v4 spec, i seriously appreciate these videos
@CraftMine1000
@CraftMine1000 Ай бұрын
It's been fun seeing the arc from geologist to colorist
@Alex_192.
@Alex_192. 22 күн бұрын
“No matter what, there is always averaging” *Skew rotating joined the chat*
@The_NSeven
@The_NSeven Ай бұрын
Color, math and Minecraft. 3 of my favorites :)
@Aphelia.
@Aphelia. Ай бұрын
"Let's look at this normal Minecraft painting" yeah this painting is so gneiss
@greenstonegecko
@greenstonegecko Ай бұрын
=D he's back with more
@discohirsch
@discohirsch Ай бұрын
This was so helpful even tho I only gonna use it for Photoshop
@VGACGAEGA
@VGACGAEGA Ай бұрын
I never thought i could learn so much from minecraft
@HappyBeezerStudios
@HappyBeezerStudios Ай бұрын
It's been one of the things that has been a pet peeve for me since basically forever. So far that I tend to retouch after averaging just to fix the issue. And yes, our perception is indeed logarithmic. It is important to know if there is 1 lion or if there are 3. But the difference between 10 lions and 13 lions isn't important, it's still a lot of lions coming after you. And the most sensitive area of the human eye is in the green area. Not only is there an overlap of different cone cells, but rods also have their peak there. Oh and many games have separate brightness and gamma sliders. And they do what their name suggests.
@ThatJay283
@ThatJay283 Ай бұрын
for colour spaces, it also depends on what kind of thing you're trying to show as to what colour space is best. for example, to simulate what colour you'll get when you mix 2 different lights together (or really anything to do with lighting or transparency) you'll wanna do this in linear RGB space rather than sRGB or OkLab
@robdoghd
@robdoghd Ай бұрын
reminds me of ‘computer color is broken’ from minutephysics
@goat.95
@goat.95 Ай бұрын
cool video, i love colors
@Empyrean55
@Empyrean55 Ай бұрын
I think the music in combination with the moving video and talking is a bit much when you're explaining things gneiss! 🤔
@bugpocket
@bugpocket Ай бұрын
Thought this was gonna be advice on how to avg color.
@Gaston731r
@Gaston731r Ай бұрын
can you make a video of the blocks in grayscale?
@cephelos1098
@cephelos1098 Ай бұрын
"But no matter what, there is always averaging" Worth noting that there are ways to get non 90° rotations without any averaging or color changing at all (like doing 3 shears), but outside of authentic low-resolution pixel art, it's fairly limited in actual use
@NoenD_io
@NoenD_io 14 күн бұрын
🖥️💻"Beep boop beep we cant avarage🤖🤖🤖🤖🤖"
@dliessmgg
@dliessmgg Ай бұрын
7:15 i understood all the arguments in the video but ngl to me the blending without gamma still looks better to me
@inv41id
@inv41id Ай бұрын
This is probably a case of being used to seeing incorrectly blended colours everywhere, since it is the default or even the only option in a huge amount of software
@m13253
@m13253 Ай бұрын
3:27 The average gamma of sRGB is actually 2.2 instead of 2.4. Although there is 2.4 in its formulae, it averages down to 2.2.
@ThatOneSaltyFilipino
@ThatOneSaltyFilipino 13 күн бұрын
I wonder though. Is there literally any way to convert video into a sort of sRGB space so that it gets accurately shown on web browsers and web apps?
@nikicherry1234
@nikicherry1234 Ай бұрын
this is useful
@elongated_muskrat_is_my_name
@elongated_muskrat_is_my_name Ай бұрын
If you are shrinking pixel art do you really want to be averaging or is there a better way, like some kind of median filter? that way it will be picking one of the colours present in the original image rather than mixing them
@samgrainger1554
@samgrainger1554 20 күн бұрын
I feel like Ive beem dueped into learning
@Vexcenot
@Vexcenot Ай бұрын
what's the font you are using seen in the video?
@gneissname
@gneissname Ай бұрын
Some form of Bahnschrift
@Banjoei
@Banjoei Ай бұрын
You said that photoshop by default uses the darker colors, is there a way to make photoshop use a different method?
@rainbowcraft2694
@rainbowcraft2694 Ай бұрын
I just put down a color and then put the second color over it at half opacity, then color pick the result. That gets what I assume is an average between the colors. It's always lighter than the darker color and darker than the lighter color.
@DudeWhoSaysDeez
@DudeWhoSaysDeez Ай бұрын
have you made your own minecraft world/server/mod?
@KazmirRunik
@KazmirRunik Ай бұрын
Oh man, I went down this very same rabbit hole recently when investigating why they changed the official color scheme of Neptune, because when I look at Neptune through a physical telescope, I don't see the image that's now being pushed (though I also don't see the dark blue, either, it's more something in between). The new image of Neptune came from a reprocessing of the image's gamma correction, which could be what our eyes see from up close, but from far away where less of its reflected light reaches us & it gets diffused by the atmosphere, it blends more into the darkness of the sky. It does look at least noticeably different from Uranus when looking at both of them from the ground.
@U.Inferno
@U.Inferno Ай бұрын
I was curious how Geometric Mean (multiply then take the square root instead of add then half) would apply to colors so I randomized two and calculated the geometric: Color 1: #1a7775 Color 2: #21500a Geo Mean: #1D6222 The Geometric mean will never be brighter than the Arithmetic mean. sqrt(xy)
@Soandnb
@Soandnb 17 күн бұрын
Just wait until you discover the joys of a "Scene-referred" color space. Or, in other words, a colorspace with no limit to how bright a color can get. It's the "color space" real life is in, and it's useful in 3D rendering for calculating lighting since there's such a wide range of brightnesses you can have. I've adopted it for my 2D art and it makes it remarkably easy, combined with a linear gamma and a tonemapper, to make great looking lighting with minimal effort.
@IanZainea1990
@IanZainea1990 12 күн бұрын
The charts are completely confusing. But this has been figured out. Nuke, the software used for compositing in film. Converts everything to linear color space. So the average is just the average. Then you convert the whole finished thing back to whatever colorspace.
@decb.7959
@decb.7959 23 күн бұрын
You mentioned averaging colors to scale and rotate an image. If you want yet another extremely deep topic filled with subtle misinformation, you can look into filtering, sampling, and antialiasing, which is the math concerning how, exactly, you combine those pixels. Here's some base-level knowledge: - The Sampling Theorem says that for any signal, you can perfectly reconstruct it from a series of samples, as long as the sample rate is greater than twice the highest frequency in the original signal. - For audio, that means using an analog low-pass filter during recording tuned to half the sample rate, and then reconstructing the signal with something like a Sinc filter. Since humans can only hear up to around 20 kHz, you only really need to sample at around 40 kHz (although most audio is sampled slightly higher because low-pass fillters aren't 100% perfect). - For images, it's a bit harder since there is a potentially unlimited frequency (a checkerboard from far away, a hard edge, or a very small object are all examples of high-frequency features). Applying a low-pass filter to an image essentially means blurring. Many cameras actually have an optical low-pass filter, which is just a slightly blurry piece in front of the sensor. For video games, it's a lot harder, since there isn't a real-world analog input to start with. You have to sample at as high a frequency as you can, which means rendering more samples than there are pixels on the screen. Obviously that gets slow quickly, so there are various techniques that try to approximate the result or gather the samples over multiple frames. Sampling is also needed when performing operations on images, such as scaling or rotation. In this case it's typically called resampling. - Image sampling is a bit messier than audio sampling, because if you use a pure-frequency approach such as Sinc, you end up with distracting ringing artifacts. On the other hand, a filter that is too soft will make the image appear too blurry. Typically the Mitchell and Lanczos filters are considered pretty good if you can spare the processing power in your use case, however they are still not perfect, and it depends on use case. - Just averaging the 4 pixels that land in a square is called box filtering, and is one of the lowest-quality filters. It still leads to lots of aliasing in many cases. However, many programs use it because it's simple and it runs fast, leading to many people believing that there's no reason to use anything else. It's what's used in most real-time applications such as vector graphics rendering, web browsers, video games, etc. I would recommend the following articles if you want to know more: - Xiph's article "24/192 music downloads and why they make no sense" - Has some introductory information about audio sampling. - Alvy Ray Smith's Microsoft memo "A Pixel Is Not a Little Square" - A very good (although from 1995) article about many of the misconceptions about sampling and filtering. - The ImageMagick docs page on resampling filters - Provides an overview and comparison of some different resampling filters, as well as a conclusiong on good default choices at the end.
@activeturtle770
@activeturtle770 24 күн бұрын
Probably a weird question but what is the best way to create a gradient between two colors that look "visually" good using programming.
@stephaneduhamel7706
@stephaneduhamel7706 Ай бұрын
Mathematically, It shouldn't matter at all in which linear color space you calculate the average. That's the whole point of linearity. The results should be the same. Let's take two linear color spaces, let's call them (A B C) and (X Y Z) for example. A,B,C,X,Y, and Z are vectors representing the primary colors of these spaces. Now let's take and arbitrary color D. It has cooordinates (a, b, c) in colorspace (A B C), and (x, y, z) in (X Y Z) D = a*A+b*B+c*C = x*X+y*Y+z*Z |a| |x| D = (A B C). |b | = (X Y Z). |y | |c| |z| Now, E = d*A+e*B+f*C = u*X+v*Y+w*Z (coordinates (d,e,f) in (A B C), and (u, v, w) in (X Y Z) Then, if we take (D+E)/2, we get (a*A+b*B+c*C + d*A+e*B+f*C)/2 = A*(a+d)/2 + B*(b+e)/2 + C*(c+f)/2 |a| |d| |a| |d| |(a+d)/2| (D+E)/2 = 1/2 *( (A B C) .|b| + (A B C).|e| ) =1/2* (A B C). ( |b| + |e|) = (A B C) . |(b+e)/2| |c| |f | |c| |f | |(c+g)/2| so the average has coordinates ((a+d)/2, (b+e)/2, (c+f)/2) in colorspace (A B C) Using the same resoning, it also has coordinates ((x+u)/2, (y+v)/2, (z+w)/2) in colorspace (X Y Z) And assuming matrices (A B C) and (X Y Z) are inversible, you can convert the coordinates of the average from on space to the other and see that you end up with the same result as if you calculated in the other colorspace to begin with. |(a+d)/2| |a| |d| |a| |d| |x | |u| |(x+u)/2| (X Y Z)^-1 . (A B C) . |(b+e)/2| =1/2 * (X Y Z)^-1.( (A B C) .|b| + (A B C).|e| ) =1/2( ( (X Y Z)^-1.(A B C). |b| ) + ( (X Y Z)^-1.(A B C). |e|)) = 1/2(|y | + |v|) = |(y+v)/2| |(c+g)/2| |c| |f | |c| |f | |z | |w| |(z+w)/2| In both spaces, you can just average the coordinates to get the "true" average color. Which makes me wonder why the OKlab average is different than the linear sRGB average. Maybe OKlab isn't linear enough?
@stephaneduhamel7706
@stephaneduhamel7706 Ай бұрын
Ok I checked OKlab's specs, it is NOT a linear color space. So no wonder the averages are different. (Also sRGB eotf approximates to gamma 2.2, not 2.4, this could also affect the results, but probably not as much as oklab's non-linarity)
@decb.7959
@decb.7959 23 күн бұрын
Gamma is just a compression method, so that dark colors (where you demonstrated the difference matters more) cover more of the 256 possible values. The monitor undoes the gamma function, so it's still outputting linear values (apparently this was just a useful side effect of CRT monitors, and is why gamma exists in the first place). It is objectively incorrect to do any operation to colors before they have been decoded from gamma space, and yet that's exactly what most software does. Example of intended usage of gamma: I'm working on a Minecraft shaderpack. The textures are stored in PNG, which uses sRGB space and is thus gamma encoded. The first thing my code does when it reads a texture value is raise it to the power of 2.2, bringing it back into linear space. No information is lost here, since my shader is working with 16 bit floats. Once all of the calculations are done, such as lighting and post-processing, the very last step in the shader is to encode the result into gamma space by raising it to the power of 1/2.2. When the monitor receives the value, it converts it back into linear space and displays it (from what I know, most software and monitors just use a power of 2.2, rather than the piecewise linear / 2.4 curve specified in the standard).
@WingSun
@WingSun Ай бұрын
The new sethbling
@latrapa918
@latrapa918 Ай бұрын
0:01 looks like Minecraft terracotta
@Googahgee
@Googahgee Ай бұрын
Because that’s what it is
@Leoiswhoo
@Leoiswhoo Ай бұрын
you lost me but the visuals go crazy
@maec7391
@maec7391 Ай бұрын
goat
@ShinoSarna
@ShinoSarna Ай бұрын
It might be because I'm tired but I have no idea what this video is about. I understood the color averaging thing due to srgb no problem, but I have literally zero idea what the 3D graphs were supposed to show and what was plotted on them.
@givrally7634
@givrally7634 28 күн бұрын
The same problem happens when you want to create a color gradient. If you simply interpolate linearly between the two colors, then the middle is often kind of greyed and washed out. That's because, if you take any two points in a cube, the average of the two points is often closer to gray than the two points. However, if you interpolate over HSV or HSL instead, you get a much more pleasing result that keeps its luminance and saturation ! The problem is that if the hues are very far away, or on different ends of the spectrum, you might have a gradient that goes red to yellow then green then blue then pink, instead of the red to pink gradient you wanted. It can be solved with a bit of cycle logic, but not from, say, 0° to 180°. I think there's some merit to a nuanced approach between the two, where you interpolate both in RGB space and in HSV space, then convert both colors to RGB and do a weighted average, with the weight being a chosen parameter. 0 gives you full HSV, 1 gives you full RGB, and between the two is a gradient of gradients.
@Thebiggestgordon
@Thebiggestgordon Ай бұрын
Is there any research in conceptual colour spaces for people with CVD? I have deuteranomaly and I'm really interested in knowing how my colour space is different to others.
@gneissname
@gneissname Ай бұрын
I have wanted to make some videos on CVD for a while now. I think it would be interesting to see how the space changes depending on the deficiency. Since this is just someone I do as a hobby after work and family stuff, it takes me longer than I would like to get through ideas.
@gneissname
@gneissname Ай бұрын
On a related note, I started doing this video with red and green instead of the magenta cyan. I changed so it would be better for people with r/g deficiency, the most common. Interesting though that if I kept it in, it should still get darker in the middle of the average with the gamma still included.
@Thebiggestgordon
@Thebiggestgordon Ай бұрын
@@gneissname Thanks for making that choice, a lot of creators don't and produce the most awful visuals with greens and oranges and reds that i'm supposed to tell apart. I know you're doing this for fun and CVD absolutely wouldn't be on your list of priorities if you don't have it, but if you know of anyone who's done that sort of research I'd love to hear about it.
@ggsap
@ggsap Ай бұрын
Have you seen minutephysics' video about averaging computer color?
@lobotomiepraktikant1128
@lobotomiepraktikant1128 Ай бұрын
I am not sure if using HSV colors is easier for averaging, since the hue is by definition separated from all sorts of saturation and brightness.
@emilianozamora399
@emilianozamora399 Ай бұрын
Hey gneiss I’m asking to see what rock type you think netherrack is Context is that this total overhaul mod called terrafirmacraft adds 20 rock types to the game based on real rocks, and these can be used to knap tool heads with stats based on the type of rock they’re made from, being sedimentary, metamorphic, igneous extrusive and intrusive. The dev has been making an addon to implement the nether in the same theme and while playtesting I realized that netherrack and black stone don’t have rock types assigned because of course they don’t they’re fictional stones, but this also means we can’t knap tool heads from them. Someone theorized that they’re either igneous intrusive or metamorphic in the context of the nether being deep in the crust and very hot making it either or depending on how long the stone has been formed
@gneissname
@gneissname 23 күн бұрын
hey, I think blackstone can be a gabbro. Netherrack has lost some off its meatiness over the years but i think it still should have some organic component maybe. There are some thermophiles that are also sulfur reducing microbes.
Why does Minecraft keep adding new color formats?
5:02
Gneiss Name
Рет қаралды 74 М.
How does Minecraft ore compare to Earth
26:01
Gneiss Name
Рет қаралды 286 М.
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 17 МЛН
MEU IRMÃO FICOU FAMOSO
00:52
Matheus Kriwat
Рет қаралды 13 МЛН
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 14 МЛН
SM64’s Unopenable Door Has Finally Been Opened!
11:49
pannenkoek2012
Рет қаралды 1,9 МЛН
Making a difficult game about fitting in - Acerola Jam 0
19:17
jess::codes
Рет қаралды 203 М.
Uhhhhh... Hmmmmmm...
8:09
Phoenix SC
Рет қаралды 729 М.
The rarest move in chess
17:01
Paralogical
Рет қаралды 1,1 МЛН
Minecraft Education Edition’s Failures
23:08
Gneiss Name
Рет қаралды 639 М.
I coded even more of your STUPID ideas in Minecraft
14:33
Element X
Рет қаралды 1,6 МЛН
A perceptual color space in Minecraft (Oklab)
15:38
Gneiss Name
Рет қаралды 158 М.
I Made a Neural Network with just Redstone!
17:23
mattbatwings
Рет қаралды 592 М.
The One Company That Owns 2,390 Colors
9:32
Half as Interesting
Рет қаралды 495 М.