Jump to content

Wind not modelled. Doesn't vary over/behind terrain and Windward/Leeward winds are identical.


Elphaba

Recommended Posts

From every test/calculation and spot test I've made for months, there is zero modelling of wind, other than a gradient vector applied constantly at the same height all over the map. Buildings, mountains and other 'terrain' make zero difference to wind or turbulence. 

It seems even when there is a turbulence i.e. burble - it's a manufactured one and not because of the wind direction, strength or size/shape of the island on the carrier. 

This means that even hiding behind a skyscraper you still get wind 'blowing' you 'through' the skyscraper. 

Is this ever going to be addressed?

  • Like 7
Link to comment
Share on other sites

Bear in mind that such a calculation is likely to be computationally expensive...  Like wake turbulence but with many more factors modelled, it becomes quite complex to deliver in anyway real-time, and that's in single player, you would also want to do so in multilayer which would be additionally complex... I suspect that the prerequisite would be the availability of sufficient resources such as say the ability to utilise a large number of the available cores I a modern cpu for such calculations... the initial multi core work, is essentially very basic in this regard.


Edited by speed-of-heat
  • Like 2

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

Have you tried also going over the top of mountains? There is a bit of wind effect I noticed when flying close to mountain top.

Nevertheless, I must agree with @speed-of-heat, this would require so much resources to simulate and I don't think we are there yet with the present code and even hardware capabilities.

  • Like 2

------------------------------------------------------------------------------------------------------------------------------------------------------------

i9-13900K, RTX 4090, 64GB, ADDLINK S72 2TB, TM WARTHOG COMBO + PENDULAR RUDDER PEDALS, PIMAX 8K X, Sony 5.1 Spks+SubW | DCS OB, A-10C_II, AH-64D, F-14/16/18, F-86F, AV-8B, M-2000C, SA342, Huey, Spitfire, FC3.

Link to comment
Share on other sites

Here is the code to determine the wind direction and heading at two points - one a vehicle on the windward side of the mountain, the other on the leeward.

--functions region
function round( x )
	local f = math.floor( x )
	if (x - f) < 0.5 then --round down
		return f
	else
		return f + 1 --round up
	end
end--function round

function getHeading( windVector )
	local result = 0
	local heading = math.atan2( windVector.z, windVector.x )
	--default_output_file:write("Done heading math!\n")
	if heading < 0 then
		heading = heading + 2 * math.pi --put heading in the range of 0 to 2 pi
	end
	heading = heading * ( 180 / math.pi ) --convert radians to degrees
	result = round( heading )
	--spin the heading by 180 to conform with aviation norms!
	if result > 180 then
		result = result -180
	else
		result = result + 180
	end
	return result
end --getHeading

function getSpeed( windVector )
	local result = 0
	local speed = (windVector.x^2 + windVector.y^2 + windVector.z^2)^0.5 --m/s
	speed = speed * 1.94384 --to knots
	result = round( speed )
	return result
end --getSpeed

--say you're starting
trigger.action.outText('WindTest starting...' , 5 , true)

--get the location of each of the units
--groups
local unitWindward = Unit.getByName('Windward-1')
local unitLeeward = Unit.getByName('Leeward-1')

--positions - vec3
local posWindward = unitWindward:getPosition().p
local posLeeward = unitLeeward:getPosition().p
--log write the positions
log.write('WINDTEST', log.INFO, 'Pos_Windward: x = '..posWindward.x..'; y = '..posWindward.y..'; z = '..posWindward.z..'.')
log.write('WINDTEST', log.INFO, 'Pos_Leeward: x = '..posLeeward.x..'; y = '..posLeeward.y..'; z = '..posLeeward.z..'.')

--increase the altitudes by 10m
posWindward.y = posWindward.y + 10
posLeeward.y = posLeeward.y + 10

--surface heights - number - currently unused
--[[
local heightWindward = --land.getHeight(posWindward.x, posWindward.z)
local heightLeeward = --land.getHeight(posLeeward.x, posLeeward.z)
log.write('WINDTEST', log.INFO, 'height_Windward: = '..heightWindward..'.')
log.write('WINDTEST', log.INFO, 'height_Leeward: = '..heightLeeward..'.')
]]--

--winds - vec3 - for the two units
local windWindward = atmosphere.getWind(posWindward)
local windLeeward = atmosphere.getWind(posLeeward)

--windspeed and heading for the two units
local windspeedWindward = getSpeed( windWindward )
local windspeedLeeward = getSpeed( windLeeward )
local windHeadingWindward = getHeading( windWindward )
local windHeadingLeeward = getHeading( windLeeward )

--log.write the results of the loop
log.write('WINDTEST', log.INFO, 'Wind_Windward: x = '..windWindward.x..'; y = '..windWindward.y..'; z = '..windWindward.z..'.')
log.write('WINDTEST', log.INFO, 'Wind_Leeward: x = '..windLeeward.x..'; y = '..windLeeward.y..'; z = '..windLeeward.z..'.')

