Travailler avec des réflexions avancées dans UDK

Dans ce didacticiel, nous allons apprendre à configurer à la fois un matériau de réflexion dynamique (temps réel) et statique dans Unreal Development Kit et à créer un commutateur de paramètre permettant de passer des réflexions dynamiques aux réflexions statiques, ou inversement dans UDK. Pour le tutoriel, j'utiliserai la version de février 2011 d'UDK.


Téléchargez des images haute résolution pour ce tutoriel.



Réflexion dans UDK

Dans UDK, les réflexions ne sont rien d’autre que des environnements capturés et projetés inversement à la surface d’objets et capturés à l’aide de Screencapture Actors dans UDK. Vous devez placer cet acteur pour capturer la scène ou l'environnement de votre carte et le stocker dans un format de texture spéciale appelé Render to Target, cette texture doit figurer dans le navigateur de contenu. Il peut s'agir d'une texture statique ou en temps réel qui peut être utilisée dans un matériau et l'installer en conséquence pour obtenir des réflexions sur certaines mailles telles que le métal ou le verre..

Pour mieux comprendre et faire fonctionner l'acteur de réflexion correctement, nous avons besoin d'une scène ou d'une carte entièrement développée de manière à ce qu'elle capture les objets de l'environnement environnant. Chargez UDK et ouvrez la carte "VCTF-Necropolis.udk" (ou n'importe quelle carte de votre choix), mais assurez-vous que votre carte est chargée avec beaucoup de textures d'objet et d'éclairage, elle devrait se trouver dans le dossier UT3 du répertoire d'installation de UDK, C'est UDKGame \ Content \ Maps \ UT3. Alors préparez votre carte.


Aller à Affichage-> Fenêtres du navigateur puis classes d'acteurs. Faisons simplement fusionner cette fenêtre Classes d'acteurs avec la fenêtre du navigateur de contenu afin de pouvoir accéder directement à la fenêtre Classes d'acteurs à partir de la fenêtre du navigateur de contenu. Pour ce faire, il suffit de cliquer sur le menu d’accueil juste à côté de l’option de menu Fichier et de cliquer sur Docké. Une fois que vous avez cliqué sur l'option ancrée, la fenêtre devrait disparaître et nous pouvons maintenant la charger directement à partir du navigateur de contenu..


Dans la fenêtre Classes d'acteurs, allez à Uncategorized-> SceneCaptureCubeMapActor. Sélectionnez-le et faites-le glisser / déposer dans votre scène, comme sur la photo ci-dessous. Assurez-vous simplement de placer cet acteur au centre d'un grand nombre d'objets bien éclairés, de manière à obtenir une belle réflexion. Sinon, vous pourriez voir des taches sombres sur cet acteur, ou une simple sphère de couleur noire. Cet acteur n'est pas visible dans le jeu quand on joue cette carte.

Après avoir glissé et placé l'acteur ci-dessus dans votre scène, vous obtenez un objet sphère de couleur noire ou sombre dans votre scène. C'est pour capturer l'environnement et refléter comme un miroir. Mais maintenant, la couleur est noire, car cet acteur stocke tout le reflet dans une texture spéciale appelée Rendu de la scène vers la cible, dynamique et non encore affectée. Créons cette texture dynamique puis.


Accédez au navigateur de contenu et créez un nouveau package appelé "Advanced_Reflection" (ou le nom de votre choix.) Cliquez avec le bouton droit de la souris dans le navigateur de contenu et créez un nouveau TextureRenderTargetCube. La différence entre Target 2d et Target Cube est que Cube capturera tous les axes de l'environnement et le stockera au format Cubemap. Là où la cible 2d consiste à capturer un seul côté de la face, ce qui convient à un maillage de surface plane unilatéral tel qu'un maillage de sol ou de sol.

Après avoir cliqué sur le nouveau TextureRenderTargetCube parmi les options du clic droit, une fenêtre s’affiche, comme dans l’image, pour définir la résolution de la texture. Assurez-vous de définir la résolution la plus basse possible, sinon la mémoire pourrait être volumineuse si vous l'utilisiez pour une scène en temps réel.Mais pour le moment, nous allons le régler à 1024 pour capturer les images haute résolution. Texture de réflexion statique, puis nous reviendrons à 256 plus tard. N'oubliez pas de nommer cette texture "RT_reflection". Cliquez sur OK et enregistrez le paquet. Après avoir appuyé sur OK, vous verrez une texture verte dans le navigateur de contenu, qui est votre texture dynamique que nous avons nommée RT_reflection dans le navigateur de contenu..

Maintenant que notre texture dynamique est prête, appliquons-la à l'acteur de capture de scène dans la scène..


Sélectionnez la texture dynamique nouvellement créée appelée RT_reflection dans le navigateur de contenu, puis revenez à votre scène, sélectionnez Acteur SceneCaptureCubeMap (la sphère noire) et appuyez sur F4 pour ouvrir ses propriétés. Réduisez simplement Scène Acteur de capture -> Capture de scène -> Propriétés de la capture et affectez la cible de texture en cliquant sur la flèche verte juste à côté. Vous obtiendrez la moitié de la réflexion et la moitié du noir sur la sphère, pour restituer tout ce dont vous avez besoin pour définir la plage en définissant la valeur FarPlane sur 999999 (ou aussi haut que vous pouvez) comme dans l'image ci-dessus. Vérifiez également / cochez les options Activer le brouillard et Activez le post-traitement si vous en avez dans votre scène, ou cochez / cocher la valeur Utiliser les paramètres de post-traitement de la scène principale. J'ai activé toutes les valeurs en surbrillance dans l'image ci-dessus.

Désormais, si vous ouvrez votre navigateur de contenu, vous verrez que la texture verte dans le navigateur de contenu affiche maintenant des informations de texture et que les informations de texture sont le reflet dynamique de votre scène. Avec cette texture, vous pouvez simplement configurer un matériau, ainsi que créer une nouvelle texture statique. Configurons un matériau, mais nous avons besoin d’un maillage statique pour appliquer ce matériau..


Pour ce didacticiel, j'ai créé deux mailles à géométrie simple, sphère et cylindre, comme indiqué ci-dessus. Je vais utiliser le cylindre pour les réflexions dynamiques en temps réel et la sphère pour les réflexions statiques. Créons maintenant une texture de réflexion statique.


Faites un clic droit sur cette texture dynamique dans le navigateur de contenu, puis cliquez sur Créer une nouvelle texture statique. Une fenêtre s'ouvrira pour nommer la nouvelle texture statique à créer. Nommez-le comme vous le souhaitez, mais pour ce tutoriel, je le nommerai "ST_reflection" et comme indiqué ci-dessus dans Grouping Field. Il vous suffit de taper "Textures" pour placer la nouvelle texture dans une sous-catégorie nommée Textures of Advanced_reflection. Après avoir appuyé sur OK, il faudra un certain temps pour créer la texture Static Cubemap dans le navigateur de contenu, patientez quelques instants, puis enregistrez le package..


Après la création de la texture de plan cubique statique nommée ST_reflection, vous devriez également avoir quelques autres textures portant le même nom. Ne les supprimez pas, il s'agit d'une texture de support contenant les six côtés des informations de réflexion. Cela va de moins X à X positif par exemple (suffixé comme Neg et Pos) compilé dans votre texture ST_reflection. Maintenant que nous avons les textures dynamiques et statiques RT_reflection et ST_reflection, il est temps de créer leur matériau..


Cliquez avec le bouton droit de la souris dans le navigateur de contenu et créez un nouveau matériau appelé "Réflexion" (ou le nom de votre choix).


Double-cliquez sur votre matériau nouvellement créé qui est le matériau de réflexion. Il est facile de configurer le matériel de réflexion dans la fenêtre de l'éditeur de matériau, mais ici, je vais configurer deux types de réflexion. C’est la réflexion dynamique et statique, comme vous pouvez voir la configuration dans l’image ci-dessus. Ceci est utile lorsque vous souhaitez des réflexions statiques sur des murs, des plafonds ou parfois sur le sol spécifiques lorsque vous créez un matériau d'instance ou un enfant de ce matériau, que nous ferons ultérieurement. Nous allons donc configurer le matériel de réflexion à la fois pour statique et dynamique.

La méthode suivante consiste simplement à configurer les paramètres de réflexion dynamique et statique avec un commutateur pour activer ou désactiver le type de réflexion souhaité dans l'instance matérielle. Vous pouvez l’utiliser avec votre matériel actuel ou le mélanger avec votre métal diffus, votre verre ou tout autre matériau de votre choix..

Configuration dynamique du matériau: Dans l'image ci-dessus, la configuration dynamique a trois connexions et passe par ReflectionVector> Transforms> RT_reflection. Configurons d'abord la réflexion dynamique, importons la texture dynamique (RT_reflection) dans la fenêtre de l'éditeur de matériaux et recherchons les expressions Transform et ReflectionVector. Ensuite, connectez le nœud Vecteur de réflexion au nœud de transformation vectorielle, puis connectez le nœud de transformation vectorielle aux UV du nœud d’échantillon de texture, c’est-à-dire la texture RT_reflection. Sélectionnez tous les nœuds et commentez Dyanmic_reflection (clic droit et nouveau commentaire) puis faites une copie de toute cette configuration de réflexion dynamique..

Configuration du matériau statique: La configuration du matériau statique est presque la même, à l'exception du nœud d'échantillon de texture qui correspond à la texture RT_Reflection. Remplacez-le par la texture ST_reflection de la configuration de Dynamic_reflection copiée. Modifiez le commentaire de Dynamic_reflection en Static_reflection, comme pour la configuration de l'image ci-dessus..


