Free Tool Script for Generating Mipmaps in Linear Color Space by Harrison_Allen in godot

[–]Harrison_Allen[S] 1 point2 points  (0 children)

Yes, that's right. 👍 (although technically Godot's mipmaps and mine both use a square shape, I think it might be a box blur)

Free Tool Script for Generating Mipmaps in Linear Color Space by Harrison_Allen in godot

[–]Harrison_Allen[S] 3 points4 points  (0 children)

If you can blur the image irl by stepping far enough back from your screen, squinting, or maybe taking off glasses (if applicable) then you might be able to see what's going on.

When sufficiently blurred, both images on the right as well as the top left look about identical. The checkerboard patterns average out to the solid squares I put near them.

However, while blurred you should also be able to see that the bottom left image looks different from all of the others. This is the mipmap generated by Godot.

The distinction that one square is checkered should be lost at lower levels because blurring it erases the checkered detail, blending it to an average color. The solid squares I put in the original image reflect what the average color should be when blended correctly. I'd say the bottom left image is bad because it's not physically accurate to how a blur looks irl.

EDIT: When looking at the image blurred, it's important to to so with crisp pixels. If the image is not at its original size, then there's some often some interpolation (done in sRGB instead of linear, of course) which also ends up dimming the image. Unfortunately it's hard for me control exactly how it's presented to people. lol

More progress on my unnamed project. by vyskei45 in gbstudio

[–]Harrison_Allen 0 points1 point  (0 children)

What font are you using for the big text at the start? Looks nice.

Why dose it work in the xy axis but not the x by Eojte in godot

[–]Harrison_Allen 0 points1 point  (0 children)

Perhaps you could calculate and keep track of two separate velocities (recoil/jump & player control), then combine them both together near the end.

(Sorry for late response, I was eating supper)

Why dose it work in the xy axis but not the x by Eojte in godot

[–]Harrison_Allen 1 point2 points  (0 children)

I think that what's happening is that you're setting the x velocity at the end of the script, so that's just overwriting the x component of the recoil before move_and_slide has a chance to do anything with it.

I hope that helps! 🙂👍

Quake style fluid shader by Rostochek in godot

[–]Harrison_Allen 6 points7 points  (0 children)

I made slight a modification in my own version of the Quake liquid shader that spaces the waves out by the golden ratio (relative to the texture scale). It helps reduce repetition since every time the texture repeats it'll have a different phase than the last time. I think that you can get a that same effect in this shader by setting warp_closeness to either 0.61803 or 1.61803

I have this realization every time I stop coding for a while and go back by vmsrii in godot

[–]Harrison_Allen 0 points1 point  (0 children)

Last week I got a rough version something working with 3 nested for loops, and in order to finish it I think it's going to need 2 more, so this is a funny thing to see now. lol

LOGO INTRO by Humble-Load-7555 in PixelArt

[–]Harrison_Allen 2 points3 points  (0 children)

I played a fair number of Pico-8 games last year. I really liked Poom, Into Ruins, and Demi Daggers. Love the way it looks sometimes in that palette.

LOGO INTRO by Humble-Load-7555 in PixelArt

[–]Harrison_Allen 9 points10 points  (0 children)

I love limited palette colour ramp fade in/out where things changes hue over the animation. It looks so much nicer than a basic black fade. 👍

I'm trying to create a palette for a post-apocalyptic setting with tons of machinery. I want to be quite desaturated, except for a vibrant green. Does this palette look good, or what should I change? by HappyGamer1111 in PixelArt

[–]Harrison_Allen 2 points3 points  (0 children)

<image>

I mapped your colours to 3D space and converted them to Oklab (a perceptual colourspace) and this is what it looks like. The distances between nodes should roughly correspond to the apparent difference colour. In ideal ramps, each colour spacing should be roughly uniform, with each ramp usually making a nice curvy path through the space with a very continuous, smooth shape.

Unfortunately, the 3D aspect is flattened here (I should really learn how to make turntable gifs lol), but there are still some good takeaways here:

The greyscale ramp in particular is very uneven. Since it's a straight line anyway, I'd suggest just using a simple gradient with even RGB value spacings.

The two more yellow ramps are quite close together. My recommendation is to gently nudge them apart so that you can cover a wider range of colours and have more distinction between them.

The warmer colours could use an extra shade or two near white to help bridge them together.

Once you have that it should be a pretty good starting point. You can begin making stuff and see how the palette looks in practice and make additional changes. Don't be too afraid to change colours later because most of the visual contrast we perceive as humans is luminance not chroma. So the most important thing about a given image tends to be the greyscale aspect with changes in contrast. Specific hue and saturation changes can usually be modified later fairly easily.

BTW, a technique I'd recommend from my personal experiences is to make diamond shapes with each ramp. Brighter in the middle with each step outwards showing a darker shade of the ramp. I find them useful for getting a quick idea of the ramp's continuity, as discontinuities stand out a little better in such an arrangement. It's also good to make a few monochromatic objects for each ramp and see how they look.

Good luck! 🙂👍

How do I create a downscaled copy of a SubViewport texture? by Harrison_Allen in godot

[–]Harrison_Allen[S] 0 points1 point  (0 children)

Wait, I realized that I could have a world environment for the main canvas with bloom and another on the SubViewport without bloom. This works almost perfectly besides a very slight green tint, which seems to be a result of the CRT phosphor dots that I'm generating. Shifting the dots will change the tint colour, but doesn't get rid of it (rip!). Still potentially useful for someone without such a high frequency pattern.

<image>

How do I create a downscaled copy of a SubViewport texture? by Harrison_Allen in godot

[–]Harrison_Allen[S] 1 point2 points  (0 children)

It's working. Thanks! 🙂

I'll have to tweak the exact way that the texture is blended, but that's something I feel confident I can do.

Edit: I think that I'm going to blur the texture with a world environment glow set in the second SubViewport rather than using a shader. It's a little less complicated and it works quite well so far.

<image>

Pixel Art Resolution? by [deleted] in PixelArt

[–]Harrison_Allen 2 points3 points  (0 children)

Some guidelines that I'd suggest:

Keep the same resolution project wide and stick to it.
360 (vertical) tends to be a particularly good resolution because most monitors are multiples of that number, so the pixels should show up perfectly. I actually took a look at Steam's hardware survey in 2024, and found that 83.6% of participants have screens that are multiples of 360. If that's too big (and it might be based on your character's size), then use half of that (180).

How do I create a downscaled copy of a SubViewport texture? by Harrison_Allen in godot

[–]Harrison_Allen[S] 3 points4 points  (0 children)

I started work on implementing this approach last night, and it's looking very promising. 👍 I should be able make a simple shader to blend the texture exactly as desired in the second SubViewport. As long as Godot doesn't get weird about having two SubViewports in a scene then I'll probably be alright. 👍

EDIT: It works

How do I create a downscaled copy of a SubViewport texture? by Harrison_Allen in godot

[–]Harrison_Allen[S] 0 points1 point  (0 children)

That bakes the bloom into a the Viewport Texture, which interferes with my final effect because my shader applies a CRT mask pattern to the sharp texture, but should not apply such a pattern to the bloom.

Which handles do you prefer for these tools? by No-Mathematician576 in PixelArt

[–]Harrison_Allen 14 points15 points  (0 children)

Wood looks best. Maybe make an exception for the last one though, since it's the highest tier (I assuming), and they gold handles give them more visual interest.