--log.write speed and heading
log.write('WINDTEST', log.INFO, 'Wind_Windward: heading (deg) = '..windHeadingWindward..'; speed (kts) = '..windspeedWindward..'.')
log.write('WINDTEST', log.INFO, 'Wind_Leeward: heading (deg) = '..windHeadingLeeward..'; speed (kts)= '..windspeedLeeward..'.')
--write results to user
trigger.action.outText('Wind_Windward: heading (deg) = '..windHeadingWindward..'; speed (kts) = '..windspeedWindward..'.', 5 , false)
trigger.action.outText('Wind_Leeward: heading (deg) = '..windHeadingLeeward..'; speed (kts)= '..windspeedLeeward..'.', 5 , false)
--say you're done
trigger.action.outText('WindTest completed.' , 5 , false)

WindTest.lua
4 KB

Here are the log results:

2023-01-22 02:30:47.957 INFO    WINDTEST (Main): Wind_Windward: x = -20.213688330495; y = 0; z = 32.348655590497.
2023-01-22 02:30:47.957 INFO    WINDTEST (Main): Wind_Leeward: x = -20.66910287424; y = 0; z = 33.077471069346.
2023-01-22 02:30:47.957 INFO    WINDTEST (Main): Wind_Windward: heading (deg) = 302; speed (kts) = 74.
2023-01-22 02:30:47.957 INFO    WINDTEST (Main): Wind_Leeward: heading (deg) = 302; speed (kts)= 76.

So even with a big mountain between the two the windspeed is identical, give or take the 2kts because one unit is higher than the other.

I agree with the previous comments that computing this only the fly is going to be ridiculously expensive, however, as the wind doesn't change over time, other than the altitude slope, then could pre-compute with mission load?

 

 

WindTest_NTTR.miz

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

If you want CFD on terrain and cities, yes real wind is expensive, but that's not the only option. The terrain can be broken up into large grids classified roughly as moutains, plains, city, etc and have different wind effects modeled.

Also, X-Plane and MSFS model this for terrain.

  • Like 5

Awaiting: DCS F-15C

Win 10 i5-9600KF 4.6 GHz 64 GB RAM RTX2080Ti 11GB -- Win 7 64 i5-6600K 3.6 GHz 32 GB RAM GTX970 4GB -- A-10C, F-5E, Su-27, F-15C, F-14B, F-16C missions in User Files

 

Link to comment
Share on other sites

3 minutes ago, Exorcet said:

If you want CFD on terrain and cities, yes real wind is expensive, but that's not the only option. The terrain can be broken up into large grids classified roughly as moutains, plains, city, etc and have different wind effects modeled.

Also, X-Plane and MSFS model this for terrain.

And they likely pre-compute on mission/session load?  So chat with Austin required?

 

  • Like 1
Link to comment
Share on other sites

9 hours ago, Durham said:

And they likely pre-compute on mission/session load?  So chat with Austin required?

 

X Plane can use live weahter (I think MSFS can too) so I don't think the wind interacting with terrain is fixed, but dynamic like the rest of weather. I should also clarify that when I said the other sims model "this", I was referring to wind over terrain, not the grid method I was suggesting. The grid method would make sense to precompute currently since DCS doesn't have varying weather.

  • Like 3

Awaiting: DCS F-15C

Win 10 i5-9600KF 4.6 GHz 64 GB RAM RTX2080Ti 11GB -- Win 7 64 i5-6600K 3.6 GHz 32 GB RAM GTX970 4GB -- A-10C, F-5E, Su-27, F-15C, F-14B, F-16C missions in User Files

 

Link to comment
Share on other sites

On 1/22/2023 at 2:26 AM, speed-of-heat said:

Bear in mind that such a calculation is likely to be computationally expensive...  Like wake turbulence but with many more factors modelled, it becomes quite complex to deliver in anyway real-time, and that's in single player, you would also want to do so in multilayer which would be additionally complex... I suspect that the prerequisite would be the availability of sufficient resources such as say the ability to utilise a large number of the available cores I a modern cpu for such calculations... the initial multi core work, is essentially very basic in this regard.

 

Nonsense. XPlane, MSFS and Condor 2 can do a very good job of wind with no hit to performance. Again, binary thinking doesn't get anyone anywhere. 

1 hour ago, Exorcet said:

X Plane can use live weahter (I think MSFS can too) so I don't think the wind interacting with terrain is fixed, but dynamic like the rest of weather. I should also clarify that when I said the other sims model "this", I was referring to wind over terrain, not the grid method I was suggesting. The grid method would make sense to precompute currently since DCS doesn't have varying weather.

It does have varying wx now. The clouds, precipitation etc move over the map. Thus it should change the wind over land / buildings.

  • Like 2
Link to comment
Share on other sites

5 hours ago, Elphaba said:

Nonsense. XPlane, MSFS and Condor 2 can do a very good job of wind with no hit to performance. Again, binary thinking doesn't get anyone anywhere. 