Nous avons maintenant besoin d’un commutateur pour passer de dynamique à statique ou inversement. Pour ce faire, il suffit de rechercher le paramètre de commutateur statique dans la fenêtre Expression du matériau et de le faire glisser vers votre écran, ou cliquez simplement avec le bouton droit de la souris sur l’éditeur de matériau, puis sélectionnez FunctionUtility-> New Static Switch. Branchez ST_reflection sur False et RT_reflection sur True pour ce commutateur. Vous pouvez maintenant brancher ce commutateur sur le canal Diffuse ou Emissive, ou bien le fusionner avec votre configuration matérielle actuelle à l’aide du noeud d’expression Lerp (interpolation linéaire)..

Paramètre de commutation statique: Ce commutateur a deux entrées, TRUE et FALSE. Bien que son explicite, mais il ne fera que rendre FALSE en tant que valeur par défaut et la valeur d'entrée True est ignorée. Pour changer cela, cliquez sur le paramètre Static Switch, puis sur la fenêtre de propriétés ci-dessous, cochez ou activez la valeur par défaut, comme dans l’image ci-dessus, et attribuez-lui un nom de paramètre tel que Static / Dynamic. Maintenant, enregistrez et fermez la fenêtre de l'éditeur de matériau.


Allez simplement dans le navigateur de contenu et cliquez avec le bouton droit de la souris sur ce matériau de réflexion nouvellement créé, puis cliquez sur Créer une nouvelle instance de matériau (constante). Après cela, une fenêtre apparaîtra pour nommer la nouvelle instance de matériau. Nommez-le simplement "Static_reflection" et suivez à nouveau le processus ci-dessus, mais cette fois-ci, appelez-le "Dynamic_reflection" pour la deuxième instance de matière..


Maintenant, vous avez deux instances du matériau dans le navigateur de contenu. Double-cliquez sur les deux instances de matériau..
Comme dans l'image ci-dessus, à gauche c'est le matériau statique et à droite c'est le matériau dynamique. Sous Groupes de paramètres, il y a une case à cocher Statique / Dynamique, assurez-vous simplement que la case à gauche est cochée pour le matériau statique. Et la case à cocher de droite est cochée pour le matériau dynamique, comme indiqué dans l'image ci-dessus. Ce paramètre statique / dynamique est créé uniquement en raison du commutateur créé précédemment dans la fenêtre de l'éditeur de matériaux. Une fois les réglages terminés, il est maintenant temps d’affecter ces matériaux à nos mailles statiques. Alors, fermez ces fenêtres de l'éditeur d'instance de matériau.


Accédez au navigateur de contenu et recherchez le maillage Cylinder and Sphere que j'ai créé pour ce didacticiel. Appliquez le matériau dynamique sur le cylindre et le matériau statique sur le maillage Sphère, comme indiqué dans l'image ci-dessus. C'est tout! Vous avez presque terminé, placez simplement ces deux mailles dans votre carte.


Placez le maillage de cylindre juste au-dessus de l'acteur de réflexion en temps réel et placez le maillage de Sphère où vous le souhaitez, ou vous pouvez le placer à côté du cylindre, côte à côte. Maintenant, teste le jeu dans ton éditeur.


Comme vous pouvez le voir dans l'image ci-dessus. Si vous regardez le cylindre, vous verrez un peu de réflexion déformée de votre personnage, c'est à cause de la courbure du cylindre. Plus le maillage est lisse, meilleure sera la réflexion, mais aucun changement ne sera apporté au reflet de la sphère. Ce qui a toujours l’air réel, c’est donc un bon moyen de simuler une telle réflexion et de l’optimiser. Les réflexions dynamiques en temps réel sont très rarement utilisées et le rendu de chaque image est très gourmand en ressources processeur et en processeur graphique. Soyez prudent avec l'acteur de réflexion en temps réel et ses paramètres, UDK peut se bloquer souvent si vous apportez constamment des modifications à l'acteur de réflexion en temps réel qui est l'acteur de capture de scène. Assurez-vous de sauvegarder chaque étape ou toute modification apportée. Testez le jeu dans votre fenêtre d'affichage à chaque fois et apportez les modifications nécessaires pour obtenir l'effet souhaité.


Conclusion:

L'utilisation de réflexions dynamiques en temps réel dans une carte aussi vaste avec une scène ou un environnement extérieur de grande taille épuise votre mémoire et peut même provoquer de nombreux crashs. Alors utilisez-le judicieusement et efficacement. La réflexion dynamique est souvent utilisée dans une carte intérieure, qui comporte de petites salles avec beaucoup de miroirs reflétant les intérieurs (tels que porte miroir et fenêtres ou métaux chromés). Toutefois, vous pouvez toujours simuler ces réflexions en basculant simplement vers les réflexions statiques. est un moyen intelligent et meilleur de le faire.

Merci d'avoir lu et bonne journée!


Nous avons publié quelques tutoriels liés qui pourraient également vous intéresser:

Articles Similaires
  • Astuce: Optimisation des textures dans Unreal Development Kit
  • Petit conseil: Introduction à la cartographie de la lumière dans UDK
  • Un guide complet pour les débutants sur UDK
  • Maya à UDK: Importation de maillages statiques à l'aide d'ActorX et de FBX
  • Speedtree to UDK: Création d'un palmier dans Speedtree et importation dans UDK