Aide - Recherche - Membres - Calendrier
Version complète : tuto optimisation bs
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > Add-ons / Mods / Skins / ...
orbiter28
Bonjour,

Suite à 5 demandes, je poste les manip que réalisé avec gilledrone pour optimiser bs.

En effet, il est passé de 20 fps en visibility range moyen à 30 en visibility range sur high cowboy.gif

Ceci dit, les 20 fps étaient rendu dans une ville au cour d'une mission type LAN, les 30 fps étaient rendu en plaine dans un mission d'entrainement gap.gif

Je prendrais le cas d'un ordinateur ayant une carte graphique nvidia type 8800 gt, et un proc limite type athlon X2 5800+.

Dans un premier temps, on peu commencer à regarder son système, il est intéressant de jeter un oeil sur les processus en arrière plan inutile/peu utile qui consomment du cpu.
Sous windows xp je suis à 1% ou 0%, mais je parviens à me passer d'anti-virus, le temps de démarrage augmente trop russieflag.gif

La pauvreté graphique de BS permet de mettre la qualité des graphisme sur élevé dans le panneaux de configuration nvidia, quasiment seul l'anti crénelage à un impact sur les fps avec bs.

Voilà dans config le fichier graphic_bs.cfg, je montre juste les extraits utiles, à adapter suivant le configuration du jeux :