I believe that DCS does much more as far as simulation of other stuff such as weapon, enemy AI, troop movement, radars, etc...  Very different sims!

------------------------------------------------------------------------------------------------------------------------------------------------------------

i9-13900K, RTX 4090, 64GB, ADDLINK S72 2TB, TM WARTHOG COMBO + PENDULAR RUDDER PEDALS, PIMAX 8K X, Sony 5.1 Spks+SubW | DCS OB, A-10C_II, AH-64D, F-14/16/18, F-86F, AV-8B, M-2000C, SA342, Huey, Spitfire, FC3.

Link to comment
Share on other sites

1 minute ago, WipeUout said:

I believe that DCS does much more as far as simulation of other stuff such as weapon, enemy AI, troop movement, radars, etc...  Very different sims!

Binary thinking fails again.

Windage AFFECTS dropping bombs, straffing, landing, hovering, canyon flying low level... basically EVERYTHING IN DCS. 

  • Like 4
Link to comment
Share on other sites

Like Elphaba I, too, would like to see better modeling of the medium we “fly” through. Hopefully things can start moving in that direction in the not too distant future.

  • Like 3

YouTube Channel: https://www.youtube.com/channel/UCU1...CR6IZ7crfdZxDg

 

_____

Win 10 Pro x64, ASUS Z97 Pro MoBo, Intel i7-4790K, EVGA GTX 970 4GB, HyperX Savage 32GB, Samsung 850 EVO 250 GB SSD, 2x Seagate Hybrid Drive 2TB Raid 0.

Link to comment
Share on other sites

13 hours ago, Elphaba said:

Binary thinking fails again.

Windage AFFECTS dropping bombs, straffing, landing, hovering, canyon flying low level... basically EVERYTHING IN DCS. 

Thinking alone fails again.

What is being simulated in MSFS, X Planer etc.. is much less demanding than a FULL COMBAT SANDBOX  like DCS.  Adding yet another dimension like weather modeling, would for sure be cool and increase realism but at a cost that would result in even less performance.  It already takes a top rig to run DCS in VR, last thing we need is more stuff being simulated.  DCS needs to first solve performance and then look at cranking additional realism or whatever the customer wants next.

 

  • Like 2

------------------------------------------------------------------------------------------------------------------------------------------------------------

i9-13900K, RTX 4090, 64GB, ADDLINK S72 2TB, TM WARTHOG COMBO + PENDULAR RUDDER PEDALS, PIMAX 8K X, Sony 5.1 Spks+SubW | DCS OB, A-10C_II, AH-64D, F-14/16/18, F-86F, AV-8B, M-2000C, SA342, Huey, Spitfire, FC3.

Link to comment
Share on other sites

  • 2 months later...

If you say it is too much to calculate low altitude or mountain crest turbulence then so is wake turbulence.
They gave us wake turbulence and now we wonder if we can also have other types of effects, it was obvious that would happen 🙂
I hope so much, especially the currents that form near the crests of the mountains and at very low altitudes.

  • Like 1

[sIGPIC][/sIGPIC]My dream: DCS Tornado

Link to comment
Share on other sites

36 minutes ago, draconus said:

MT is out, you can use 1 or 2 threads for the winds, clouds and other atmosphere stuff.

This is the ideal solution (and add in water swell, chop and current effects for good measure).

  • Like 1

Laptop Pilot. Alienware X17, i9 11980HK 5.0GHz, 16GB RTX 3080, 64GB DDR4 3200MHz, NVMe SSD. 2x TM Warthog, Hornet grip, Virpil CM2 & TPR pedals, FSSB-R3, Cougar throttle, Viper pit WIP (XBox360 when traveling). Rift S.

NTTR, SoH, Syria, Sinai, Channel, South Atlantic, CA, Supercarrier, FC3, A-10CII, F-5, F-14, F-15E, F-16, F/A-18, F-86, Harrier, M2000, F1, Viggen, MiG-21, Yak-52, L-39, MB-339, CE2, Gazelle, Ka-50, Mi-8, Mi-24, Huey, Apache, Spitfire, Mossie.  Wishlist: Tornado, Jaguar, Buccaneer, F-117 and F-111.

Link to comment
Share on other sites

On 1/21/2023 at 9:26 PM, speed-of-heat said:

Bear in mind that such a calculation is likely to be computationally expensive...  Like wake turbulence but with many more factors modelled, it becomes quite complex to deliver in anyway real-time, and that's in single player, you would also want to do so in multilayer which would be additionally complex... I suspect that the prerequisite would be the availability of sufficient resources such as say the ability to utilise a large number of the available cores I a modern cpu for such calculations... the initial multi core work, is essentially very basic in this regard.

 

multiplayer does not complicate this at all. The local "sandbox" of weather must to be the same, yes... but its fine if one player has a gust decoupled from another. That's perfectly fine compromise. MSFS and even Xplane 11 has been doing this for years on hardware a decade old.


Edited by jstnj
  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...