#Midian

1040 messages · Page 2 of 2 (latest)

nova saddle
#

Oh are you working on the project too?

proper flare
nova saddle
#

I wish I had a proper artist on my team but I haven't even looked for one properly so its a possibility 😄

proper flare
proper flare
digital iron
proper flare
proper flare
#

gangster!

proper flare
#

got ma missile launchers back, much simplier configuration now with sequence scripting

proper flare
#

im still not happy with the smoke effect tbh. i wanted to use a line2d i could create a smokey shader with, but it hurts performance so much.

proper flare
plucky scroll
#

man the lighting on the smoke is so good

proper flare
#

I've been working on a series of specialized particle emitters. The problem I had with GpuParticles2D was that the node simply does too much, making fine control for highly specialized tasks extremely difficult.

In this video example, we have an emitter that specializes in motion. It will interpolate particles at fixed intervals along its motion. Its unaffected by frame rate and velocity differences, perfect for smoke.

proper flare
fallow mortar
#

Woah, this is really taking shape. I remember seeing the ship editor a while ago

#

Are the ships going to be editable by the player? or is it just for development

proper flare
fallow mortar
#

That makes sense, and you can always return to ideas in the future, Love the ship designs though! they're giving me starfox / no mans sky / metroid vibes

proper flare
#

I've been working on a solution to a problem that has plagued this game from the start

#

I'd say its one of the more advanced configs, but if you have a small layer on one side and the lighting looks all wrong, then, well, this is an option

#

You'll need to implement it yourself however, if you use your own structure shaders:

void light() {
    if (LIGHT_ENERGY == -1.0) {
        LIGHT = DEFAULT_IMPORTED_LIGHT;
    } else {
        LIGHT = vec4(
            LIGHT_COLOR.rgb *
            COLOR.rgb *
            LIGHT_ENERGY *
            max(0.0, dot(NORMAL, LIGHT_DIRECTION)),
            LIGHT_COLOR.a
        );

        if (LIGHT_EXPOSURE.z < 1.0) {
            vec2 rotated_exposure_direction = rotated(LIGHT_EXPOSURE.xy, -ENTITY_ROTATION);
            float scale = (dot(rotated_exposure_direction, -LIGHT_DIRECTION.xy) + 1.0) * 0.5;
            float threshold = 1.0 - LIGHT_EXPOSURE.z;
            
            if (scale > threshold) {
                LIGHT *= ease_quart_out((scale - threshold) / LIGHT_EXPOSURE.z);
            } else {
                LIGHT = vec4(0.0);
            }
        }
    }
}
proper flare
#

So, some improvements:

  • Repositioned the radial normal generator to be automatically centered on the ship's visual center of mass
  • Added explicit configuration for certain files to use a directed slope for normals
  • Exported normal maps as RGBAF16
  • Wrote a custom CTEX saver to support saving RGBAH format images at exported runtime
night plover
#

this looks so cool

proper flare
#

I'm my own worst enemy

#

these new half float normalmaps are just ... just .... 💦

night plover
#

i like the shading

proper flare
#

i wanted to add heat and explosion distortion effects, but screen reader shaders are pretty terrible on performance, so i might look into distortion maps. Fortunately HDR lets us use negative colors, meaning we can use a noise generated vector as an RG color (-1 to +1) with additive blending, allowing overlapping distortions to add to eachother and by extension cancel eachother out, just like wave interference.

Render the pattern to a viewport, then use a viewport texture with a single screen reader shader to distort the image

proper flare
proper flare
#
DistortionMap.AddLocalDistortion(
    new ShockWave {
        Position = Spectator.WorldMousePosition,
        Size = new(2500, 2500),
        WaveLength = 0.3f,
        Amplitude = 0.1f,
        StartAtPeak = true
    },
    0.5f // duration, omit if permanent
);
proper flare
plucky scroll
#

looks dope

digital iron
proper flare
#

This is Vascal, a prototype configuration language for Midian. We have yet to see if it will pull its weight, but hopefully it will prove to be a more suitable format than JSON for this game