Shield meshes

Spacecrafts, buildings and other 3D asset creation
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Shield meshes

Post by FluffyFreak »

Good but lets discuss "behaviour".

This one isn't obvious until you start so I'll give a quick overview of the way it currently works:
  • You purchase a shield generator, it starts with no-power
  • Shield begins charging, it is at 0% so it is completely invisible
  • 5% it is just becoming visible
  • 50% visible but still quite faint, there is no colour
  • 95% clearly visible like a pure white soap bubble (no chromatic aberration)
  • 99% to 100% PING!!! The shield goes invisible as it get to fully charged!
That's pretty much exactly how the old shield looked and worked.
Which isn't a surprise since I only changed what was rendered rather than any of the underlying logic regarding it's behaviour.

We can of course do much better than that, I just haven't yet because... um... I'm lazy?
So I propose the following:
  • You purchase a shield generator,
  • it starts with 10% power and a dull red colour all across the ship with a very faint soap bubble effect,
  • 25% and it's dark orange, the soap bubble effect is becoming stronger,
  • 50% progressing up through some kind of colour spectrum, still dark & transparent but with an ever stronger soap bubble,
  • 95% a grey-blue with pronounced and clear bubble,
  • 100% the soap bubble stays but the colour is clear now.
The reason I've suggested dark and transparent across the mesh is just to make it clear that everything is ok.
Whenever the ship is hit I'd adjust the value of a flag and reset a cool-down timer so that it was suddenly much brighter, say going from a dark-orange to bright-orange very briefly indicating you'd been hit by something.
Initially I'd just apply this to the entire shield but with a tweak it could also be used to indicate the origin of a hit.

The reason for the colour gradient is to give an indication of the strength of the shield, without relying solely on the opacity.

Finally I think that once you've got a shield it should stay visible at all times unless it's been completely wiped out, or actually below some very low power threshold.

What do people think?
nozmajner
Posts: 1079
Joined: Mon Jul 01, 2013 3:25 pm
Location: Budapest HU

Re: Shield meshes

Post by nozmajner »

An always on/visible shild might need an on-off switch in my opinion. Like for landing and docking and such.
For some reason I don't like the idea of an always visible effect. It's like a shouting to me.

I'd imagine it more like if it gets hit, then it's visible for a while then in disapears. Like it needs quite an amount of energy stored in a capacity or something, and it's linked to the sensors which turn it on for incoming projectiles.
But this way visually it's all the same shield effect like in every other game I think.

On the orher hand, In favour of an always on shield, it is a quite good protection against micrometeorites, so it makes sense to keep them on. Maybe there could be a subtle effect of small hits around it, which has it's intensity tied to the speed relative to the reference frame, and a more agressive effect on hit.

Anyway, if it's always visible then it should have some kind of subtle visual effect or something to avoid looking too static and glass like. Like some random noise on the fresnel strenght or something.
The overal strenght of that noise and the level of transparency could be a good indicator of shield strenght too, and could add to the gameplay too if it's limiting visiblity on low shield power (but only for a while after hits, so it won't block the view on a clean charge-up)
Tichy
Posts: 132
Joined: Tue Jul 02, 2013 12:00 pm

Re: Shield meshes

Post by Tichy »

nozmajner wrote:For some reason I don't like the idea of an always visible effect. It's like a shouting to me.
I agree.
nozmajner wrote:On the orher hand, In favour of an always on shield, it is a quite good protection against micrometeorites, so it makes sense to keep them on. Maybe there could be a subtle effect of small hits around it, which has it's intensity tied to the speed relative to the reference frame, and a more agressive effect on hit.
I like this idea.

I imagine to have a completely transparent shield when at 100% with some little animated effect on the surface that suggests its shape.
When it's energy drops, it could become a sliglty more opaque and coloured.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Shield meshes

Post by FluffyFreak »

So in general you'd prefer invisible unless being hit or shot?

I'll give it a try! :) Along with colour grading etc etc etc
shadmar
Posts: 25
Joined: Mon Jul 01, 2013 7:28 pm

Re: Shield meshes

Post by shadmar »

I like these effects on a shield : http://www.youtube.com/watch?v=6D4NGVTYIqo
robn
Posts: 302
Joined: Mon Jul 01, 2013 1:11 am
Location: Melbourne, Australia

Re: Shield meshes

Post by robn »

Yeah, the way the hit disperses from the point of impact. It looks good.

We might want to somehow use the shield mesh as the collision mesh if the shields are powered.
TheBob
Posts: 76
Joined: Sat Jul 06, 2013 6:04 pm

Re: Shield meshes

Post by TheBob »

Of everything I've seen in games, I still like the effect in I-war best: A very quick, mildly violent, roughly circular burst (actually, pretty similar to the shield effect seen in the model system demonstrator posted by robn some days ago, except a bit more fancy)
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Shield meshes

Post by FluffyFreak »

How do people do that effect? I don't know how to do it.
shadmar
Posts: 25
Joined: Mon Jul 01, 2013 7:28 pm

Re: Shield meshes

Post by shadmar »

If you just want to start it simple, you can just UV scroll a texture if you can pass a time uniform to the shader. (just an increasing number each frame or appspeed/60)

uniform float time;
..

color = texture2D(texture0,texcoords0+time); //scrolls x,y over time

color = texture2D(texture0,vec2(texcoords0.x+time,texcoords0.y)); //scrolls x only over time

color = texture2D(texture0, texcoords0*sin(time)); //zooms in/out texture over time
Last edited by shadmar on Wed Oct 16, 2013 7:12 pm, edited 1 time in total.
shadmar
Posts: 25
Joined: Mon Jul 01, 2013 7:28 pm

Re: Shield meshes

Post by shadmar »

Also if time is resetted on each hit you can do alpha aswell, fading the "hit" effect.
Post Reply