Configuring 3D Clouds ===================== 3D clouds are configured using the file data/cloudlayers.xml. This file has 3 distinct sections: layers, cloud boxes and clouds, described below. Notes for those editing clouds: - All distances are in m. Note that this is in contrast to cloud heights in METAR etc. which are in ft. - The XML file is loaded into the properties system, so you can modify the settings in-sim, and see the results by re-generating the cloud layer. The simplest way to do this is to disable METAR, and control the cloud layers using the Clouds dialog, and in particular the coverage. - Texture files are in .png format, and have a transparent background. To make the textures easier to edit, create a black layer behind them, so there is some contrast between the background and the white cloud. Having a grid based on the texture dimensions also helps, so you don't bleed over the edges, which causes ugly sharp horizontal and vertical lines. Clouds ====== The section contains definitions of clouds themselves, built up of a number of "sprites" - simple 2D textures that are always rotated to be facing the viewer. These sprites are handled by a OpenGL Shader - a small program that is run on your graphics card. Sets of these clouds are be built up into bigger masses, described below. Each cloud group has a completely user-defined name, and contains the following tags. - minimum width of the cloud - maximum width of the cloud - minimum height of the cloud - maximum height of the cloud - texture file of sprites to use - number of cloud textures defined horizontally in the texture file - number of cloud textures defined vertically in the texture file - Number of sprite to generate for the cloud - Light multiplier for sprites at the bottom of the cloud. - minimum width of the sprites used to create the cloud - maximum width of the sprites used to create the cloud - minimum height of the spites used to create the cloud - maximum height of the sprites used to create the cloud The texture to use for the sprites is defined in the XML tag. To allow some variation, you can create a texture file containing multiple sprites in a grid, and define the tags. The code decides which texture to use for a given sprite : randomly in the x-direction and based on the altitude of the sprite within the cloud in the y-direction. Therefore, you should put sprite textures you want to use for the bottom of your cloud at the bottom of the texture file, and those you want to use for the top of the cloud at the top of the texture file. Cloud Boxes =========== The section contains definitions of groups of cloads,for example an entire towering CB mass. The section contains a number of named types, which are referenced by the section, described below. Therefore, the names used are completely user-defined. Each of the named section consists of one or more section, defining a particular cloud type Each section contains the following tags: - The cloud to use, defined above - The number of clouds to generate (+/- 50%) - The x and y within which these clouds should be generated - The height within which the clouds should be generated - The horizontal distribution of the clouds within the area. Equates to a sum of random distributions. Defaults to 1. 1 = even distribution, 2 = distributed towards the center. 3 = very strongly distributed towards the center. - The vertical distribution of the clouds. As for hdist. If the /sim/rendering/clouds3d-density is less than 1.0 (100%), then a proportional number of clouds will be displayed. The following example shows a stratus cloud group, which consists of 5 st-large clouds and 5 st-small clouds, distributed in a box 2000mx2000m, and 100m high, evenly distributed. st-large 5 2000 100 st-small 5 2000 100 Layers ====== The section contains definitions for a specific layer type. The layer type is derived from the METAR/Weather settings by FG itself. Each layer type is a named XML tag, i.e.: ns, sc, st, ac, cb, cu. If a layer type is not defined, then a 2D layer is used instead. The layer type contains one or more definitions. This defines a type of cloud box, and a weighting for that type (). For example, the following XML fragment will produce 3 "cb" cloud boxes for every 1 "cu": cb 3 cu 1 Clouds are randomly distributed across the sky in the x/y plane, but the height of them is set by the weather conditions, with a random height range applied, defined by