[Tuto] Création de Viewports pour tous les afficheurs DCS

Bugs, problèmes d'installation, de patch, optimisation
Avatar de l’utilisateur

Topic author
icemaker
Gardien du temple
Gardien du temple
Messages : 4103
Inscription : 04 août 2001

[Tuto] Création de Viewports pour tous les afficheurs DCS

#1

Message par icemaker »

J'ai réussi!!!!!!
Voici une petite capture de ce que j'ai obtenu sous DCS pour les affricheurs


Image

- Allez dans S:\DCS A-10C\Scripts\Aircrafts\A-10C\Cockpit
- Puis allez dans le dossier de l'afficheur que vous voulez modifier (Eg : AN_ALR69V\indicator
- puis ouvrez le fichier init.lua de votre afficheur (Eg : AN_ALR69V_init.lua here)
- Trouvez la ligne:

Code : Tout sélectionner

indicator_type = indicator_types.COMMON
-And Et collez le code suivant en dessous :

Code : Tout sélectionner

purposes = {render_purpose.GENERAL, render_purpose.HUD_ONLY_VIEW, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} screenspace_scale_initial = 3; screenspace_diplacement = {0,0} local x_size = 1 local y_size = 1 function update_screenspace_diplacement(zoom_value) screenspace_scale = screenspace_scale_initial + zoom_value; if screenspace_scale < 1 then screenspace_scale = 1 end local screen_height = 2.0; local screen_width = screen_height * LockOn_Options.screen.aspect; local scaled_width = SelfWidth * screenspace_scale local scaled_height = y_size * scaled_width -- for indicator all sizes is function of width scaled_width = x_size * scaled_width screenspace_diplacement = { 0.5 * screen_width - 0.5 * scaled_width, -0.5 * screen_height + 0.5 * scaled_height} screenspace_diplacement_arcade = {screenspace_diplacement[1], 0.5 * screen_height - 0.5 * scaled_height} end update_screenspace_diplacement(0) function set_full_viewport_coverage(viewport) local w = LockOn_Options.screen.width local h = LockOn_Options.screen.height local a = LockOn_Options.screen.aspect local x = (-1.0 + 2.0 * (viewport.x / w)) * a local y = 1.0 - 2.0 * (viewport.y / h) local width = (viewport.width / w) * a local height = viewport.height / h local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth screenspace_scale_x = 2.0 * width / scl_wdt_K screenspace_scale_y = 2.0 * height / scl_hgt_K screenspace_diplacement = {x + width, y - height} screenspace_diplacement_arcade = screenspace_diplacement purposes = {render_purpose.HUD_ONLY_VIEW, --render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always render_target_always = true end -- try to find assigned viewport local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua" local env = {} env.screen = LockOn_Options.screen local f = loadfile(multimonitor_setup_name) if f then setfenv(f,env) pcall(f) local vp = nil vp = env.[color=Red]RWR_SCREEN[/color] if vp ~= nil then dbg_print("ok we have directly assigned viewport to CDU\n") set_full_viewport_coverage(vp) end end
-Changer la valeur en rouge pour définir le nom de votre ViewPort
-Aller dans \Config\MonitorSetup\ProfilEcran.lua
- Ajouter une section Viewport Comme ceci :

Code : Tout sélectionner

RWR_SCREEN = { x = 1000; y = 1245; width = 170; height = 170; }
Amusez-Vous!!!
Image
Image
Image
Avatar de l’utilisateur

Legionnaire
Mécano au sol
Mécano au sol
Messages : 534
Inscription : 23 février 2009

#2

Message par Legionnaire »

icemaker a écrit :J'ai réussi!!!!!!
Voici une petite capture de ce que j'ai obtenu sous DCS pour les affricheurs


Image

- Allez dans S:\DCS A-10C\Scripts\Aircrafts\A-10C\Cockpit
- Puis allez dans le dossier de l'afficheur que vous voulez modifier (Eg : AN_ALR69V\indicator
- puis ouvrez le fichier init.lua de votre afficheur (Eg : AN_ALR69V_init.lua here)
- Trouvez la ligne:

Code : Tout sélectionner

indicator_type = indicator_types.COMMON
-And Et collez le code suivant en dessous :

Code : Tout sélectionner

purposes = {render_purpose.GENERAL, render_purpose.HUD_ONLY_VIEW, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} screenspace_scale_initial = 3; screenspace_diplacement = {0,0} local x_size = 1 local y_size = 1 function update_screenspace_diplacement(zoom_value) screenspace_scale = screenspace_scale_initial + zoom_value; if screenspace_scale < 1 then screenspace_scale = 1 end local screen_height = 2.0; local screen_width = screen_height * LockOn_Options.screen.aspect; local scaled_width = SelfWidth * screenspace_scale local scaled_height = y_size * scaled_width -- for indicator all sizes is function of width scaled_width = x_size * scaled_width screenspace_diplacement = { 0.5 * screen_width - 0.5 * scaled_width, -0.5 * screen_height + 0.5 * scaled_height} screenspace_diplacement_arcade = {screenspace_diplacement[1], 0.5 * screen_height - 0.5 * scaled_height} end update_screenspace_diplacement(0) function set_full_viewport_coverage(viewport) local w = LockOn_Options.screen.width local h = LockOn_Options.screen.height local a = LockOn_Options.screen.aspect local x = (-1.0 + 2.0 * (viewport.x / w)) * a local y = 1.0 - 2.0 * (viewport.y / h) local width = (viewport.width / w) * a local height = viewport.height / h local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth screenspace_scale_x = 2.0 * width / scl_wdt_K screenspace_scale_y = 2.0 * height / scl_hgt_K screenspace_diplacement = {x + width, y - height} screenspace_diplacement_arcade = screenspace_diplacement purposes = {render_purpose.HUD_ONLY_VIEW, --render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always render_target_always = true end -- try to find assigned viewport local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua" local env = {} env.screen = LockOn_Options.screen local f = loadfile(multimonitor_setup_name) if f then setfenv(f,env) pcall(f) local vp = nil vp = env.[color=red]RWR_SCREEN[/color] if vp ~= nil then dbg_print("ok we have directly assigned viewport to CDU\n") set_full_viewport_coverage(vp) end end
-Changer la valeur en rouge pour définir le nom de votre ViewPort
-Aller dans \Config\MonitorSetup\ProfilEcran.lua
- Ajouter une section Viewport Comme ceci :

Code : Tout sélectionner

RWR_SCREEN = { x = 1000; y = 1245; width = 170; height = 170; }
Amusez-Vous!!!

ok c'est bien joli tout ca, mais a quoi sa sert? Le bidouillage c'est pourquoi faire?
Avatar de l’utilisateur

Topic author
icemaker
Gardien du temple
Gardien du temple
Messages : 4103
Inscription : 04 août 2001

#3

Message par icemaker »

ça sert à afficher les instruments sur un autre ecran ce qui est utile pour les créateurs de pits.
Image
Image
Image
Avatar de l’utilisateur

Legionnaire
Mécano au sol
Mécano au sol
Messages : 534
Inscription : 23 février 2009

#4

Message par Legionnaire »

icemaker a écrit :ça sert à afficher les instruments sur un autre ecran ce qui est utile pour les créateurs de pits.


Merci pour l'info! :notworthy
Avatar de l’utilisateur

Merlin (FZG_Immel)
As du Manche
As du Manche
Messages : 14332
Inscription : 18 août 2001

#5

Message par Merlin (FZG_Immel) »

Petite astuce, pour ceux qui souhaitent déporter MFD's et autres, sur un autre écran, et qui ont besoin de les positionner exactement sur un écran, pour y superposer des choses, genre MFD's thrustmater etc etc..

J'ai par intuition mis au point une technique très précise, et qui fonctionne tj mieux que le tatonnement (je suis persuadé que d'autres font déjà pareil, mais bon, sait-on jamais j'apprendrais ptet qqch à qqun..)

Alors simplement..

Tout d'abord, on regarde quelle sera la résolution des 2 écrans.. dans mon cas, 1920x1080, pour les deux.. le premiers (celui du jeu) et le 2ème, celui des MFDs..

Ensuite, on mesure précisément la taille de la dalle LCD de son 2ème écran, celui ou on va afficher des MFDs.. Dans mon cas : 48cm x27cm...


Ensuite, il suffit d'appliquer des produix en croix avec les données suivantes..

En gros, on sait que 1920pixels correspondent à 48cm et que 1080pixels correspondent à 27cm

Par ex, en pratique.. j'aimerais connaitre la taille de mes MFDs sur l'écran (en pixel) pour qu'ils rentrent pile poil dans mes MFD's thrustmaster..

Rien de plus simple.. on mesure la taille des MFD's thustmaster (cotes intérieures) avec un mètre (ou autre).. ca donne, 11cm x 11cm.

Du coup..

On fait son produit en croix,

1920 = 48
X = 11

pour obtenir le rapport..


(1920(p)x11(cm) ) / 48(cm) = 440(p)

Oui, les MFDs de 440x440 pixels font exactement 11cmx11cm sur mon écran, et rentrent donc pile poil dans mes MFD's thrustmaster-




Pour les positionner sur l'écran, on procéde pareil:

Le point qui indique ou sont positionné les instruments est marqué par le poit supérieur gauche de chaque instruments.

Ainsi, pour mon MFD gauche, je mesure sur l'écran, OU je veux qu'il apparaisse :

chez moi c'est à 8,6cm du bord gauche de l'écran, pour les "X" et à 14,5cm du bord supérieur de l'écran pour les "Y"


Comme sous windows mon deuxième écran est à droite de mon écran principal, ma résolution "globale" est de 3840 x 1080-

Pour connaitre les décalage en pixel, je refait mon produit en croix :


( 1920(p) x 8,6(cm) ) / 48(cm) = 344(p)

Ma coord sur l'axe X pour mon MFD de gauche est donc de 344pixel sur le deuxième écran, qui sur ma coord "globale" me donne 2264 (344 + 1920)





On procède pareil pour l'axe Y

Dans ce produit en croix, je peux utiliser l'autre rapport pixel/cm que j'ai mesuré plus haut

1080(p) = 27(cm)
Y(p) = 14,5 (cm)

Ce qui donne le produit en croix suivant :

( 1080(p) x 14.5(cm) ) / 27 = 580 (p)

Comme les 2 écrans son côte à cote, la résolution verticale est la même pour un écran, ou les 2.. il faut donc simplement mettre 580 comme Y pour ce MFD..

Il faut donc placer ce MFD aux coords suivantes :

X = 2264
Y = 580




Voilà, c'est tout con, mais je sais pas si tout le monde y a pensé (c'est des maths plus que basique, rien de génial) , mais en tous cas ça fonctionne au poil, et la précision est redoutable.

ps: la précision dépend de la précision de la prise de vos mesures !
1 Asus Z390-H - SSD M.2 EVO 970 - Intel I9 9900k@5.0ghz - 32gb DDR4 4000 - ZOTAC 2080ti AMP Extreme Core - Cougar FSSB + Cougar NN_Dan + HOTAS Warthog - Thrustmaster TPR Pedals - Track IR5
2 Asus Maximus VII Ranger - Intel I7 4970k@4.4Ghz - 16Gb Kingston fury - Asus 1080ti Strix OC
3 Asus Rampage III - Intel I7 950@3.33ghz - 6gb DDR3 Kingston - MSI GTX 970 4G - Track IR3 Pro VE
Avatar de l’utilisateur

Merlin (FZG_Immel)
As du Manche
As du Manche
Messages : 14332
Inscription : 18 août 2001

#6

Message par Merlin (FZG_Immel) »

Pour info Icemaker, j'ai fait ta manip pour le CDU, et il s'affiche bien sur mon 2ème écran, mais le pb c'est qu'il disparait de mon cockpit 3d..
1 Asus Z390-H - SSD M.2 EVO 970 - Intel I9 9900k@5.0ghz - 32gb DDR4 4000 - ZOTAC 2080ti AMP Extreme Core - Cougar FSSB + Cougar NN_Dan + HOTAS Warthog - Thrustmaster TPR Pedals - Track IR5
2 Asus Maximus VII Ranger - Intel I7 4970k@4.4Ghz - 16Gb Kingston fury - Asus 1080ti Strix OC
3 Asus Rampage III - Intel I7 950@3.33ghz - 6gb DDR3 Kingston - MSI GTX 970 4G - Track IR3 Pro VE
Avatar de l’utilisateur

Topic author
icemaker
Gardien du temple
Gardien du temple
Messages : 4103
Inscription : 04 août 2001

#7

Message par icemaker »

désolé j'avais pas vu le message :

Code : Tout sélectionner

purposes = {render_purpose.HUD_ONLY_VIEW, [color=Red]--[/color]render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
Enleve les 2 tirets que j'ai surligné en rouge pour réafficher dans le cockpit 3D.
Image
Image
Image

Alienfive
Nouvelle Recrue
Nouvelle Recrue
Messages : 3
Inscription : 05 septembre 2009

Pour Iceberg

#8

Message par Alienfive »

Je suis passionné par ce simulateur Warthog, et j'étais si heureux de copier le fichier pour déporter les MFD et autres... Las, avec la dernière version en téléchargement, un petit cadre me dit: LUA files modified.
Au secours.
Et merci .

Alienfive
Nouvelle Recrue
Nouvelle Recrue
Messages : 3
Inscription : 05 septembre 2009

Pour Icemaker

#9

Message par Alienfive »

Voir Iceberg avec mes plus plates excuses.

Chris4335
Nouvelle Recrue
Nouvelle Recrue
Messages : 46
Inscription : 13 mars 2011

#10

Message par Chris4335 »

salut
Depuis la dernière maj A10C impossible de déporter quoi que se soit c'est pareil pour toi icemaker ?
[SIGPIC][/SIGPIC]
Avatar de l’utilisateur

hellflyer
Pilote Confirmé
Pilote Confirmé
Messages : 2174
Inscription : 03 août 2001

#11

Message par hellflyer »

Regle C6 N° 24"pas de citations, sauf si l'auteur est mort"
Image
Image

Asus Rampage IV Extreme/ I7 3930K / 2 x Asus GeForce GTX 670 DCU II - 2 Go (GTX670-DC2-2GD5)SLI /G.Skill Kit Extreme3 8 x 4 Go PC12800 Ripjaws Z CAS9 /256 GB Samsung SSD 840 PRO / Seagate Barracuda SATA III 6 Gb/s - 2 To
Avatar de l’utilisateur

babar25
Pilote Philanthrope
Pilote Philanthrope
Messages : 1086
Inscription : 09 novembre 2002

#12

Message par babar25 »

salut a tous

et bien moi je patauge .
je n y arrive pas ce n est pas faute d essayer mais que voulez vous .

une petite aide serai la bienvenue
merci .
Répondre

Revenir à « Support technique »