On Friday, December 14, 2012 13:09:54 Stuart Buchanan wrote: > Hi Adrian, > > I haven't looked at your code, and I'm sure you've already taken care > of this, but: > > The use of the SG_NODEMASK_TERRAIN_BIT by the random trees and buildings > is probably due to my ignorance when writing the code, and I certainly > agree that the trees shouldn't have this bit set.
Hi Stuart, I am much more ignorant than you are when it comes to the way trees are created :) I have modified the code in simgear now, so that they don't have the bit set. Also, I noticed they have the SG_NODEMASK_CASTSHADOW_BIT | SG_NODEMASK_RECEIVESHADOW_BIT bits set (for Rembrandt), but they don't cast shadows, probably due to their geometry, you probably know better. Should I remove them? > > The v2.8.0 random buildings were a simply geometry built at runtime, > and IIRC people > were enjoying landing helicopters on the top of them. However, the current > git random buildings use a shader instantiation approach very similar to > the trees. I > think that means that the shouldn't be considered with the > FG_NODEMASK_TERRAIN_BIT > either, as the geometry itself isn't placed correctly in the scenegraph. > > Therefore, I think they shouldn't be considered in the > get_elevation_m/groundcache/bounding > box code. Same goes for "random" buildings, which thanks to texture mapping are now not so random :) To my surprise, they also didn't cast shadows. Now I understand why. Should those bits go too? Can Fred give his input too on this issue? About bounding boxes, perhaps there's a way to have that too, but again, I'm very ignorant on your method which relies on shaders. > > I think the random objects _do_ need to be included so they can be included > in collision calculations. Agreed. As it is now, I have added a new bit only for terrain surface, SG_NODEMASK_SURFACE_BIT , and the rest of terrain objects which do have bounding boxes will keep the SG_NODEMASK_TERRAIN_BIT. When performing scenery elevation calls, I believe the best way is to add another parameter which can toggle SG_NODEMASK_TERRAIN_BIT on and off. The speedup in this case is pretty important, there are fewer nodes to be traversed. I think Thorsten's weather would benefit from this as well, since it needs to sample only the surface (elevation, type of terrain). > > On the more general subject, I have two comments, both as a layman so > take with a suitable pinch of salt! > > 1) I think the most important attribute of the radio code is that one > can complete a published > approach. I assume that approaches are specifically designed and > built such that > there in sufficient signal strength within some volume around the > "perfect approach". Normally yes, I am not a pilot, but I assume that there would be no approach charts that would tell you there is localizer/gs signal behind the local mountain. Same goes for VOR etc. The published volume is one thing, but if terrain features come into play, the signal may or may not go, and that's the most interesting part of it, it adds a little uncertainty when you are at low altitude, in mountainous areas, at the limit, etc. I just had a very satisfying flight yesterday using the code, and it made me understand why there are so many VOR's in some areas, and how you need to tune from one to the other as you go through terrain at lower altitudes. I should add that I fly in SRTM terrain mostly, and I have very accurate radio signal predictions. > > My concern with any advanced model is that invalid/inaccurate > terrain/elevation input into the > model might mean that we get too low a signal, and some approaches > might no-longer be > possible to fly due to (incorrectly) low signal strength. The reverse is likely. The values will be most unforgiving with SRTM/high definition DEM, and most forgiving in low res terrain. Fortunately, I have a property which can be set by the user, depending on the type of terrain which is flying. This is the elevation resolution the code should expect. In low res terrain, this property can be set to 200-300 meters between profile points, and then you won't even notice the CPU footprint. > > Adrian: Is that a reasonable concern, or are approaches designed such > that there is always > line-of-site between the station and the aircraft on the approach (and > therefore any terrain > interaction is irrelevant within the approach volume)? I believe all approach charts respect terrain, and judging from nav.dat, there is a good reason some VOR's use greater power, or some ILS stations pump greater power in their antennas etc. To do otherwise and not keep the terrain in mind would be foolish, and I don't think the guys publishing the charts are fools. > > 2) Assuming we're only interested in terrain effects, then it would > seem that the signal strength > at a given point (lat/lon/alt) for a given station is invariant. > > Would it be possible to avoid the runtime hit by calculating it > offline for all points within reasonable > range of the station? > > One might be able to create a bitmap storing the minimum signal > altitude (i.e. the altitude below which > there is no signal due to terrain), the maximum signal strength, the > altitude that occurs, etc. and then > use these as parameters into a straightforward function to determine > the signal strength at the current > altitude. That "could be possible", but there are an infinity of points where the aircraft can be wrt the radio station. Plus, if you had an instructor messing with your flight, how could he subtly fail the transmistter, by reducing power, or changing the signal etc... Also, some meteorological conditions can influence real time propagation on some bands, this has yet to be simulated. Nedd to take into account that frequencies used are different too, from low VHF for VOR and ATC, to low UHF for glideslope, to high UHF (1 GHz + ) for DME, Tacan, nevermind radar and other stuff. Someone might decide to use this for simulating finding low-power search and rescue beacons in rough terrain too... what do you do about those? There's a reason this needs to be performed real-time... All other applications which do propagation prediction using this method, do it in 2D. That is, they project the reading on a 2D map, on ground level. They couldn't do it for an aircraft. This is where this system is unique, compared to any others out there. There is so much potential to be exploited here, you wouldn't even guess :) Anyway, there are plenty of options to tweak via exposed properties to take care of performance for the casual user, including disabling it completely. There is as well the possibility to go totally out of control and perform very detailed readings with some CPU cost, if that's your thing. I have utmost respect for the freedom of the user to use the system anyway he desires. The things I'm not happy about now, are antenna pattern radiation profiles for localizer/glideslopes. I need to start using an antenna design utility to get more realistic patterns, but the current code counts only the signal values, the false courses and other stuff I have kept from the standard code, you still get them, as they were hardcoded before. Fortunately, getting a pattern is easier than writing the whole system :) It's very hard to model an ILS station according to reality, and I will do so only upon specific request. Otherwise, I will only give signal values, not modulated sidebands, false courses based on sidelobes and such stuff. If some from ARINC wants to get involved with this and use such kind of simulation, I would require some specific data which I can obtain now from aviation radio engineers, but see no reason to go so far with the level of details unless requested. Which might happen in the future, we never know who might find a use for this ;) Cheers, Adrian ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel