Jump to content

Recommended Posts

Posted (edited)

I have a suggestion how to handle the "draw area slider" in future versions, considering it is kind of hard to figure out with puffs becoming less detailed when increasing the draw distance. I have tested and played with SkyMaxx extensively since V1, (more than I actually fly...), and in my opinion, in V3, 10km radius is the sweet spot (even if my system handles more).

So here we go: Have you considered making 10km the standard, and have the draw area automatically increase above a certain flight level (effectively killing the slider, considering that every time you guys killed a slider, the plug-in became better). That way, users would get great detail and performance for GA, but once you take your heavy above, say, FL240, SkyMaxx would switch to a high altitude mode that would draw further (this mode would use the lesser-detailed puffs). Combined with the "never change visible weather" logic, this all could happen unnoticed by the user, and certainly could improve the experience with SkyMaxx.

Another thing, and this has been a THING since X-Plane 10, is the lack of a maximum visibility slider for aesthetic / performance reasons. There's a real need for this in the community, because a. X-Plane becomes a resource hog somewhere above 20SM visibility for many people (causing stutters even if everything else is fine), and b. since HDR mode Antialiasing is still underwhelming, aliasing becomes an issue with high visibility (jagged edges around far away water bodies for example, jagged horizons ect. - even at FXAA + 8xAA). A visibility limiter would thus solve performance issues for a large portion of users and also cover up some flaws that remain in X-Plane's render engine.

