Home - Forums - Documentation - Gallery - Bugs

Contents

Utilisation du Bug Plug

Introduction

Le Bug Plug est une fonctionnalité remarquable de Crystal Space pour débugguer et bidouiller facilement votre monde 3D. Vous pouvez l'utiliser comme n'importe quel autre plugin, il suffit de charger votre monde et de l'enregistrer.

Tout d'abord, lancez le Walktest pour cet exemple, car la map castle est idéale pour cette leçon. Quand le Walktest sera chargé complètement, tapez dans la console du Walktest :

bugplug

Celà chargera le plugin.

Si vous voulez utiliser le Bug Plug dans vos propres applications, vous pouvez utilisez -plugin=bugplug dans la ligne de commande.

Fonctionnement

Le Bug Plug est actif lorsque vous pouvez voir le framerate actuel (taux d'image par seconde) dans le coin inférieur gauche de l'écran :

Image:Bugplug.jpg

Mais le Bug Plug peut faire plus que d'afficher le framerate actuel. Appuyer sur les touches [Ctrl+d] pour voir ce message :

Image:Pressbugplugkey.jpg

Maintenant appuyer sur la touche [e] de votre clavier pour basculer en mode fil de fer (wireframe).

Image:Wireframe.jpg

Le Bug Plug vous affichera le maillage en fil de fer des meshes rendus. Cool.

A tout moment, vous pouvez prendre une capture d'écran (screenshot) avec la combinaison de touche [Ctrl+d] et [F11]. Le Bug Plug sauve la capture en format .png dans votre répertoire Crystal Space (c'est l'option par défaut, mais elle peut être modifiée). La première image sera nommée crystalspace000.png, la deuxième crystalspace001.png et ainsi de suite. Le plugin s'occupe de la numérotation automatiquement, soyez sans crainte, il ne réécrira jamais sur vos anciennes captures d'écran. Si vous avez besoin d'une capture d'écran en haute résolution (un "überscreenshot" !), appuyer sur [Ctrl+d] et [Shift+F11]. Vous obtiendrez une capture d'écran en 2048x1536 pixels, j'espère que çà satisfera vos besoin.

Travailler avec des meshes

Vous pouvez sélectionner n'importe quel mesh dans le fichier map chargé. L'exemple suivant utilise la map castle. Lancez le Walktest et faites ce qui suit :

Lorsque vous appuyez sur les touches [Ctrl+s], vous pouvez sélectionner des meshes d'un clic de souris. Essayez pour voir. Appuyer sur [Ctrl+s] et cliquer sur un mesh sympathique. Le résultat donnera quelque chose comme çà :

Image:Meshselect.jpg

Rendez-vous sur la plaque du niveau castle :

Image:Table1.jpg

Maintenant appuyer sur [Ctrl+s] et cliquer sur la plaque. Le résultat devrait ressembler à quelque chose comme çà :

Image:Table2.jpg

Nous pouvons alors déplacer ce mesh à l'aide de quelques raccourcis Bug Plug. Appuyer sur [Ctrl+d], ensuite sur [Shift+Page précédente]. Le mesh se déplacera d'une unité dans la direction Z (les coordonnées en Z seront incémentées d'une unité).

Image:Table3.jpg

Les autres touches de déplacement sont :

  • [Shift+Flèche haut] : incrémente d'une unité les coordonnées en Y.
  • [Shift+Flèche bas] : décrémente d'une unité les coordonnées en Y.
  • [Shift+Flèche gauche] : incrémente d'une unité les coordonnées en X.
  • [Shift+Flèche droite] : décrémente d'une unité les coordonnées en X.
  • [Shift+Page précédente] : incrémente d'une unité les coordonnées en Z.
  • [Shift+Page suivante] : décrémente d'une unité les coordonnées en Z.

A noter que vous pouvez sauvegarder les changements en appuyant sur les touches [Ctrl+d] et [Ctrl+F10].

Vous pouvez cacher le mesh sélectionné avec la touche de débug [h] (appuyez sur [Ctrl+d] et [h]) :

Image:Table4.jpg

Pour annuler, appuyez sur [Shift+h] après avoir fait un [Ctrl+d].

Maintenant dirigez-vous sur la droite vers les torches enflammées :

Image:Table6.jpg

Appuyez sur [Ctrl+s] et cliquer sur la torche du mur.

Image:Torch1.jpg

Regardez tout autour et vous verrez que vous avez sélectionné une grande boîte qui inclut quatre torches. A présent si vous appuyer sur les touches [Ctrl+d] et [Ctrl+Alt+c] vous verrez les triangles de collision.

Image:Torch2.jpg

Ainsi vous pouvez voir que les quatres torches ont été exportées par un seul mesh.

Autres possibilités

Le Bug Plug peut vous montrer chaque secteur d'une couleur différente. Appuyez sur [Ctrl+d] et [Ctrl+Shift+c] pour obtenir le résultat suivant (Cette capture a été prise d'un point où trois secteurs sont visibles) :

Image:Colouredsectors.jpg

Vous pouvez éditer la valeur du champ de vision de la caméra. Appuyez sur la touche [f] et entrez une valeur.

Image:Fov.jpg

La touche [b] active/désactive l'affichage de la boite en surbrillance des meshes. La touche [r] fait de même avec les meshes radiaux.

Configurer le Bug Plug

Le Bug Plug possède deux fichiers de configuration dans le répertoire CS/data/config. Le bugplug.cfg contient les lignes suivantes :

; file, where the key bindings are stored
Bugplug.Keybindings = /config/bugplug.key
; format of the screenshot filename
; the rightmost string of digits is automatically replaced with a number
Bugplug.Capture.FilenameFormat = /this/crystal000.png
; MIME type of the screenshot image to save
Bugplug.Capture.Image.MIME = image/png
; image saver options for the screenshot file
Bugplug.Capture.Image.Options = progressive

La clé Bugplug.Capture.FilenameFormat définit le formatage de nom des captures d'écran. Si vous y entrez un format tel que scrshot000.png, le Bug Plug sauvegardera vos captures d'écran sous la forme : scrshot000.png, scrshot001.png, ...

La clé Bugplug.Capture.Image.MIME = image/png stocke le type MIME des captures d'écran. Vous pouvez le modifier en n'importe quel format que Crystal Space supporte : jpg, tga, bmp, etc.

Le second fichier de configuration porte le nom de bugplug.key. C'est un simple fichier texte dont le contenu par défaut est le suivant :

ctrl-d=debugenter
ctrl-s=mouseenter
d=dumpeng
shift-d=dumpsec
e=edges
c=clear
ctrl-shift-c=colorsectors
alt-c=cacheclear
alt-d=cachedump
t=texture
l=lighting
shift-g=gouraud
shift-m=mmx
shift-t=transp
ctrl-b=bilinear
ctrl-t=trilinear
ctrl-l=ilace
m=mipmap
shift-i=inter
g=gamma
alt-b=dblbuff
shift-c=dumpcam
f=fov
shift-f=fovangle
alt-t=terrvis
b=meshbbox
r=meshrad
ctrl-alt-c=meshcd 
ctrl-alt-v=meshvis
ctrl-alt-s=meshshad
ctrl-alt-b=meshbase
ctrl-g=debuggraph
ctrl-c=enginecmd toggle_cullstat
shift-e=enginestate
v=visculview
shift-v=visculcmd cycle_view
ctrl-v=visculcmd clear_stats
alt-v=visculcmd dump_state
alt-a=visculcmd analyze_vis
1=visculcmd toggle_frustum
2=visculcmd toggle_coverage
3=visculcmd toggle_history
4=visculcmd toggle_queue
5=visculcmd toggle_vpt
6=visculcmd toggle_ignoresmall
7=visculcmd toggle_clampoccluder
8=visculcmd toggle_splatting
9=visculcmd toggle_invertedclipper
0=visculcmd toggle_ignorebadoccluder
shift-1=visculcmd origin_z --
shift-2=visculcmd origin_z ++
shift-3=visculcmd setup_debugsector
shift-4=visculcmd navigate_child1
shift-5=visculcmd navigate_child2
shift-6=visculcmd navigate_parent
shift-s=debugsector
shift-up=mesh_yplus
shift-down=mesh_ymin
shift-left=mesh_xmin
shift-right=mesh_xplus
shift-pgup=mesh_zplus
shift-pgdn=mesh_zmin
up=ds_forward
down=ds_backward
left=ds_turnleft
right=ds_turnright
alt-up=ds_up
alt-down=ds_down
alt-left=ds_left
alt-right=ds_right
alt-s=debugview
s=visculcmd setup_debugview
alt-f=visculcmd toggle_freeze
ctrl-f=visculcmd exact_freeze
f10=savemap
ctrl-f10=savemap
f11=scrshot
ctrl-f11=scrshot
shift-f11=uberscreenshot
f12=scrshot
ctrl-f12=scrshot
ctrl-alt-p=fps
h=hideselected
shift-h=undohide
ctrl-p=counterreset
alt-p=counterremove
shift-p=counterfreeze
w=shadowdebug
alt-u=unprepare
ctrl-m=memorydump
p=profdump
ctrl-shift-p=profreset
ctrl-shift-s=debugcmd iGraphics3D dump_slms
ctrl-shift-v=debugcmd iGraphics3D dump_vbostat
ctrl-shift-f=debugcmd iGraphics2D dump_fontcache
ctrl-shift-z=debugcmd iGraphics3D dump_zbuf
ctrl-shift-1=switchculler crystalspace.culling.frustvis
ctrl-shift-2=switchculler crystalspace.culling.dynavis
ctrl-alt-m=selectmesh
ctrl-alt-o=onesector
ctrl-alt-l=listplugins

Vous pouvez donc modifier ici les touches de raccourci des commandes de débug.

J'espère que cette courte introduction vous aidera à comprendre les bases de l'utilisation du Bug Plug. Appuyez sur [Ctrl+d] et amusez-vous...


Langage: EnglishBrazilianChineseEspañolEsperantoFrançaisMagyar
Make a translation

| Article | Discussion | View source | History |