Realmcrafter France
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

[Tuto] Intégration de Fast-Extension

Aller en bas

[Tuto] Intégration de Fast-Extension Empty [Tuto] Intégration de Fast-Extension

Message par Giuliani Mer 25 Juin - 22:42

Tutoriel FastExtension

FAST-EXTENSION est une librairie payante (11€) qui, une fois intégrée dans BlitzBasic, permet de s'affranchir du bon vieux moteur graphique en DirectX7 pour se rapprocher du DirectX 9.
Au programme, eau réaliste, ombres dynamiques, Occlusion avec les rayons du soleil, Glow/Bloom, brouillard volumétrique, effets de lumières etc...


En me basant sur le tutoriel réalisé par MJCamerer sur le forum officiel RCS, je vais tenter de vous de vous expliquer comment intégrer le bloom et le champs de profondeur grâce à Fast-Extension. Intégration en 10 minutes montre en main ^^


A) PRÉPARATION

Tout d'abord procurez-vous un exemplaire de FastExtension ici pour 11€:
http://fastlibs.com/

Une fois récupéré, dézippez-le.
1) Copiez FastExt.dll:
_ dans votre dossier Blitz3D
_ dans votre dossier Projet de jeu (avec server.exe, Client.exe etc...) également.

2) Ensuite dans \for_Blitz3D\include\ copiez FastExt.bb
_ dans votre dossier Modules (Dossier RCS source) afin qu'il soit compilé avec le client.



B) INITIALISATION

1) Ouvrez Client.bb et cherchez la section des Includes

[Tuto] Intégration de Fast-Extension IncludesBefore
Nous devons inclure le fichier FastExt.bb. Pour ce faire, juste après la ligne "Include "Modules\Utility.bb" ; Projectile 3D display system", ajoutez ceci:

Include "Modules\FastExt.bb"
Cette ligne va intégrer tout le code contenu dans FastExt.bb à votre client de projet. Toutes ses fonctions pourront désormais être utilisées. ça devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension IncludesAfter

2) Maintenant nous devons Initialiser et Des-initialiser cette librairie pendant son fonctionnement comme spécifié dans les documents d'aide.
La documentation FastExtension précise que la librairie doit être initialisée après la commande Graphics3D et dés-initialisée juste avant les commandes EndGraphics.
Ouvrons donc dans Modules\MainMenu.bb:

Une fois MainMenu.bb ouvert, trouvez cette section:
[Tuto] Intégration de Fast-Extension MainMenuInitExtBefore

Maintenant initialisons après chaque Graphics3D. Ajoutez cette ligne après chaque all Graphics3D's:

InitExt
ça devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension MainMenuInitExtAfter

Trouvons tous les EndGraphics toujours dans MainMenu.bb. Le 1er ressemble à ça:
[Tuto] Intégration de Fast-Extension MainMenuDeInitExtOneBefore

Souvenez-vous que nous devons des-initialiser la librairie avant chaque EndGraphics. ajoutez cette ligne avant chaque EndGraphics:

DeInitExt
cette section devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension MainMenuDeInitExtOneAfter

Encore un EndGrapics dans ce MainMenu.bb:
[Tuto] Intégration de Fast-Extension MainMenuDeInitExtTwoBefore

Maintenant ajoutons une ligne des-initialisation juste avant ce EndGrapics. La section devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension MainMenuDeInitExtTwoAfter
Nous en avons terminé avec ce MainMenu.bb. Sauvegardez et fermez ce fichier.

Ouvrons ClientLoaders.bb, il y a 2 autre Graphics3D commandes ici. Trouvez cette section:
[Tuto] Intégration de Fast-Extension ClientLoadersInitExtBefore

Ajoutons l'initialization juste après chaque commande Graphics3D comme tout à l'heure:
[Tuto] Intégration de Fast-Extension ClientLoadersInitExtAfter

Nous en avons terminé avec l'ajout de la librairie à Realm Crafter. Si vous avez parfaitement réussi cette partie, vous ne devriez jamais avoir à reinitialiser/desinitialiser FastExtension à l'avenir.
Vous pouvez même ajouter tous les autres possibilités qu'offrent FastExtension à Realm Crafter!


C) AJOUT DU GLOW/BLOOM

Maintenant nous allons pouvoir commencer à intégrer les effets Post Processing. Pour ce tuto, on va afficher du Glow (aussi connu comme Bloom) et Depth of Field (effet de profondeur).

Ouvrez Client.bb, et dans main loop, cherchez la section concernant le render. Elle devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension ClientPostProcessBefore

Pour intégrer l'effet Post Process Glow, nous devons ajouter la commande FastExtension:

RenderPostProcess FE_GLOW
La documentation FastExtension précise que le rendering d'un effet post process doit se placer après RenderWorld(). Donc ajoutons notre commande RenderPostprocess juste après RenderWorld(). Comme ceci:
[Tuto] Intégration de Fast-Extension ClientPostProcessAfter

