A number of users have confirmed that the new ATI Catalyst 9-1 drivers fix the artifacts introduced with the 8-12 drivers! No need to stay back on the 8-11 drivers any more.
It’s nice to have this bug fixed – long time X-Plane users saw this as soon as they updated from 8-11 to 8-12 – they updated drivers and the sim got weird looking, so they just rolled their drivers back.
But a number of MSFS users have tried the X-Plane demo for the first time using 8-12 drivers and wondered how we could ship such a lousy product. The key, of course, is that MSFS uses DirectX drivers, while X-Plane uses OpenGL drivers, so the 8-12 drivers affected X-Plane but not MSFS.
I’ve been poking at the FRAMEBUFFER_INCOMPLETE messages that some people get. The best I have so far is: run with –no_fbos and –no_glsl (learn how
here). If you get this card and you have 2 GB of RAM, consider turning your rendering settings down a bit.
And 930? I got my last beta stopper fixed today, so it’s time for a scotch! I’ll post more on the beta tomorrow.
I’m always a little bit nervous about posting grand new initiatives … if we don’t actually do the initiative, invariably someone comes out of the walls later to say that we “promised” a feature that we didn’t do. But road maps are important. So, bearing in mind that this is not an official announcement, and that nothing has been decided yet, here are some areas of active investigation:
- An airport art asset library. Sergio already started this process by making some aircraft OBJs and other elements (like custom pavement types) available in the libraries that ship with X-Plane. We are looking at extending this over time to include more useful elements for building airports.
- Sharing airport building placements the way we do airport layouts. Right now, airport layouts are shared in a communal database under the GPL license. An airport building database would work the same way – it would be a collection of placements of airport buildings, GPLed and redistributed with X-Plane. The idea would be to make it easy for people to add simple buildings to their local airport and share the results with everyone.
- Using OpenStreetMap (OSM) for roads. We’ve been looking at OSM for a while, but it’s too soon to announce a plan.
- Sharing obstacle data with FlightGear. We already share airport layout data with flight-gear; this would be a similar initiative. We looked at OSM for this, but FlightGear’s data needs are a lot closer to ours. This is still in discussion; the FG guys are a sharp bunch, so I think we’ll able to work something out.
One of the common threads for all of these ideas is that X-Plane community members have dug into them before we have. This is not surprising, and I think it is a good thing!
Another common thread is that these are all open data sharing initiatives. Collaborative data sharing has come a long way since we redesigned the scenery system, starting in version 8.0. My hope is that over the next several months we can make some of these ideas a reality.
But first I have to fix my 930 beta features. 🙂
This week we’ve seen an increase in questions from new users, potential customers (both in the consumer and professional spaces) and third party developers. So before I start blogging about the guts of 930 and all of the new features and changes, here is some background.
I am the lead scenery developer for X-Plane; my main work area is the default scenery, the scenery tools and file formats, and the rendering engine. I also work on modeling issues because the same rendering code draws airplane models and scenery models. I don’t work on the flight model or physics – that and about a billion other things are all Austin – heck, I don’t even know what makes an airplane fly.*
My professional background is programming; I came very close to becoming an Air Traffic Controller – I went through a CTI program in California, but by the time the FAA called me for the next step of the process, over a year had gone by; I was deep in X-Plane already and the FAA was experiencing personnel turbulence. I think I really would have really enjoyed being an ATC, but my personality is definitely better suited for a small company like Laminar Research than for a big government agency.
This blog is primarily targeted at authors who create scenery and airplanes for X-Plane, and also for users who want to know more about the “guts” of the sim. It is not tech support; I will not answer tech support questions posted in the comments sectio — sorry. Please contact
X-Plane tech support – they are there to help!
There are a few website resources for third parties that provide reference:
- The X-Plane scenery website – contains all the file format specs and LR’s tools and code.
- The X-Plane Wiki – contains information on authoring planes, scenery and modeling.
- The X-Plane Plugin System has its own wiki.
- Robin manages our airport data – see his web page for downloads and file format specs.
- The X-Plane user’s manual is available on the contact page, just in case the version you have from your DVDs is not as recent, or you are trying to use Plane-Maker in the demo.
There are also a number of mailing lists – the scenery and plugin pages list the appropriate mailing lists for those audiences. I definitely recommend the mailing lists for developers and authors – traffic isn’t too bad and there are a lot of knowledgeable users!
I can be reached by email via bsupnik at xsquawkbox dot net, but I must warn you: my in-box is on the verge of complete structural failure! I try to answer everybody, but if your message gets lost, you may need to try again.
* This is actually not true – when I was in ground school, our instructor told us the real force that keeps an airplane in the air: money!
Posted in News
by
Ben Supnik |
By now everyone has heard the news: Microsoft is closing down ACES.
This is not a happy day; there is no joy in people losing their jobs in this economy. And having your product canceled really hurts. I have worked on programs that have been killed after I left the team, and I have worked on programs that have been killed while I was working on them, and either way, it really, really sucks.
What does this mean for X-Plane? That is something we are trying to figure out now. Halting development on MSFS is an earthquake within the flight simulation world; it was not a scenario we were planning for last week. In some ways, it changes everything, but in others it does not.
In particular, a lot of things have become high priority that were always important, but are now on a much shorter time table. Improving our documentation, simplifying the user experience, etc. Our current users have already learned the quirks of X-Plane, but we now have more people trying X-Plane for the first time and tripping over those stumbling blocks.
We are only a few days away from going beta with X-Plane 930. 930 was a huge patch for us already, with lots of new features “saved up” over several months, but now it is even more stuffed, since there are also last minute features to make the sim easier for new users, and to add in new capabilities that we are being asked about.
So to current X-Plane users, I ask two things:
* Please be patient with us, and with new users – this is a very busy time and a lot is changing very quickly.
* As always, don’t panic. The first beta always has a few problems with certain video cards, and one or two really gross bugs. The quality of the betas will improve very quickly in the first week or so. Squeamish users should simply wait a few weeks, or skip beta entirely. Third party authors: please test your add-ons as soon as you can! The sooner you report the bug, the sooner we can fix it!
Our mission with X-Plane has not changed: it always was, and still is, to make the best flight simulator we possibly can!
Posted in News
by
Ben Supnik |
930 will have some new options for attached objects. One is to declare a “glass” object. When an object is declared to be glass, it is moved to the very end of the drawing order – even after the cockpit object.
The idea of glass objects is to let you make translucency that works from any view angle. To make multiple layers of glass, the trick is to use pairs of one-sided triangles. The glass (visible from the inside only) goes first, then the glass (visible only from the outside) goes second. All of this goes into the object with the “glass” property in Plane-Maker.
One side benefit of the two-triangle approach is that the inside and outside of the windows can be tinted differently.
Having glass objects does three things for us architecturally:
- It takes pressure off the interior cockpit object. The interior cockpit is the only object that can have manipulators, so texture space in the interior cockpit object is quite valuable. By allowing translucency in an attached object, you can put your window textures somewhere else and save texture space for the cockpit object.
- It gets around the current weirdness where the interior cockpit object is drawn last but the exterior cockpit object is drawn first. The glass object is always drawn last. Period.
- It sets us up someday for some kind of shadowing scheme in the cockpit. This is a bit pie in the sky, but most pixel-based shadowing algorithms go a bit bonkers on translucent geometry; by flagging the whole object as “glass” we can simply omit it from shadow calculations.
The 921 draw order has the exterior cockpit object drawn first (if drawn) and the interior cockpit object drawn last (if drawn). This made sense at the time – the exterior cockpit object was being used primarily for a pilot figure, with windows in the ACF paint – so it had to be drawn before the ACF fuselage. The interior cockpit object has to be drawn last because the coordinate system is changed to a super-close-to-the-user coordinate system that has to be drawn last.
Now that there are attached objects, people are modeling a lot more of the airplane, the usual approach is to have all 3-d present all the time, so that a roaming camera won’t reveal missing parts of the airplane.
I have found the cause of a rather serious bug in Plane-Maker: sometimes instruments disappear from the hierarchy (but are still visible in the main window).
The problem is that the cut-paste facility, when used with multiple-instrument selections, was corrupting the hierarchy information. Because of the way instrument hierarchies are managed, this corruption persists – even if it isn’t visible. So if you manage to ungroup everything, it looks okay until you work more, then the instruments disappear again!
This is a really bad bug of mine, particularly since a panel is such a time investment. Here is what we’ll be able to do in 930 to get around this:
- A new “flatten panel” command simply ungroups everything and completely cleans the hierarchy. All corruption of hierarchy is fixed with this command, finally exposing every instrument. From that point on, you can then re-group and things should be okay.
- I am fixing the cut-paste commands to not trash the hierarchy, and I am looking for any more hierarchy-corruption problems.
- 930 has export/import of instrument groups to text files. So another way around instrument corruption problems would be to export the panel to a text file, fix the grouping problems (which is a matter of moving the GROUP/END_GROUP lines) and then re-importing. If you do not have a selection, the entire panel is exported, including any hidden items in the hierarchy.
I believe that text-based panel import/export will also be useful for sharing individual instruments (or clusters of grouped generic instruments), archiving work, and making large-scale changes using search-and-replace.
These two issues have been discussed a lot in the forums, so I thought I’d mention them:
First, I finally found and nuked that star-burst pattern in the rain. It turns out that for some textures, compression was destroying the lower res
mip-maps, causing the geometry that the rain drops are drawn on to show up as that starburst pattern. It should be fixed for 930 beta 1.
Second, it turns out that the code that converts the 900-format generic instruments to 920-format generic instruments* was being run on the user’s airplane whenever a multiplayer airplane older than version 920 was being run. That could cause generic instruments to disappear, appear incorrectly, or just crash the sim, because the aircraft data in the user’s plane (once the user is flying) is already in 920 format…if you interpret it as 900 format again, you get non-sense.
I am fixing this for 930 beta 1; there may be other bugs relating to multiplayer and generics, so we’ll see if this fixes most of the problems, or others crop up. The panel system is essentially “global” (that is, there is one panel for the user in all of x-plane) but the instrument data is per-plane…so there is always a risk of code mistakes where the multiplayer planes affect the user’s panel.
When will 930 beta 1 be out? I don’t know. Hopefully pretty soon – when bug fixes make it into the blog, we’re usually in the push to get to beta. But I’m working on features on a few fronts, so it’s hard to say which ones will be done first.
* X-Plane 920 revised the ACF format from version 900. The file format for generic instruments was pretty much completely changed to accommodate new features like key frames. 920 has code that converts the 900 generic instruments into 920. For example, simple key frame tables are built out of the older offset-scale parameters per instrument.
I have recently started leaving pieces of email and notes on the Wiki. To see this mess, just view Category:Unfinished.
The problem is that often I don’t know what people don’t know but want to know. So when I get an email question whose answer is not already posted somewhere, I make a wiki page and dump the info.
This
stub is in response to some work I did this morning. In particular, lights in X-Plane often have visibility much larger than the objects they come with. This used to be true for the cars, but I broke the code in 921 and didn’t notice. In 921 headlights do persist beyond the car object’s visibility distance, but not by much. 930 will fix this, restoring the “string of lights” look on the roads at night.
I’ve also tuned the headlights to be visible from a wider viewing angle, to try to make them more noticeable from above. (In real life, the lights illuminate an area of the pavement, which is visible, but we don’t do this.)
If there is a scenery subject that is poorly or not-at-all documented, shoot me an email and I’ll stub out a Wiki page – it’s a first step to getting comprehensive documentation.
(Note that I have not added pages for tutorial steps like “how do I add a manipulator to my object” because I am doing the tools work for ac3d now … better to write a tutorial for manipulators the easy way with ac3d than to write one on the hard way – editing the OBJ – and changing it later. That is to say, I am trying to documetn tools, not temporary work-arounds!)
As of X-Plane 9, life was simple: ATTR_cockpit and ATTR_cockpit_region caused your triangles to be textured by the panel, and they could be clicked. ATTR_no_cockpit went back to regular texture and no clicking.
Well, it turns out that secretly ATTR_cockpit was two attributes jammed into one:
- Panel texture – that is, changing the texture from the object texture to the panel texture.
- Panel clickability – that is, mouse clicks are sent to the 2-d panel and act on those instruments.
With X-Plane 920 and the manipulator commands, this “clickability” aspect is revealed as a separate attribute, e.g. ATTR_manip_none sets no clickability, and ATTR_manip_command makes a command be run when the triangle is clicked. These attributes can be applied to any kind of texture – panel texture or object texture.
So how does ATTR_cockpit work in this context? Basically you can think of ATTR_cockpit as two “hidden” attributes:
ATTR_texture_panel
ATTR_manip_panel
and similarly, ATTR_no_cockpit is likeATTR_texture_object
ATTR_manip_none
With this you can actually get any number of combinations of attributes, but the code is sometimes unexpected. In particular: if you want a manipulator other than the panel or none, you have to specify it again. Example:# set command manip
ATTR_manip_command hand sim/operation/pause Pause
TRIS 0 3
ATTR_cockpit
# we now have to reset the cmd manipulator!
ATTR_manip_command hand sim/operation/pause Pause
TRIS 3 3
ATTR_no_cockpit
# we have to reset the cmd manipulator again!
ATTR_manip_command hand sim/operation/pause Pause
TRIS 6 3
Similarly, if you want the panel manipulator, you may have to reset the cockpit!ATTR_cockpit
TRIS 0 3
# now make the mesh not clickable
ATTR_manip_none
TRIS 3 3
# Mesh clickable again
ATTR_cockpit
TRIS 6 3
The good news is: this isn’t nearly as wasteful as it seems. X-Plane’s object attribute optimizer is smart enough that it will remove the unnecessary attributes in both cases. In the first one, what you end up with is one manipulator change (to the command manipulator), and the panel texture change is done without changing manipulator state at all. In the second case, you end up with the manipulator change, but the panel texture is kept loaded the whole time.
In other words, even though the double-attributes or duplicate attrbibutes might seem to be inefficient, the optimizer will fix them for you.
One reason you might care: the cost of panel texture is one-time – that is, you pay for the size of the panel texture once per frame. But the cost of manipulatable triangles is per-triangle! So having more is bad. With ATTR_manip_none, you can use the panel texture but not have it be clickable, which can be a big performance win.
930 will handle manipulatable triangles a lot faster than 920 — but that’s still not a good reason to have all of your triangles be clickable!
This article is still
unfinished, but I am trying to put together some info on how to detect performance problems like too many clickable triangles.
X-Plane 910 was an update to X-Plane 9 for our professional customers. But all of the new features that they got in 910, everyone got in 920. Here’s how it happened:
X-Plane 9 had a very long beta, and the end of that beta was mostly spent with a finished sim and me trying to fix the pixel shaders for five thousand flavors of video card, driver, and operating system. During this time, Austin started work on new systems modeling features for professional level sims. We branched the code, with my work going into 900 and his going into 910.
When he finished his systems code and I got the pixel shaders fixed and both were fixed, the two were combined into what became 920.
So that’s how we “lost” the 910 version number – some professional customers have the version number, but everyone got the features.