Camera
{
current = "Medium";

Medium
{
near_clip = 0.2;
middle_clip = 5;
far_clip = 140000;

structures = {40, 4000};

La première valeur indique que les petits batiments et détails serons chargé en dessous de 40m.
Baisser cette valeur a peu d'inpac.
Il est intéressant si ont a un bon pc et que l'on veux avoir une base riche en petit éléments de la monter... la valeur par défaut est très bien.
La seconde valeur est celle qui fait que les cpu sont à genoux dans les villes, elle indique que les bâtiments sont rendu jusqu'a 4000 m, et que les calculs de collision/porté optique sont réalisé jusqu'a 4000, il est très intéressant de faire des test successif au dessus d'une grosse ville pour voir quel est le fps minimal que l'on peut accepter.

trees = {1000, 8000};

Il n'y-a pas de calcul de collision ou de portée optique, ont peut facilement monter cette valeur si on aime la foret smile.gif cela ne mange que de la carte graphique.

dynamic = {300, 10000};

dynamic correspond à la distance où les éléments dynamiques type "fumé d'usine" serons rendu.
Il y-a peut d'intérêt à rendre ce genre de détail sous bs, sauf si on préfère indiquer les cibles avec les fumées de cheminé plutôt qu'avec le data-link smile.gif

objects = {3000, 30000};

Les unités (tank, missile) sont par défaut rendu jusqu'à 80Km.
Cela peut-être utile pour les Su-25 qui cherchent des gros groupes de cible à 4000m d'altitude.
Pour les Ka-50, il est déjà bien difficile de voir une cible à 30Km.

mirage = {3000, 20000};
surface = {14000, 80000};
lights = {200, 20000};
Je monte la distance d'affichage des petites lumière bleu (pour le roulage) à 200m car c'est jolie smile.gif
Pour trouver une aéroport, entre la nav et l'abris et les balises, ont peut se dispenser des lumière.
Donc je descend la distance à 20K, ce qui est largement suffisant pour faire une approche et voir l'aéroport en Ka-50.

lodMult = 1.5;
lodAdd = 100;

La qualité d'un model est au maximum à pour 0m, ou un lod de 0.
Elle diminue avec la distance.
Par exemple, à 20Km ont a un lod de 20000, et le modèle graphique correspondant au lod de 20000 est chargé (ce model est plus moche que le modèle graphique lod 0)
lod = distance

Par défault, on a beaucoup de détail sur le Ka-50.
Mais lorsque 4 Ka-50 sont cote à cote, ma carte graphique n'aime pas trop...
Alors on ajoute une petite perte de qualité, peu visible pour l'utilisateur, mais qui aidera lorsqu'il y-a beaucoup d'hélico.
lod = distance + lodAdd

C'est le genre de valeur à mettre à 150 lors de mission à 8 hélico.

Image IPB

Pour donner un ordre de grandeur, a 500, l'hélico doit compte dans les 20 polygones smile.gif
La vrai formule est :
lod = distance * lodMult + dodAdd

Ajouter du lod affecte toutes les unités visibles.

Les shaders 1.1... ça ne mange pas grand chose mais comme l'eau est rendu sous la map, il est intéressant pour certaines carte de baisser le rendu de l'eau.

les flares ne mangent pas grand chose aussi, sauf en cas de situations très dangereuses où ils sont largué en grande quantité, et où cela rame dans les pires situations.
Il y-a un modèle de flare sans shader... c'est extrême comme solution, voilà celui que j'utilise, que je trouve comme étant le plus beau en plus in game smile.gif

Image IPB

http://www.mediafire.com/?cj686wuc4ehb7j7

A propos des lod, il y-a plusieurs modèle graphique plus ou moins détaillé pour chaque unités.
Et par exemple, le a-10 sera en qualité maximal jusqu'a je ne sais plus combien de centaine de Km, ensuite il aura une qualité dégradé... par très optimisé gap.gif

Il y-a dans le dossier bazars un fichier modellod.txt qui indique à quelle distance on charge les modèles moins détaillé.
Ce fichier est remanié. Les distances sont bien plus adapté, il semblerais que ce lien renvoi vers la dernière version du fichier.

http://www.mediafire.com/?5hic7376er1t4ck

Ici la qualité du a-10 décrois si le a-10 à un lod de plus de 20000.
En pratique, cela devrais donner environs 15Km avec le LodMult
Je trouve que ce fichier adapte très bien le lod suivant les unités.

J'ai l'impression vu la tête de certains missile que ils n'ont eu que la version low-poly gap.gif

Les textures aussi sont mal optimiser sous BS.
En altitude, il est intéressant de voir beau à 50 Km... sous BS, en rase-mote, on se font que la texture caché par le relief est détaillé ou pas.
On peut donc retouché les "lod" des textures, ou plutôt directement la qualité suivant la distance d'affichage.

LandLodDistances
{
LandDay
{
L01 = 20000;
L12 = 40000;
}
LandNight
{
L01 = 15000;
L12 = 30000;
}
Map
{
L01 = 40000;
L12 = 80000;
L23 = 150000;
L34 = 250000;
L45 = 350000;
}
MapAlt
{
L01 = 40000;
L12 = 80000;
L23 = 150000;
L34 = 250000;
L45 = 350000;
}
MapTex
{
L01 = 40000;
L12 = 80000;
L23 = 150000;
L34 = 250000;
L45 = 350000;
}
MFD
{
L01 = 16000;
L12 = 40000;
}

En pratique, on peut voir que la texture de la montagne qui domine la plaine est beaucoup moins belle qu'avant... laugh.gif

Enfin... les rotors sont un sujet intéressant quant ont les observe en train de se mettre en rotation.
Si vous tourner à 20 image par seconde, l'illusion qui fait que la pale sur l'écran tourne lentement car elle est à 21 tours/s, puis qu'elle tourne de plus en plus vite car elle est à 25 tr/s, puis de plus en plus vite vers 30 tr/s, puis de moins en moins vite vers 37 tr/s , puis immobile à 40 tr/s, ect, est sympathique et bien rendu sous bs.

Essayer cela avec une fréquence d'image passant de 20 à 25 puis 16 puis 23 puis 20 image par seconde, la pale ne donnera pas du tout cette effet.

Cette option trouve enfin son utilité laugh.gif

MaxFPS = 30;
Remarquer que si la fréquence de rafraichissement de votre écran est de 60hz, vous pouvez presque vous passer de synchro verticale avec 30Hz.

Valeur a adapter suivant ce qu'arrive à rendre votre config quant vous êtes au tarmac wink.gif

Autre chose : si vous êtes limite en processeur, l'option "ombre porté" ou "ombre moyen" ou ombre sur 2 mange beaucoup de proc car cela génère les ombre des nombreux bâtiments (surtout en ville, là ou le proc est déjà bien sollicité).
Donc il faut limiter les ombres à 1 (ou en low).

C'est dommage, car j'adore les ombres des pales supérieur sur les pales inférieurs du Ka-50 au démarrage, très interessante visuellement, mais pour avoir cela il faut avoir l'option ombre à 3, et cela augmente le travaille du proc pour généré les ombre des bâtiments dont je me fout bien... encore un manque d'optimisation de la part de ed.

Si vous avez plusieur moniteur ou n'en utiliser qu'un seul, penser dans le panneau nvidia à indiquer au pilote d'optimiser l'affichage pour du multi-affichage ou du solo, vous y gagnerez un peu thumbsup.gif

Bon, on peut même regarder les détails des informations sur les fps et se servir de cela pour voir les points pouvant être changé, mais j'ai déjà écrit un pavé là laugh.gif
raven
très instructif ! merci !
notworthy.gif
Nounours
Bonsoir,

Voilà "un pavé" très intéressant, je vais voir si je peux en tirer quelque chose avec le A-10 C...

A plus,

Ours
orbiter28
Petite précision :
graphic_bs.cfg

Medium
{
near_clip = 0.2;
middle_clip = 5;
far_clip = 140000;

J'ai remarqué que la génération du paysage prenais parfois pas mal de temps sur le temps de rendu (30 ms avec une mauvaise carte graphique).

Descendre le farclip à 80000 m fera que les montagne serons visible jusqu'à 80 Km, cela donne un apport en fps, et je trouve que c'est plus réaliste que la valeur par défaut de 140 Km : je reviens des alpes et il me semble que vers 60 Km on voit difficilement les montagnes qui commencent à avoir la couleur bleu ciel.
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.