Et voila! Votre jeu aura désormais un effet de Glow (Bloom) effect!
Essayez de compiler votre client.exe, remplacez l'ancien par celui-ci et lancez votre projet. Souvenez-vous pour travailler avec les sources, vous ne devez avoir aucun fichier encrypté (.eb3d) dans votre projet.
Voici ce que j'obtiens dans mon projet de test:
[Tuto] Intégration de Fast-Extension DefaultBloom

Pas mal non? Maintenant disons que nous souhaiterions avoir un Glow moins lumineux. Nous allons devoir le paramétrer. Ouvrez à nouveau Client.bb.
Dans la liste des "Global". Vous trouverez les global des variables. Elle devrait ressembler à ça:

Ouvrez une nouvelle fois Client.bb
Pour le rendre plus facile, on va ajouter certaines de nos propres globals pour personnaliser l'effet Glow.
Ces globals permettront d'utiliser plus facilement différents aspects de customisation pour l'effet Glow.
Ces valeurs que j'ai essayé personnellement et qui fonctionnaient plutôt pas mal. Libre à vous d'expérimenter en modifiant ces valeurs!
Ajoutez ces lignes juste après la dernière global FullScreen/VSync:

;Glow variables for FastExt
Global GlowAlpha = 0.5
Global GlowDarkPasses = 2
Global GlowBlurPasses = 4
Global GlowBlurRadius# = 0.35
Global GlowQuality = 0
Global GlowColorRed = 255
Global GlowColorGreen = 255
Global GlowColorBlue = 255
Global GlowAlphaTexture = 0
ça devrait ressembler à ça maintenant:
[Tuto] Intégration de Fast-Extension GlobalVariablesAfter

Maintenant que toutes les globals ont été définies, Allons juqu'à RenderWorld() et ajoutons y les effets personnalisés. Add this line just above the line where we rendered Glow:

CustomPostprocessGlow GlowAlpha, GlowDarkpasses, GlowBlurPasses, GlowBlurRadius, GlowQuality, GlowColorRed, GlowColorGreen, GlowColorBlue, GlowAlphaTexture
Elle devrait maintenant ressembler à ça:
[Tuto] Intégration de Fast-Extension ClientPostProcessCustomAfter

Maintenant compilons les sources et essayons ça in game. Elle devrait maintenant ressembler à ça:
[Tuto] Intégration de Fast-Extension CustomBloom

Comme vous pouvez le voir la luminosité du Glow est moins intense. C'est parce que nous avons modifié l'alpha du glow de moitié à 0.5. C'est mieux.

Maintenant que nous avons ajouté un effet, Vous devriez être capable d'ajouter n'importe quel effet FastExt. Le procédé est assez similaire à chaque fois.
Afin de renforcer ce tutorial, Je vais également vous montrer comment ajouter un autre effet Post Process, l'effet/champs de profondeur (Depth of Field ou DOF).


D) AJOUT DU DEPTH OF FIELD (EFFET DE PROFONDEUR)

On retourne à la section des Global. Cette fois nous allons ajouter directement touts les paramètres en même temps. Après les lignes ajoutées pour le GLOW, ajoutons celles-ci pour customiser le Depth of Field:

;Deep Of Field Variables For FastExt
Global DofNear# = 70
Global DofFar# = 140
Global DofDirection = 1
Global DofBlurPasses = 4
Global DofRadius# = 0.35
Global DofQuality = 0
ça devrait maintenant ressembler à ça:
[Tuto] Intégration de Fast-Extension GlobalVariablesDOFAfter

Retour là où on a ajouté l'effet Glow au render. Ajoutez la ligne suivante pour le DOF:

; Customize DOF effect
CustomPostprocessDOF DofNear, DofFar, DofDirection, DofBlurPasses, DofRadius, DofQuality
RenderPostprocess FE_DOF

ça devrait ressembler à ça:
[Tuto] Intégration de Fast-Extension ClientPostProcessCustomDOFAfter

Et voila! Essayez de compiler le jeu et lancez-le. Vous devriez avoir un joli effet de bloom couplé avec un DOF. Notez comment les choses en arrière-plan sont floutées, et au 1ere plan claires:
[Tuto] Intégration de Fast-Extension CustomBloomDOF


Bien évidemment ces effets sont loin d'être parfaits. Vous pourrez augmenter ou réduire le champs de profondeur de Depth of Field, ajuster la luminosité du Glow, etc...
Amusez-vous avec les valeurs et trouvez les paramètres qui s'adaptent parfaitement à votre jeu!
Giuliani
Giuliani
Admin

Messages : 263
Points : 424
Date d'inscription : 25/06/2014
Age : 45
Localisation : Toulouse

https://realmcrafter.1fr1.net

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum