Uniform properties:
-Base Camo Value: Defines how much the Uniform will fade as the distance increases.
-Clutter specific camo value: Defines how much Base camo is modified depending on the ground the Uniform is worn on. Can be positive or negative. This would need different types of underground to be configged into the Uniform.
-Special modifiers: Ghillie suits would receive extra camo bonuses when wearer is prone and static. Diver suits would receive camo bonuses at night and when static near the sea floor (max 1m above ground?)
EXAMPLES:
White T-Shirt, Jeans: Camo values everywhere are 0. The Unit will not turn transparent at any distance, and will only increase transparency through stance and basic camo value of the surrounding clutter.
Multicam-Combat Uniform, Vest, plain ACH. Base camo 0.5, Grass, Shrub and Forest +0.1.
This Uniform would begin to turn transparent at around 75m for a static soldier when prone, and 125m for a static soldier who is standing upright. On grass, Shrub and Forest clutter undergrounds, the degree of transparency would be increased by 1 10th, and maximum transparency would be around 90% at a distance of 1km for a static soldier prone in clutter that provides a camo bonus.
Ghilliesuit with Multi-cam undersuit, chestrig, Facemask. Base camo 0.8, Grass, Shrub and Forest provide +0.1 to camo.
Special value: Ghillie-suit. This is a special modifier that applies when the unit is static and prone (should turning count as movement?) and increases base camo to 0.9. This Unit would be completely invisible when static and hidden in good terrain outside of grass rendering area. Inside of grass rendering, the suit would turn completely visible inside of about 10 meters, but with the full grass being rendered around him, the Sniper would still need to rely on his suit providing actual camo rather than artificial invisibillity.
Thermal imaging would completely negate any invisibillity, and would either require a special suit to defeat, or hard cover.
For the AI, checking for a Unit to be visible would only require minimal checks based on an average and a reference table. For example, if scanning the area where a sniper is hidden, check for camo value (static Ghilliesuit (camo 0.8) in camoflaging clutter, prone (+0.2) = total camo of 1. This means total invisibillity. Subtract from this skill level of the observing Unit and modifiers for carried optics (for example, -0.1 for every 5x of zoom on the optic, and 0.1 for every 0.25 of skill) = total camo of 0.5. Add camo modifier for distance (250 m steps up to a fixed max distance of 1500 m. Modifier goes up logarithmically at each step, to simulate the increasing difficulty of resolving detail at a distance inherent to all optical systems, such as the human eye.
Depending on the distance, the level may reach 0 again, which means the sniper cannot feasibly be spotted with optical devices. If it is any higher, the observing Unit simply checks the resulting value against a table, which states the chance of spotting the Unit. Then throw 1D100 and if the result is above the check value, reveal value increases.
For Thermal Imaging, assume a base camo value of 0 for all Units, and only modify this depending on imaging resolution and distance, and maybe place a hard cap on spotting distance to represent technological limitations.
Nightvision would also modify these spotting values, as well as having no Nightvision at night.
Above 100 meters distance, treat all Units as a single entity for spotting purposes, but keep all observed Units as individuals. More steps to reduce computing power in this solution would be appreciated to reduce load.
This is the basic Idea of my proposal, I would love to hear back from Developers and the Community, and if required I could try to write up a more detailed example in .pdf format and provide this to the development team within 4 weeks time (very busy with work and moving, so something like that would take a little time.)