The observed angle of targets calculated by mil-dots on vanilla weapon scopes is higher than expected, breaking stadiametric rangefinding capabilities.
Description
Details
- Legacy ID
- 148005752
- Severity
- Major
- Resolution
- Open
- Reproducibility
- Always
- Operating System
- Windows 7 x64
- Category
- Visual-Weapons
- Start singleplayer editor.
- Place down a player-sniper unit, and a 1mx1m VR cube 250m from the player
- Observe the apparent angle of the target with your scope's mil-dots
- Observe that the object does not measure 4 mil on your scope like it should
Target size (metres) = s
Target distance (metres) = d
Observed angle of target (mil) = a
Calculating range: d = s*1000/a
At 250m, a 1m object should measure 4 mils:
d=s*1000/a
a=s*1000/d
s = 1
d = 250
a=1*1000/250
a=4
The behaviour is consistent across all scopes I tested:
Event Timeline
After exact pixel-measurement, I found the soldier at 300m range to fill an angle of 6.54 mildots. I have attached the sample picture to this issue. Using your formula, s = d*a/1000:
300 * 6.54 / 1000 = 1.96 m
In my opinion, this is a realistic size of the Target size.
I found the soldier at 600m range to fill an angle of 3.27 mildots. This yields 600 * 3.27 / 1000 = 1.96 m.
So my conclusion is that the mildot angle spacing in the video is very accurate, consistent and realistic.
Size is consistent, but every single soldier being 1,96m tall is extremely unrealistic, even if the mil-dots are correct and the issue is with the size of the models.
I haven't got a primary source but according to this thread http://forums.bistudio.com/showthread.php?150149-Soldier-s-Height&p=2340429&viewfull=1#post2340429 the soldier height should be 1,82m "according to samples released".
Thank you for the exact measurements. In my opinion they serve to highlight the issue instead of writing it off.
Unit is 1.83m tall in the standard T-pose (legs slightly apart) without a helmet. Height will differ slightly depending on animation and headgear.
If you want to check the mil-spacing properly, use the 1m x 1m User Texture object in the editor. I've always found that the BIS scopes are well calibrated to this object, as are some community addons like RHS's Leupold scopes, and I use it myself to calibrate mildots on my own scope reticles.
Use this setObjectTexture [0,"#(rgb,8,8,3)color(1,0,0,1)"]; in the initline to make it a perfect 1m x 1m red square that you can see. You can set the range from your player using getpos/setpos to set precise values from the point where you're standing. IIRC the Rangefinder only works to the nearest meter, so you can get some discrepancies in terms of cm scale accuracy.
Oh thanks, da12thMonkey, I had not thought about using the 1mx1m object. The observed angle of the object should, at 250m, be 4mil:
a = s*1000/d
s = 1
d = 250
a = 1*1000/250
a = 4
This is what it looks like to me: http://cloud-4.steamusercontent.com/ugc/38620363499573714/D9F0FC29207FD8AB329B664F70BD1D06AC4EC043/
You can clearly see the target size does not match what it is supposed to be.
EDIT: attached picture for easier access
Aye, I just re-checked myself with the VR 1m Cube obstacle instead of the User Texture object (never thought to use that one before, but it's probably easier since you don't need to setobjecttexture to make the cube visible).
You're right: the objects observed through most BIS sniper scopes seem to be about 1/8th bigger than the size they should be (1.125 scale), so the 1m cube spans 4.5 mils @ 250m instead of 4.0 mils, 2.25 mils @ 500m instead of 2.0 mils, 1.125 mils @ 1000m instead of 1.0 mils, etc. etc.
I was certain that the LRPS and MOS had properly scaled reticles recently, but I think BIS has tweaked the FOV/magnification values slightly since then, to standardise magnification values between scopes prior to releasing Marksmen.
BIS could solve it by scaling the affected reticle textures by a factor of 9/8 (1.125) or increasing the FOV by the same factor, in the config for those afflicted scopes.
Thankfully my own scopes are still perfectly scaled :D
I can see it now. Apparently they've changed the FOV-zoom of the optical sights, so that the mildot spacings are improperly scaled.
This should be simple to fix, either scale the optics' zoom-FOV or extend the optics's distance from the screen.