Modeling - Getting Started: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m (→‎Blender: Updated Blender Manual (wiki) link, was the old one which still worked, but redirect to the new one.)
m (Added reference to 'Blender AC3D import and export' wiki page)
 
(24 intermediate revisions by 11 users not shown)
Line 1: Line 1:
== Important Notice for Volunteers ==
== Notice for Volunteers ==
 
{{main article|Volunteer#Scenery Model Creators}}
Developing scenery and models for use with scenery is an important and very visible contribution to Flightgear. New users of Flightgear often ask how they can contribute, and this is a good place to start. Try looking at some of the following:
 
* We need people to go out and take good pictures of all the buildings at their local airports, build models, and create textures (that could be different people for each task).
* We need people to go out and take good pictures of all the buildings at their local airports, build models, and create textures (that could be different people for each task).
* We need people to go over paper lists and airport diagrams for countries that don't publish air navigation data free online (i.e. almost everyone but the U.S.) and fill in the blanks in our navaid and airport databases.
* We need people to start modelling identifiable human-made landmarks like bridges, stadiums, and major buildings. Around the San Francisco Bay area, bridges are especially important. Once you have identified some buildings or objects you would like to have (Aircraft carriers, fuel bowsers, cars, towers, ...) you will need to check out the tools for creating and placing these objects.
* We need people to collect geodata to give us more accurate roads, rivers, etc., especially outside the U.S.
* We need people to start modelling identifiable human-made landmarks like bridges, stadiums, and major buildings. Around the San Francisco Bay area, bridges are especially important. Once you have identified some buildings or objects you would like to have (Aircraft carriers, fuel bowsers, cars, towers, ...) you will need to check out the tools for creating and placing these objects.
 
It would be helpful if people would model the area they are interested in. Generally contributions are going to be from Flightgear users who find scenery lacking in some area and choose to improve it. You are encouraged to research your own area for airport, navaid and scenery information, to contribute the data or dive right in to airport and scenery design.


== Getting Started ==
== Getting Started ==
Line 29: Line 23:
* [http://wiki.blender.org Blender Manual]
* [http://wiki.blender.org Blender Manual]
* [http://blenderartists.org/forum/ Excellent forum for discussing Blender issues]
* [http://blenderartists.org/forum/ Excellent forum for discussing Blender issues]
* [[Blender AC3D import and export]]
Note: Before you start modelling its recommended to activate the 'Backface Culling' option (Viewport Shading -> Options). This will allow you to spot faces with inverted Normals. In FlightGear these faces will be invisible. To check your model for this issue switch Viewport Shading to Solid. Now you will be able to spot the affected faces. To correct them, mark all affected Faces. Then go to Mesh -> Normals and click 'Flip'.


==== SketchUp ====
==== SketchUp ====
{{Main article|Modeling - SketchUp}}
{{Main article|Modeling - SketchUp}}


SketchUp (http://sketchup.google.com) is the easiest to use of these three programms. But the results are very nice and professional. I recommend SketchUp for users who are not really good at difficult computer programms.
SketchUp (http://sketchup.google.com) is the easiest to use of these three programs. But the results are very nice and professional. I recommend SketchUp for users who are not really good at difficult computer programs.


==== [[Wings 3D]] ====
==== [[Wings 3D]] ====
Line 46: Line 43:
The easiest way is to use the [[Placing 3D Objects with the UFO|UFO's object placement feature]] (in version 9.10 or higher). When operating the UFO, left-clicking the mouse anywhere on the ground will place an object, and pressing space-up or down will cycle through the models. Coordinates of placed models can then be dumped to the terminal or written to a configuration file.  
The easiest way is to use the [[Placing 3D Objects with the UFO|UFO's object placement feature]] (in version 9.10 or higher). When operating the UFO, left-clicking the mouse anywhere on the ground will place an object, and pressing space-up or down will cycle through the models. Coordinates of placed models can then be dumped to the terminal or written to a configuration file.  


Another method is to use [[FlightGear Scenery Designer]] ([http://fgsd.sourceforge.net/ Project Site]). After setting the paths to your scenery data, simply load up the area where you want to place the object. Load your .ac format model, and right click on the desired spot to place your model there. Export the modifed scenery to save it, rerun Flightgear and your model should be there.
[[Talk:Modeling_-_Getting_Started|Obsolete project?]] Another method is to use [[FlightGear Scenery Designer]] ([http://fgsd.sourceforge.net/ Project Site]). After setting the paths to your scenery data, simply load up the area where you want to place the object. Load your .ac format model, and right click on the desired spot to place your model there. Export the modifed scenery to save it, rerun Flightgear and your model should be there.


=== Finding, Creating, or Using Textures ===
=== Finding, Creating, or Using Textures ===
Models in Flightgear use textures with SGI rgb format (.rgb extension).
Models in Flightgear use textures with PNG format.
You can open .rgb files in Windows and Mac OS using [[THE GIMP]], Corel Paintshop Pro  
 
and XnView.  PNG format is now supported in the newest versions of flightgear 1.9.1.  PNG models are not backward compatible, you may wish to use rgb format so people with older versions can enjoy your model as well.
Most image editors support editing PNG files, like [[THE GIMP]], Corel Paintshop Pro, Adobe Photoshop, etc.


If you want to use Adobe Photoshop, you can open and save .rgb files in Adobe Photoshop using a free plugin(for Windows as well as Mac OS) : [http://www.telegraphics.com.au/sw/#sgiformat SGI File Format Plugin for Photoshop].
The old SGI rgb format (.rgb extension) is no longer supported. (see http://scenemodels.flightgear.org/)


Once you have made your model building, you will want to apply some textures to it, so it looks as realistic as possible. This is possibly one of the hardest areas, as a good model with bad textures will still look bad. Since Flightgear and the scenery data are all released under the GPL, any textures that you use must also be able to be released under this licence. This will probably prevent you from just using anything you come across on the net, unless it is already under the GPL. It is quite common for people to state that their pictures or textures are free. Since Flightgear can be sold for profit, and is released on Linux distributions that are sold, check that there are no clauses stating that the item can not be sold or used for commercial use.
Once you have made your model building, you will want to apply some textures to it, so it looks as realistic as possible. This is possibly one of the hardest areas, as a good model with bad textures will still look bad. Since Flightgear and the scenery data are all released under the GPL, any textures that you use must also be able to be released under this license. This will probably prevent you from just using anything you come across on the net, unless it is already under the GPL. It is quite common for people to state that their pictures or textures are free. Since Flightgear can be sold for profit, and is released on Linux distributions that are sold, check that there are no clauses stating that the item can not be sold or used for commercial use.


=== Generation of textured light objects in Blender ===
=== Generation of textured light objects in Blender ===
<table style="margin-top:0.1em; margin-bottom:0.1em; margin-left:2em; padding:2px; font-size:95%; text-align:left; background: transparent;"><tr><td>[[File:1rightarrow.png|15px]] ''See  http://members.aon.at/mfranz/flightgear/blender-textured-lights.html  for the main article about this subject.''</td></tr></table>


== Problems and Solutions ==
{| style="margin-top:0.1em; margin-bottom:0.1em; margin-left:2em; padding:2px; font-size:95%; text-align:left; background: transparent;"
|-
| [[File:1rightarrow.png|15px]] ''See  http://members.aon.at/mfranz/flightgear/blender-textured-lights.html  for the main article about this subject.''
|}
 
== Improving models for best FlightGear performance ==
{{Merge|Modelling guidelines}}
[[File:Motor.jpg|thumb|270px|Using Multiple Models with varied detailing]]
[[File:Singlesided_blender.jpg|thumb|270px|To set faces to Singlesided (Blender), deselect the Doublesided button]]
=== Mesh ===
* In a single model, use a single mesh so far as possible. Note that this doesn't mean that every node must be linked to its object with an edge (e.g. a line of trees can be easily a single object.) Only have the separate objects if you need them for an animation or parts that use a transparent texture (any object using more then one texture is anyway spitted by the rendering engine.)
* Delete unseen faces such as faces inside the model, but remember that the [[Project Rembrandt|Rembrandt renderer]] needs closed meshes to cast shadows correctly, so you'll often want to keep the ones below.
* Remove "line faces", which are faces whose points are in the same line.
* Don't forget to remove double vertices (i.e. vertices sharing the same coordinates)
* See [[Howto:Decrease the number of faces]].
 
=== Single sided / double sided ===
* Set all the faces of the model to SingleSided. DoubleSided faces are very expensive to render properly. If a face needs to be displayed from every view angle use two faces with opposite normals rather than a Doublesided one (the overhead from the extra geometry is far lower than the overhead of doublesided faces)
 
=== Textures and Materials ===
{{FGCquote
  |Modern graphics cards can handle very large textures and huge numbers of vertices with minimal frame rate impact.  A typical scene in FlightGear (with clouds, buildings rivers, roads...) has millions of vertices which simply dwarfs a 17K aircraft making the aircraft model an insignificant factor.  The general rule is use enough vertices and large enough textures to make things look right and no more.  More recent aircraft efforts tend to have much higher vertex counts, much larger textures and a lot more detail then older work because of how capable modern hardware is.  It is not unusual to see newer aircraft exceeding 100K vertices.  For example the P-51D that will be released with 3.2 has an external model that is slightly over 100K vertices and this had a minimal frame rate impact on my (newer high end) hardware compared to the old 10K external model. <br/>
<br/>
If you can't see the difference between using a 512x512 instrument texture compared to a 256x256 texture then use the smaller texture.  But if you can see the difference then use the larger texture.  On modern hardware the difference in frame rate will be very small but it may impact those with older/slower/obsolete hardware in a noticeable way.  All of the instruments in the P-51D are 512x512 for larger gauges or 256x256 for smaller gauges and at least to me they have a sharp appearance even when zoomed in fairly close.  Many older aircraft use 128x128 textures for instruments but to me at least on the larger instruments on a very high resolution monitor these textures are a little bit fuzzy in appearance.  The other thing I do is I create the textures at much higher resolution and then scale it to final size.  This allows the scaling algorithm in the graphics package to apply anti aliasing during the scaling process which I think helps make the smaller textures look good since it reduces the appearance of jaggies.
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=216211#p216211
    |title=<nowiki>Re: key + animation</nowiki>
    |author=<nowiki>hvengel</nowiki>
    |date=<nowiki>Fri Aug 08</nowiki>
  }}
}}
* Use Materials on Objects instead of textures where possible, but...
* ...avoid mixing textured and untextured geometry in the same model. Build the coloring into the texture map instead. This is to prevent that the object gets split, and anyway, the [[File Formats#*.ac files|AC format]] supports only one texture per object.
* Textures must be a power of two, or they will be resized at loading, and cause issues to some users.
* Avoid using big textures: 512x512 is mostly enough for most models.
* Use a single texture. However, if your model absolutely needs alpha texture and another part of the model is opaque, you should use two textures: one with alpha and the other without.
* Don't use alpha in texture when it is not needed: transparency is not easy to deal with, and often causes artifacts.
 
=== Effects ===
* Shader effects (like lightmaps, normalmaps...) and Rembrandt lights are not affordable by everyone's machine, so try to provide alternatives. However, remember also that FlightGear provides options to adjust such effects.
 
=== Level of Detail (LOD) ===
{{note|Note that range animations often used for LOD are very expensive (any time you move, every range animation must be evaluated), and give a real advantage only if they remove a very large amount of details (like 1000-2000 triangles), so it's not useful in many cases of for example scenery objects or cockpit details.}}
{{tip|Instead of using range animations for each little detail you could group many details together and do the range animation for them all, for example having one range animation for an entire cockpit instead of several dozens.}}
* If a model has to be detailed to a ''very high'' degree, use multiple objects with different levels of detailing, and switch between them based on LOD with a [[Howto:Animate models#Range|range animation]], or split the detailed parts to make them a couple more objects that add details incrementally.
* An alternative, less expensive way to support LOD is applying a [[Howto:Animate models#Select|select animation]], that can hide an object based on some property, for example hiding a cars side mirrors if "detailed" level is at less than 1500m (which is the default), indicating that the user has a less powerful machine. It is less flexible, but allows everyone to enjoy your models.
 
=== Other ===
* With modern graphics cards, the amount of objects can have a higher impact on performance than the amount of triangles/vertices.
* Textures, transparency, .xml included sub-models: The things that kill frame rate in FlightGear. Try to avoid them.
* Also avoid smooth shading when possible, but don't be afraid to use it for curved surfaces where it really has an impact on model quality.
 
== Related content ==
=== Wiki articles ===
==== Problems and Solutions ====
* [[3D Model Rotates Around Nose]]
* [[3D Model Rotates Around Nose]]
* [[Configuring Views in FlightGear]]
* [[Howto: Configure views in FlightGear]]
* [[Howto: Decrease the number of faces|Decrease the number of faces]]
* [[Howto: Decrease the number of faces|Decrease the number of faces]]


== Improving Models for Best FlightGear Performance ==
==== Resources ====
[[File:Motor.jpg|thumb|270px|Using Multiple Models with varied detailing]]
* Use a single mesh so far as is possible, for example, combine all the parts of a building into one Object.
* Use Materials on Objects instead of textures where possible.
* Use a single texture.
* Textures, transparency and .xml included sub-models : The things that kill frame rate in FlightGear. Try to avoid them.
* If a model has to be detailed to a High Degree, use multiple Objects with different levels of detailing, and switch between them based on LOD.
 
== Resources ==
* [[Aircraft Information Resources‎]]  
* [[Aircraft Information Resources‎]]  
* [[Modeling Resources]]
* [[Modeling Resources]]

Latest revision as of 19:18, 17 July 2020

Notice for Volunteers

1rightarrow.png See Volunteer#Scenery Model Creators for the main article about this subject.

  • We need people to go out and take good pictures of all the buildings at their local airports, build models, and create textures (that could be different people for each task).
  • We need people to start modelling identifiable human-made landmarks like bridges, stadiums, and major buildings. Around the San Francisco Bay area, bridges are especially important. Once you have identified some buildings or objects you would like to have (Aircraft carriers, fuel bowsers, cars, towers, ...) you will need to check out the tools for creating and placing these objects.

Getting Started

Generally one can start with a blueprint using their favorite imaging software like Gimp, Photoshop, or Paint shop pro then separate various views (front, back, etc...) into greyscale jpg files. Then import them as a background for easy modelling in your favorite 3D modelling software program.

3D Software

To begin, you will need to create models in a 3d modeling appliction. Three popular ones are AC3D, Blender and SketchUp. FlightGear can display models in several formats, any format supported by PLIB is acceptable. AC3D is the most popular format for including scenery in Flightgear. Most or all of the default scenery bundled with a Flightgear release are in AC3D format.

If you do not have AC3D, Blender offers many import and export tools. See the Blender website for further information.

AC3D

Flightgear uses the ac3d model format for objects such as buildings. To create a model, you will need one of two modelling packages. Either go directly to AC3D itself, or use Blender and then convert via a Python script (see below). AC3D seems to be a much easier program to learn, while still being very powerful. The downside is that you have to buy a licence to get more than 14 days use.

Blender

Blender is more difficult to learn to use, since it is not quite as intuitive and is far more powerful. However it is GPL'd, and there are lots of tutorials to help with learning.

Note: Before you start modelling its recommended to activate the 'Backface Culling' option (Viewport Shading -> Options). This will allow you to spot faces with inverted Normals. In FlightGear these faces will be invisible. To check your model for this issue switch Viewport Shading to Solid. Now you will be able to spot the affected faces. To correct them, mark all affected Faces. Then go to Mesh -> Normals and click 'Flip'.

SketchUp

1rightarrow.png See Modeling - SketchUp for the main article about this subject.

SketchUp (http://sketchup.google.com) is the easiest to use of these three programs. But the results are very nice and professional. I recommend SketchUp for users who are not really good at difficult computer programs.

Wings 3D

1rightarrow.png See Modeling - Wings 3D for the main article about this subject.

Wings 3D (http://www.wings3d.com/) is another 3D modeling program, and is free open source software.

Placing Objects on Scenery

There are several ways of doing this. The most direct way is to simply add the required data by hand.

The model adjustment dialog of the UFO

The easiest way is to use the UFO's object placement feature (in version 9.10 or higher). When operating the UFO, left-clicking the mouse anywhere on the ground will place an object, and pressing space-up or down will cycle through the models. Coordinates of placed models can then be dumped to the terminal or written to a configuration file.

Obsolete project? Another method is to use FlightGear Scenery Designer (Project Site). After setting the paths to your scenery data, simply load up the area where you want to place the object. Load your .ac format model, and right click on the desired spot to place your model there. Export the modifed scenery to save it, rerun Flightgear and your model should be there.

Finding, Creating, or Using Textures

Models in Flightgear use textures with PNG format.

Most image editors support editing PNG files, like THE GIMP, Corel Paintshop Pro, Adobe Photoshop, etc.

The old SGI rgb format (.rgb extension) is no longer supported. (see http://scenemodels.flightgear.org/)

Once you have made your model building, you will want to apply some textures to it, so it looks as realistic as possible. This is possibly one of the hardest areas, as a good model with bad textures will still look bad. Since Flightgear and the scenery data are all released under the GPL, any textures that you use must also be able to be released under this license. This will probably prevent you from just using anything you come across on the net, unless it is already under the GPL. It is quite common for people to state that their pictures or textures are free. Since Flightgear can be sold for profit, and is released on Linux distributions that are sold, check that there are no clauses stating that the item can not be sold or used for commercial use.

Generation of textured light objects in Blender

1rightarrow.png See http://members.aon.at/mfranz/flightgear/blender-textured-lights.html for the main article about this subject.

Improving models for best FlightGear performance

Merge-arrows.gif
It has been suggested that this article or section be merged with Modelling guidelines.
Using Multiple Models with varied detailing
To set faces to Singlesided (Blender), deselect the Doublesided button

Mesh

  • In a single model, use a single mesh so far as possible. Note that this doesn't mean that every node must be linked to its object with an edge (e.g. a line of trees can be easily a single object.) Only have the separate objects if you need them for an animation or parts that use a transparent texture (any object using more then one texture is anyway spitted by the rendering engine.)
  • Delete unseen faces such as faces inside the model, but remember that the Rembrandt renderer needs closed meshes to cast shadows correctly, so you'll often want to keep the ones below.
  • Remove "line faces", which are faces whose points are in the same line.
  • Don't forget to remove double vertices (i.e. vertices sharing the same coordinates)
  • See Howto:Decrease the number of faces.

Single sided / double sided

  • Set all the faces of the model to SingleSided. DoubleSided faces are very expensive to render properly. If a face needs to be displayed from every view angle use two faces with opposite normals rather than a Doublesided one (the overhead from the extra geometry is far lower than the overhead of doublesided faces)

Textures and Materials

Cquote1.png Modern graphics cards can handle very large textures and huge numbers of vertices with minimal frame rate impact. A typical scene in FlightGear (with clouds, buildings rivers, roads...) has millions of vertices which simply dwarfs a 17K aircraft making the aircraft model an insignificant factor. The general rule is use enough vertices and large enough textures to make things look right and no more. More recent aircraft efforts tend to have much higher vertex counts, much larger textures and a lot more detail then older work because of how capable modern hardware is. It is not unusual to see newer aircraft exceeding 100K vertices. For example the P-51D that will be released with 3.2 has an external model that is slightly over 100K vertices and this had a minimal frame rate impact on my (newer high end) hardware compared to the old 10K external model.


If you can't see the difference between using a 512x512 instrument texture compared to a 256x256 texture then use the smaller texture. But if you can see the difference then use the larger texture. On modern hardware the difference in frame rate will be very small but it may impact those with older/slower/obsolete hardware in a noticeable way. All of the instruments in the P-51D are 512x512 for larger gauges or 256x256 for smaller gauges and at least to me they have a sharp appearance even when zoomed in fairly close. Many older aircraft use 128x128 textures for instruments but to me at least on the larger instruments on a very high resolution monitor these textures are a little bit fuzzy in appearance. The other thing I do is I create the textures at much higher resolution and then scale it to final size. This allows the scaling algorithm in the graphics package to apply anti aliasing during the scaling process which I think helps make the smaller textures look good since it reduces the appearance of jaggies.


— hvengel (Fri Aug 08). Re: key + animation.
(powered by Instant-Cquotes)
Cquote2.png
  • Use Materials on Objects instead of textures where possible, but...
  • ...avoid mixing textured and untextured geometry in the same model. Build the coloring into the texture map instead. This is to prevent that the object gets split, and anyway, the AC format supports only one texture per object.
  • Textures must be a power of two, or they will be resized at loading, and cause issues to some users.
  • Avoid using big textures: 512x512 is mostly enough for most models.
  • Use a single texture. However, if your model absolutely needs alpha texture and another part of the model is opaque, you should use two textures: one with alpha and the other without.
  • Don't use alpha in texture when it is not needed: transparency is not easy to deal with, and often causes artifacts.

Effects

  • Shader effects (like lightmaps, normalmaps...) and Rembrandt lights are not affordable by everyone's machine, so try to provide alternatives. However, remember also that FlightGear provides options to adjust such effects.

Level of Detail (LOD)

Note  Note that range animations often used for LOD are very expensive (any time you move, every range animation must be evaluated), and give a real advantage only if they remove a very large amount of details (like 1000-2000 triangles), so it's not useful in many cases of for example scenery objects or cockpit details.
Tip  Instead of using range animations for each little detail you could group many details together and do the range animation for them all, for example having one range animation for an entire cockpit instead of several dozens.
  • If a model has to be detailed to a very high degree, use multiple objects with different levels of detailing, and switch between them based on LOD with a range animation, or split the detailed parts to make them a couple more objects that add details incrementally.
  • An alternative, less expensive way to support LOD is applying a select animation, that can hide an object based on some property, for example hiding a cars side mirrors if "detailed" level is at less than 1500m (which is the default), indicating that the user has a less powerful machine. It is less flexible, but allows everyone to enjoy your models.

Other

  • With modern graphics cards, the amount of objects can have a higher impact on performance than the amount of triangles/vertices.
  • Textures, transparency, .xml included sub-models: The things that kill frame rate in FlightGear. Try to avoid them.
  • Also avoid smooth shading when possible, but don't be afraid to use it for curved surfaces where it really has an impact on model quality.

Related content

Wiki articles

Problems and Solutions

Resources