Changes

Jump to: navigation, search

Fr/Projet Rembrandt

678 bytes added, 21:52, 18 September 2012
no edit summary
Chaque effet attaché au plein écran définit le mélange fait entre le pass et la somme précédente de rendu.
== Running Flightgear with Démarrage de FlightGear avec Rembrandt ==[[File:Rembrandt dialog.png|thumb|270px|dialogue Rembrandt dialog]]The Le rendu Rembrandt renderer is now integrated in the main repository but needs to be enabled to runest maintenant intégré dans le répertoire principal, mais doit être activé pour démarrer. There are two ways to enable it Il y a deux façons de l'activer (only one is needed!une seule est nécessaire):* <code>--enable-rembrandt</code> (when using lorsqu'on utilise [[FGRun]], you may add this behind the on peut ajouter ceci derrière le <tt>FG_EXECUTABLE</tt> on the first sur la première page). * <code>--prop:/sim/rendering/rembrandt/enabled=true</code> (with avec FGRun this can be added on peut ajouter ceci via <tt>Advanced > Properties</tt> on the last sur la dernière page).
The Le <tt>View > Rendering Options > Rembrandt Options</tt> dialog allows you to toggle and adjust the various features that dialogue vous permet de basculer et d'ajuster les différentes options offertes par Rembrandt offers.
Rembrandt is quite demanding in est très gourmand en ressources GPU resources and may fail to run with the default et son démarrage peut échouer avec les optionspar défaut. The more frequent symptom is an OSG Le symptome le plus fréquent est un message in the OSG dans la console :
RenderStage::runCameraSetUp(), FBO setup failed, FBO status= 0x8cd6
Warning: RenderStage::runCameraSetUp(State&) Pbuffer does not support multiple color outputs.
Some card also exhibit messages like this On peut voir aussi :
glLinkProgram "" FAILED
0(34) : error C6013: Only arrays of texcoords may be indexed in this profile, and only with a loop index variable
There is a number of additional Des options that can help to avoid these problems additionnelles peuvent éviter ces problèmes :
{| class="wikitable"
|<tt>--prop:/sim/rendering/rembrandt/use-color-for-depth=true</tt>
|Some old Certaines vieilles cartes NVidia cards, such as comme 7600GT, donn't give enough resolution for depth and that result in ont pas assez de résolution pour la profondeur, et on voit des "fog curtainsrideaux de brouillard" at few meters from the viewerà quelques mètres devant. One trick is to encode depth in another Une astuce consiste à encoder la profondeur dans une autre texture and get the proper value afterwardet donner la valeur correcte ensuite. This Cette option enables thatpermet cela.
|-
|<tt>--prop:/sim/rendering/shadows/enabled=false</tt>
|Disable shadows altogetherDésactive les ombres tout à fait.
|-
|<tt>--prop:/sim/rendering/shadows/num-cascades=1</tt>
|Avoid the Évite le message "error C6013" message on old cards at the cost of resolution in the cockpitsur les vieilles cartes en manque de résolution dans le cockpitt. Set Mettez <tt>/sim/rendering/shadows/cascade-far-m[0]</tt> to change the shadow map rangepour changer la taille de la carte d'ombre. The more the rangePlus de taille, the less the resolution et moins de résolution (default value is la valeur par défaut est 5 metersmètres)
|-
|<tt>--prop:/sim/rendering/shadows/map-size=<power-of-two></tt>
|Set the shadow map sizeDéfinnissez la taille de la carte d'ombres. Useful values are Les valeurs utilles sont 1024, 2048, 4096 or ou 8192. Few cards have the resources to support Peu de cartes supportent 16384.
|-
|<tt>--prop:/sim/rendering/shadows/num-cascades</tt>
|Set the shadow map cascade numberDéfinissez le nombre de cascades de la carte ombre. Less Moins de cascades means less time spent in signifie moins de temps passé à générer la carte shadow map generation, but also means lower shadow qualitymais aussi signifie une qualité moindre de l'ombre. Integer between Mettez entre 1 and et 4.
|-
|<tt>--prop:/sim/rendering/shadows/cascade-far-m[i]</tt>
(1 <= i <= <tt>/sim/rendering/shadows/num-cascades</tt> <= 4)
|Set the shadow map Définissez la taille de cascade range for each de la carte shadow pour chaque cascade. Default values are Les valeurs par défaut sont 5m, 50m, 500m and et 5000m for pour 4 cascades.
|-
|<tt>--prop:/sim/rendering/rembrandt/no-16bit-buffer=false</tt>
|By defaultPar défaut, Rembrandt uses utilise normalement des tampons de 8 bit buffers for normals bits (so the property is set to true by defaultainsi, la propriété est vraiment définie par défaut). This may create banding artifacts on Ceci peut créer des artefacts pour les éclairages specular highlights. If itSi c's unacceptable and the est inacceptable et si le GPU supports itle supporte, set to mettez false to have better precision for normals and effects relying on normal pour avoir une meilleure précision pour les normales et les effets s'appuyant sur une directionnormale.
|}
== Guidelines for Lignes directrices pour les écrits shader writers ===== Predefined uniforms Uniformes prédéfinis ===These Ces uniformes glsl uniforms donn't need to be declared in the effect file.ont pas besoin d'être déclarés dans le fichier effet
{| class="wikitable"
!Name
|<tt>fg_ViewMatrix</tt>
|<tt>mat4</tt>
|In fullscreen En pass onlyplein écran seulement, view matrix used to transform the screen utilisé our transformer la position to view écran en directionvue
|-
|<tt>fg_ViewMatrixInverse</tt>
|<tt>mat4</tt>
|In fullscreen En pass onlyplein écran seulement, view matrix inverse used to transform the screen employé pour transformer la position to view écran en directionvue
|-
|<tt>fg_ProjectionMatrixInverse</tt>
|<tt>mat4</tt>
|In fullscreen En pass onlyplein écran seulement, projection matrix matri inverse used to transform the screen employé pour transformer la position to view écran en directionvue
|-
|<tt>fg_CameraPositionCart</tt>
|<tt>vec3</tt>
|Position of the camera in world space, expressed in cartesian coordinatesde la caméra en coordonnées cartésiennes
|-
|<tt>fg_CameraPositionGeod</tt>
|<tt>vec3</tt>
|Position of the camera in world spacede la caméra dans l'espace, expressed in geodesic coordinates exprimé en coordonnées géodésiques (longitude in radians, et latitude in en radians, elevation in metersélévation en mètres)
|-
|<tt>fg_SunAmbientColor</tt>
|<tt>fg_DepthInColor</tt>
|<tt>bool</tt>
|Tells if the depth is stored in a depth Dire si la profondeur est rangée dans une texture or a color profondeur ou une texturecouleur
|-
|<tt>fg_Planes</tt>
|<tt>vec3</tt>
|Used to convert the value of the depth buffer to a depth that can be used to compute the eye space Utilisé pour convertir la valeur du tampon profondeur en une profondeur qui peut être utilisée pour calculer la position of the dans l'espace du fragment.
|-
|<tt>fg_BufferSize</tt>
|<tt>vec2</tt>
|Dimensions of the bufferdu tampon, used to convert utilisé pour convertir gl_FragCoord into the range dans la taille [0..1][0..1]
|-
|<tt>osg_ViewMatrix</tt>
|<tt>mat4</tt>
|Defined by Definie par OSG, used only when working on actual geometryemployé seulement lors du travail sur la géométrie réelle
|-
|<tt>osg_ViewMatrixInverse</tt>
|<tt>mat4</tt>
|Defined by Definie par OSG, used only when working on actual geometryemployé seulement lors du travail sur la géométrie réelle
|}
They still have to be declared in the .Ils doivent encore être déclarés dans le fragment or the du vertex shader to be used.
=== Utility functions Fonctions utilitaires ===
To ease the Pour faciliter la maintenance of des shaders, several utility functions are available for the plusieurs fonctions utilitaires sont disponibles pour le fragment shader. These functions are put together in two files Ces fonctions sont placées ensemble dans deux fichiers : <tt>gbuffer-functions.frag</tt> and et <tt>gbuffer-encode.frag</tt>.
==== gbuffer-encode.frag ====
;<tt>void encode_gbuffer(vec3 normal, vec3 color, int mId, float specular, float shininess, float emission, float depth)</tt>
:Used to encode all the values of the Utilisé pour encoder youtes les valeurs de G-Buffer in dans material shaders
==== gbuffer-functions.frag ====
;<tt>vec2 normal_encode(vec3 n)</tt>
:Used to compress Employé pour compresser normals into the à l'intérieur de G-Buffer in dans material shaders. Normally called from Normalement appelé de <tt>encode_gbuffer()</tt>
;<tt>vec3 normal_decode(vec2 enc)</tt>
:Reconstruct Reconstruit normals from the à partir de G-Buffer. Used in fullscreen Employé dans shaders and light plein écran et shaderslumière
;<tt>vec3 float_to_color(in float f)</tt>
:Encode les valeurs float values in the range dans la taille [0..1] in the dans les 24 bits of a colord'une couleur. This function is used by cette fonction est employée par <tt>encode_gbuffer()</tt> if the si le <tt>/sim/rendering/use-color-for_depth</tt> is trueest vrai, for old cards that donpour les vieilles cartes qui ne fournissent pas d't provide depth information with enough resolution inside fullscreen or light profondeur avec assez de résolution dans les shadersfullscreen ou lumière.
;<tt>float color_to_float(vec3 color)</tt>
:Decode Décode les valeurs float values in the range dans la taille [0..1] from the dans les 24 bits of a colord'une couleur. This function is used by cette fonction est employée par <tt>position()</tt> if the si le <tt>/sim/rendering/use-color-for_depth</tt> is trueest vrai, for old cards that donpour les vieilles cartes qui ne fournissent pas d't provide depth information with enough resolution inside fullscreen or light profondeur avec assez de résolution dans les shadersfullscreen ou lumière.
;<tt>vec3 position( vec3 viewDir, float depth )</tt>
:Reconstruct Reconstruit la position eye space à partir de la direction view position from the a partir de la view direction and the depth read from the depth bufferet la profondeur lue du tampon profondeur
;<tt>vec3 position( vec3 viewDir, vec3 depthColor )</tt>
:Reconstruct :Reconstruit la position eye space position from the view à partir de la direction and the depth encoded in a color read from the depth bufferview et la profondeur encodée dans une couleur lue du tampon profondeur
;<tt>vec3 position( vec3 viewDir, vec2 coords, sampler2D depth_tex )</tt>
:Reconstruct Reconstruit la position eye space position from the view à partir de la direction and the depth buffer vue et du tampon profondeur (real depth or color, according to the value of profondeur réelle ou couleur selon la valeur de <tt>/sim/rendering/use-color-for_depth</tt>) at a given à un fragment on screendonné sur l'écran, given by donné par <tt>coords</tt>
==== Usage ====
88
edits

Navigation menu