So, there are solutions (a plug-in, the checkbox in the NOAA plug-in, or manually tinkering with the dataref "sim/weather/visibility_reported_m"; however there's one big flaw: it ALWAYS resets weather to static, thus none of the solutions work with X-Plane's real weather. I have spoken to Ben Supnik about this, there is effectively no way to do it, except for one, and here SkyMaxx / RWC may come into play. If you guys included a script that reads the metar.wx, looks up all visibilities and replaces anything over, say 20SM with a user-defined maximum, then write the metar.wx and regenerate weather... boom, you could advertise SkyMaxx with the ultimate visibility limiter tool. Yes, somebody could write a LUA script doing this, but I imagine this as a perfect feature for your software suite.

Edited by frontendrob
Posted

A dynamic slider has previously been suggested and the author is sympathetic to this idea.

Intentionally reducing x-plane features ( i.e. Reduce visibility) to gain performance is not something for a commercial product. There are existing LUA scripts for this published on the org.

Sent from my iPhone using Tapatalk

Posted

Thanks for the ideas. I've actually done some tinkering with changing the visibility distance (for our clouds, at least) as a function of altitude, framerate, and some other ideas. Getting it so it's not noticeable when it happens is the hard part, but I think it's worth further exploration.

Posted

As for future suggestions, I think sky colours will go a long way. You do have sky colours but they are not selected by default and are particular to certain areas, weather situations and time of day. I'm not saying you should get rid of these textures, just add some all round nice sky colours that work all around the world.

Another suggestion is different coloured clouds. I know you have this implemented but it is like tile load (all clouds in the same tile load are the same colour). Maybe we could have different colours in the same tile? Good transitions? 

But definitely, I'd say these should be in v4.

  • Upvote 1
Posted (edited)

I actually found another plug-in (http://forums.x-plane.org/index.php?/files/file/21775-real-weather-visibility-limit/) which seems to successfully limit visibility while flying with real weather. Would any of the developers here have a look over this code to see if it potentially screws up SkyMaxx and RWC in any way please? It seems to work fine.

 

Here's the code:

 

from XPLMDefs import *
from XPLMDisplay import *
from XPLMGraphics import *
from XPLMProcessing import *
from XPLMDataAccess import *
from XPLMUtilities import *
 
MAX_VISIBILITY = 45000.0 # maximal visibility for Real Weather in meters
 
class PythonInterface:
    def XPluginStart(self):
self.Name = "RW visibility limit"
        self.Sig = "Xplane.Python.RWVisLim"
        self.Desc = "A plugin that limits real weather visibility."
        self.VisibilityDataRef = XPLMFindDataRef("sim/weather/visibility_reported_m")
self.RealWeatherDataRef = XPLMFindDataRef("sim/weather/use_real_weather_bool")
self.cloud_type0 = XPLMFindDataRef("sim/weather/cloud_type[0]")
self.cloud_type1 = XPLMFindDataRef("sim/weather/cloud_type[1]")
self.cloud_type2 = XPLMFindDataRef("sim/weather/cloud_type[2]")
self.cloud_coverage0 = XPLMFindDataRef("sim/weather/cloud_coverage[0]")
self.cloud_coverage1 = XPLMFindDataRef("sim/weather/cloud_coverage[1]")
self.cloud_coverage2 = XPLMFindDataRef("sim/weather/cloud_coverage[2]")
self.cloud_base_msl_m0 = XPLMFindDataRef("sim/weather/cloud_base_msl_m[0]")
self.cloud_base_msl_m1 = XPLMFindDataRef("sim/weather/cloud_base_msl_m[1]")
self.cloud_base_msl_m2 = XPLMFindDataRef("sim/weather/cloud_base_msl_m[2]")
self.cloud_tops_msl_m0 = XPLMFindDataRef("sim/weather/cloud_tops_msl_m[0]")
self.cloud_tops_msl_m1 = XPLMFindDataRef("sim/weather/cloud_tops_msl_m[1]")
self.cloud_tops_msl_m2 = XPLMFindDataRef("sim/weather/cloud_tops_msl_m[2]")
self.rain_percent = XPLMFindDataRef("sim/weather/rain_percent")
self.thunderstorm_percent = XPLMFindDataRef("sim/weather/thunderstorm_percent")
self.wind_turbulence_percent = XPLMFindDataRef("sim/weather/wind_turbulence_percent")
self.barometer_sealevel_inhg = XPLMFindDataRef("sim/weather/barometer_sealevel_inhg")
self.wind_altitude_msl_m0 = XPLMFindDataRef("sim/weather/wind_altitude_msl_m[0]")
self.wind_altitude_msl_m1 = XPLMFindDataRef("sim/weather/wind_altitude_msl_m[1]")
self.wind_altitude_msl_m2 = XPLMFindDataRef("sim/weather/wind_altitude_msl_m[2]")
self.wind_direction_degt0 = XPLMFindDataRef("sim/weather/wind_direction_degt[0]")
self.wind_direction_degt1 = XPLMFindDataRef("sim/weather/wind_direction_degt[1]")
self.wind_direction_degt2 = XPLMFindDataRef("sim/weather/wind_direction_degt[2]")
self.wind_speed_kt0 = XPLMFindDataRef("sim/weather/wind_speed_kt[0]")
self.wind_speed_kt1 = XPLMFindDataRef("sim/weather/wind_speed_kt[1]")
self.wind_speed_kt2 = XPLMFindDataRef("sim/weather/wind_speed_kt[2]")
self.shear_direction_degt0 = XPLMFindDataRef("sim/weather/shear_direction_degt[0]")
self.shear_direction_degt1 = XPLMFindDataRef("sim/weather/shear_direction_degt[1]")
self.shear_direction_degt2 = XPLMFindDataRef("sim/weather/shear_direction_degt[2]")
self.shear_speed_kt0 = XPLMFindDataRef("sim/weather/shear_speed_kt[0]")
self.shear_speed_kt1 = XPLMFindDataRef("sim/weather/shear_speed_kt[1]")
self.shear_speed_kt2 = XPLMFindDataRef("sim/weather/shear_speed_kt[2]")
self.turbulence0 = XPLMFindDataRef("sim/weather/turbulence[0]")
self.turbulence1 = XPLMFindDataRef("sim/weather/turbulence[1]")
self.turbulence2 = XPLMFindDataRef("sim/weather/turbulence[2]")
self.wave_amplitude = XPLMFindDataRef("sim/weather/wave_amplitude")
self.wave_length = XPLMFindDataRef("sim/weather/wave_length")
self.wave_speed = XPLMFindDataRef("sim/weather/wave_speed")
self.wave_dir = XPLMFindDataRef("sim/weather/wave_dir")
self.temperature_sealevel_c = XPLMFindDataRef("sim/weather/temperature_sealevel_c")
self.dewpoi_sealevel_c = XPLMFindDataRef("sim/weather/dewpoi_sealevel_c")
self.runway_friction = XPLMFindDataRef("sim/weather/runway_friction")
self.FlightLoopCB = self.FlightLoopCallback
XPLMRegisterFlightLoopCallback(self, self.FlightLoopCB, 1.0, 0)
 
        return self.Name, self.Sig, self.Desc
 
 
    def XPluginStop(self):
        # Unregister the callback
        XPLMUnregisterFlightLoopCallback(self, self.FlightLoopCB, 0)
        pass
 
 
    def XPluginEnable(self):
return 1
 
 
    def XPluginDisable(self):
        pass
 
 
    def XPluginReceiveMessage(self, inFromWho, inMessage, inParam):
        pass
 
 
    def FlightLoopCallback(self, elapsedMe, elapsedSim, counter, refcon):
        Maximal_Visibility = MAX_VISIBILITY
  RealWeather = XPLMGetDatai(self.RealWeatherDataRef)
        Visibility = XPLMGetDataf(self.VisibilityDataRef)
 
if (RealWeather == 0):
   XPLMSetDatai(self.RealWeatherDataRef, 1) # set use real weather  
 
        if (Visibility > Maximal_Visibility):
   cloud_type0 = XPLMGetDatai(self.cloud_type0)
   cloud_type1 = XPLMGetDatai(self.cloud_type1)
   cloud_type2 = XPLMGetDatai(self.cloud_type2)
   cloud_coverage0 = XPLMGetDataf(self.cloud_coverage0)
   cloud_coverage1 = XPLMGetDataf(self.cloud_coverage1)
   cloud_coverage2 = XPLMGetDataf(self.cloud_coverage2)
   cloud_base_msl_m0 = XPLMGetDataf(self.cloud_base_msl_m0)
   cloud_base_msl_m1 = XPLMGetDataf(self.cloud_base_msl_m1)
   cloud_base_msl_m2 = XPLMGetDataf(self.cloud_base_msl_m2)
   cloud_tops_msl_m0 = XPLMGetDataf(self.cloud_tops_msl_m0)
   cloud_tops_msl_m1 = XPLMGetDataf(self.cloud_tops_msl_m1)
   cloud_tops_msl_m2 = XPLMGetDataf(self.cloud_tops_msl_m2)
   rain_percent = XPLMGetDataf(self.rain_percent)
   thunderstorm_percent = XPLMGetDataf(self.thunderstorm_percent)
   wind_turbulence_percent = XPLMGetDataf(self.wind_turbulence_percent)
   barometer_sealevel_inhg = XPLMGetDataf(self.barometer_sealevel_inhg)
   wind_altitude_msl_m0 = XPLMGetDataf(self.wind_altitude_msl_m0)
   wind_altitude_msl_m1 = XPLMGetDataf(self.wind_altitude_msl_m1)
   wind_altitude_msl_m2 = XPLMGetDataf(self.wind_altitude_msl_m2)
   wind_direction_degt0 = XPLMGetDataf(self.wind_direction_degt0)
   wind_direction_degt1 = XPLMGetDataf(self.wind_direction_degt1)
   wind_direction_degt2 = XPLMGetDataf(self.wind_direction_degt2)
   wind_speed_kt0 = XPLMGetDataf(self.wind_speed_kt0)
   wind_speed_kt1 = XPLMGetDataf(self.wind_speed_kt1)
   wind_speed_kt2 = XPLMGetDataf(self.wind_speed_kt2)
   shear_direction_degt0 = XPLMGetDataf(self.shear_direction_degt0)
   shear_direction_degt1 = XPLMGetDataf(self.shear_direction_degt1)
   shear_direction_degt2 = XPLMGetDataf(self.shear_direction_degt2)
   shear_speed_kt0 = XPLMGetDataf(self.shear_speed_kt0)
   shear_speed_kt1 = XPLMGetDataf(self.shear_speed_kt1)
   shear_speed_kt2 = XPLMGetDataf(self.shear_speed_kt2)
   turbulence0 = XPLMGetDataf(self.turbulence0)
   turbulence1 = XPLMGetDataf(self.turbulence1)
   turbulence2 = XPLMGetDataf(self.turbulence2)
   wave_amplitude = XPLMGetDataf(self.wave_amplitude)
   wave_length = XPLMGetDataf(self.wave_length)
   wave_speed = XPLMGetDataf(self.wave_speed)
   wave_dir = XPLMGetDatai(self.wave_dir)
   temperature_sealevel_c = XPLMGetDataf(self.temperature_sealevel_c)
   dewpoi_sealevel_c = XPLMGetDataf(self.dewpoi_sealevel_c)
   runway_friction = XPLMGetDataf(self.runway_friction)
            XPLMSetDataf(self.VisibilityDataRef, Maximal_Visibility) # set visibility
            XPLMSetDatai(self.cloud_type0, cloud_type0)
            XPLMSetDatai(self.cloud_type1, cloud_type1)
            XPLMSetDatai(self.cloud_type2, cloud_type2)
            XPLMSetDataf(self.cloud_coverage0, cloud_coverage0)
            XPLMSetDataf(self.cloud_coverage1, cloud_coverage1)
            XPLMSetDataf(self.cloud_coverage2, cloud_coverage2)
            XPLMSetDataf(self.cloud_base_msl_m0, cloud_base_msl_m0)
            XPLMSetDataf(self.cloud_base_msl_m1, cloud_base_msl_m1)
            XPLMSetDataf(self.cloud_base_msl_m2, cloud_base_msl_m2)
            XPLMSetDataf(self.cloud_tops_msl_m0, cloud_tops_msl_m0)
            XPLMSetDataf(self.cloud_tops_msl_m1, cloud_tops_msl_m1)
            XPLMSetDataf(self.cloud_tops_msl_m2, cloud_tops_msl_m2)
            XPLMSetDataf(self.rain_percent, rain_percent)
            XPLMSetDataf(self.thunderstorm_percent, thunderstorm_percent)
            XPLMSetDataf(self.wind_turbulence_percent, wind_turbulence_percent)
            XPLMSetDataf(self.barometer_sealevel_inhg, barometer_sealevel_inhg)
            XPLMSetDataf(self.wind_altitude_msl_m0, wind_altitude_msl_m0)
            XPLMSetDataf(self.wind_altitude_msl_m1, wind_altitude_msl_m1)
            XPLMSetDataf(self.wind_altitude_msl_m2, wind_altitude_msl_m2)
            XPLMSetDataf(self.wind_direction_degt0, wind_direction_degt0)
            XPLMSetDataf(self.wind_direction_degt1, wind_direction_degt1)
            XPLMSetDataf(self.wind_direction_degt2, wind_direction_degt2)
            XPLMSetDataf(self.wind_speed_kt0, wind_speed_kt0)
            XPLMSetDataf(self.wind_speed_kt1, wind_speed_kt1)
            XPLMSetDataf(self.wind_speed_kt2, wind_speed_kt2)
            XPLMSetDataf(self.shear_direction_degt0, shear_direction_degt0)
            XPLMSetDataf(self.shear_direction_degt1, shear_direction_degt1)
            XPLMSetDataf(self.shear_direction_degt2, shear_direction_degt2)
            XPLMSetDataf(self.shear_speed_kt0, shear_speed_kt0)
            XPLMSetDataf(self.shear_speed_kt1, shear_speed_kt1)
            XPLMSetDataf(self.shear_speed_kt2, shear_speed_kt2)
            XPLMSetDataf(self.turbulence0, turbulence0)
            XPLMSetDataf(self.turbulence1, turbulence1)
            XPLMSetDataf(self.turbulence2, turbulence2)
            XPLMSetDataf(self.wave_amplitude, wave_amplitude)
            XPLMSetDataf(self.wave_length, wave_length)
            XPLMSetDataf(self.wave_speed, wave_speed)
            XPLMSetDatai(self.wave_dir, wave_dir)
            XPLMSetDataf(self.temperature_sealevel_c, temperature_sealevel_c)
            XPLMSetDataf(self.dewpoi_sealevel_c, dewpoi_sealevel_c)
            XPLMSetDataf(self.runway_friction, runway_friction)
     
 
        return 1.0
  • 0

 

Edited by frontendrob
Posted
As for future suggestions, I think sky colours will go a long way. You do have sky colours but they are not selected by default and are particular to certain areas, weather situations and time of day. I'm not saying you should get rid of these textures, just add some all round nice sky colours that work all around the world.

Another suggestion is different coloured clouds. I know you have this implemented but it is like tile load (all clouds in the same tile load are the same colour). Maybe we could have different colours in the same tile? Good transitions? 

But definitely, I'd say these should be in v4.

SkyMaxx is fully customisable in this sense. You can add sky colors to your liking made by anyone all day long...and there's a lot of free ones out there!

  • Upvote 1
Posted
On July 21, 2016 at 8:12 AM, jonfrederickl said:

So where would I find these sky colours for sky maxx? Would it be on x-pilot?

Any sky color set for X-Plane works with SkyMaxx Pro! The SkyMaxx Pro manual covers how to install these other sets for use in SkyMaxx. :)

  • Upvote 1

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

Loading...
  • Recently Browsing   0 members

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