Jump to content
Spectator6

Use 'flat' character models when rendering at a distance, to help with camouflage

Recommended Posts

Spectator6

Hello devs! Here is another suggestion to consider when it comes to tackling the age-old problem of effective camouflage when rendering characters at a distance where there is no grass layer or shadows. I've included text in the image gallery, so let's get going!

rect4567.thumb.png.babc15f5e2f78c835b4fa20a4119c12d.pngrect4569.thumb.png.a67abf5f888434fa656ba4f3a1a0f73c.png

rect4632.thumb.png.10e750d068373033af651293f0458e7b.pngg3362.thumb.png.f4e9ca533276aebd7f1a821778dfcad0.png

rect4654.png.81cc76f0e282c97a85048a220e9297fc.png

Edited by Spectator6
reorder images
  • Upvote 2

Share this post


Link to post
Share on other sites
Spectator6

In case it's not immediately clear in the images, the color swatches off to the side represent color-grabs from the green circled areas.

Share this post


Link to post
Share on other sites
Spectator6

What we're dealing with here is the technical matter of pixel contrast. At a distance, there are only so many pixels that can be used to represent a player model. This example at a much greater distance may showcase it better:

FmkGDX1.png.f0d8ada65b44f9214a4ccd99c62c3488.png

As you can see, the player model looks much darker in comparison to the surrounding terrain than it should. Is it possible this is because the "second pass" for shading inadvertently causes the dark colorations to "win out" and dominate the character model? In reality, the camouflage's coloring would dominate what we're able to perceive.

What would it look like if a primary color from the character model's camouflage were present instead? (Please excuse my poor use of spray painting, but hopefully it demonstrates it well enough)

hzOBFBH.png.14c08ccf92e2dfae9c9cb27e78d9740d.png

I'm essentially just trying to show what a character model might look like with its shading removed, again, please excuse my poor editing)

Yn9wZAC.png.f2bf9138c70450b398a476dfe8dbdf1e.png

I wonder then... Could telling the engine to NOT to add shading on distant player models allow the engine to use more appropriate pixel colors that better resemble the colors of the camouflage? 

It may not work out as well as I'm imagining here, but maybe it will spark some other ideas toward tackling the issue?

Edited by Spectator6

Share this post


Link to post
Share on other sites
CStarker

You propose a great solution to a major problem. This needs to be addressed. If grass blocks your vision at any distance it must block it at all distances. 

This was such a problem in the popular milsim, ARMA 3, that server utilities were created specifically to address it. Server hosts would force clients to render grass out to a minimum distance to prevent cheating. If your graphics card couldn't handle it, then you were (not so politely) asked to reconsider whether you were dedicated enough to play the game. 

Share this post


Link to post
Share on other sites
Spectator6
10 minutes ago, CStarker said:

You propose a great solution to a major problem. This needs to be addressed. If grass blocks your vision at any distance it must block it at all distances. 

This was such a problem in the popular milsim, ARMA 3, that server utilities were created specifically to address it. Server hosts would force clients to render grass out to a minimum distance to prevent cheating. If your graphics card couldn't handle it, then you were (not so politely) asked to reconsider whether you were dedicated enough to play the game. 

Thank you for reading and commenting @CStarker !

Share this post


Link to post
Share on other sites
Spectator6
Posted (edited)

Does anyone know if Unity 2018 might allow some sort of distant player model pixel color shifting effect?

To borrow from the above posts... Perhaps it's possible to change the "dark" pixels of the character as seen here:

image.png.762f356d8fa8394d49425e938498f1f5.png

To colors that better approximate the color of the clothing items he is actually wearing? Something like:

image.png.0ec2ecc8162fb7699f5695ab9a0ff92e.png

Because again, in my mind, what if the issue with distant player model visibility is not about HOW MUCH of the player model is exposed by not having grass surrounding him, but more to do with the glaring color contrast that causes him to stick out like a sore thumb? What if preventing distant pixels from "turning black/dark" would be a more efficient approach from a performance perspective too?

For example, let's take a look at Arma, which adds an addition ground layer as a means to cover lower portions of distant player models. Even with this approach, it seems to me that what ruins the effectiveness of camouflage at range has more to do with glaring color contrasts brought about by the difference in texture complexity (semi-detailed player texture against a bland distant ground texture) and unrealistic color variation (shading and shadows darkening the player model while simultaneously not having anything to shade/darken surrounding him, like grass, shrubbery, rocks, etc).

If the color boundaries of the player model were not so heavily shaded in comparison to the ground texture, perhaps he would blend in much more effectively? 

image.png.306caef62a7d1c484bf636716f641417.png

Edited by Spectator6
typos, add example from Arma

Share this post


Link to post
Share on other sites
CooH1e2

Very interesting post. 

I guess the main issue is how to detect best colours you need to use for the character according to the environment it's walking trough.

That's probably why in the game SCUM they've decided to play with the rendring instead of the camouflage for those things. Not sure if that is the best solution either.

I'm totally not aware of how programming works and I don't know how this is technically applied.

I guess, that as the object is farther from the player, it's needed to simplify the number of pixels to represent the same thing.
Arriving to a moment that the other player is represented by a few amount of pixels.

image.png.a9970585739faf4148c3244c9c65054c.png

According to this picture I undesrtand that somehow the pattern is simplifyting it up to new colors based on the distance and if the pixels belongs to objects or the environment in order to be rendered together.

And it does apply the same simplified colour pixel without considering the original pixel colour.

The point is if it would be possible to define the "simplified pixel" according to the colour of the object it's representing without considering if this belongs to the environment or a player.  To get the camouflage effect "working".

image.png.d173750082f8dbaed67402fb8be24d8b.png

 

This way a tree and a player with the similar  colour would be represented by the same picture when it's fair away

 

  • Upvote 1

Share this post


Link to post
Share on other sites
Spectator6
On 5/24/2019 at 6:13 AM, CooH1e2 said:

Very interesting post. 

I guess the main issue is how to detect best colours you need to use for the character according to the environment it's walking trough.

That's probably why in the game SCUM they've decided to play with the rendring instead of the camouflage for those things. Not sure if that is the best solution either.

I'm totally not aware of how programming works and I don't know how this is technically applied.

I guess, that as the object is farther from the player, it's needed to simplify the number of pixels to represent the same thing.
Arriving to a moment that the other player is represented by a few amount of pixels.

image.png.a9970585739faf4148c3244c9c65054c.png

According to this picture I undesrtand that somehow the pattern is simplifyting it up to new colors based on the distance and if the pixels belongs to objects or the environment in order to be rendered together.

And it does apply the same simplified colour pixel without considering the original pixel colour.

The point is if it would be possible to define the "simplified pixel" according to the colour of the object it's representing without considering if this belongs to the environment or a player.  To get the camouflage effect "working".

image.png.d173750082f8dbaed67402fb8be24d8b.png

 

This way a tree and a player with the similar  colour would be represented by the same picture when it's fair away

 

@CooH1e2, my man! I noticed recently that I haven't been getting any email notifications so I was looking through my profile and I just happened to come across your post here. So sorry I didn't see this earlier!

Yes, the graphic you included is spot on, glad you caught on to what I was trying to illustrate! 

I really like your idea of having the do a "color check" based on distance. Could be a "raw" distance, or it could also correlate to the user's video settings to check for things like shadow draw distance and grass draw distance. 

So, for example, while it may be good to "blend" certain character model colors at 200 meters out, if the player has his grass settings to Low (say it's 25 meters just for discussion), then maybe the color shift would need to happen sooner? Same with shadows. If the user's shadow distance is Low, maybe it references a different "color palette" to provide a more suitable "mix".

As for what would create this type of color blurring/blending effect, I'm not familiar enough with the technical side of things to offer any specific suggestions. The optimistic side of me thinks there's *gotta* be a way to accomplish something like this with a post-processing effect. Maybe rather than being a literal shift in colors, it merely "covers" or "overlays" color layers on top of the player model similar to how you've illustrated. But I honestly don't know...

Share this post


Link to post
Share on other sites
Spectator6
On 10/22/2019 at 3:39 AM, Spectator6 said:

I guess the main issue is how to detect best colours you need to use for the character according to the environment it's walking trough.

Does it have to be "aware" of the surroundings? What if it were to, instead, just set the color to an "average" of, say, its three most primary colors?

In this way, let's say the character model is waaaaaay out in the distance. And the character happens to be wearing a zebra striped outfit of just solid black and white stripes. At that distance, the character model is so small that it doesn't have enough pixels to draw in the individual black/white stripe detail. 

So, instead, what if it could "draw" the character's clothing as the average of black and white? (ie as a grey color). 

I wonder if something like that could work?

I'm still not entirely sure though what's causing the "dark" colors to win out, though... I suspect the engine is trying its best to draw the "edges" of the character model and, due to the lack of pixel density at that size, resorts to painting the whole character with a sort of "dark color" broad brush. Because I'm wanting to say that in games that use edge lighting or some sort of "glow" effect on their characters, at further distances, that same "shine/glow" color likewise dominates the character model... But again, that's just a hunch... 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...
b38e7c858218a416ef714554dce933a2