STATICMESHES FABRIQUER AVEC UNREALED

 

 

Après avoir lancé l'éditeur de Unreal, on pourrait se demander si les StaticMehes faites dans l' éditeur valent la peine d'être utilsés, quelles sont les differences entre ceux faites avec un programme 3d séparé. Ce tutoriel a pour but d'expliquer pourquoi les StaticMeshes ne devraient jamais être fait dans l'éditeur d'Unreal.

 

Bien que l'éditeur n'ai aucun ennui a transformer des formes simple comme des cubes et des cylindres en StaticMeshes, quelque chose de compliqué peut apparaître par la suite. Dans l'exemple ci-dessous un rectangle plein traversé par un cylindre de 12 faces:

 

 

Une fois que cela est fait on peut voir comment le BSP fonctionne, en dessous c'est la même pièce sous un logiciel 3D (3DSMAX):

 

 

Le BSP représente la cloison binaire de l'espace, c'est la manière donc UnrealED divise la pièce en secteur pour l'optimisation et l'éclairage. Le regardant logiquement on peut voir dont la manière UunrealED a divisé la surface avant. Elle a choisi un des 12 côtés du cylindre et a fait une ligne de tangente le long d'elle pour créer le polygone marqué 1. Elle a alors procédé dans le sens contraire des aiguilles d'une montre faisant des coupes de tangente le long les 12 des autres côtés pour créer les polys 2, 3, 4 et ainsi de suite jusqu'à ce que la surface entière ait été divisée. Ceci peut sembler comme une manière propre de la faire, et dans le cas du BSP il l'est. Cependant, si nous regardons cette méthode a créé 12 sommets supplémentaires, accentués dans le rouge. Ces sommets supplémentaires n'ont aucun effet sur le BSP pendant que les surfaces du BSP sont éclairé parPixel. Cependant, les StaticMeshes sont éclairé a leur sommet , la signification du moteur calcule l'éclairage à chaque sommet et emploie ces valeurs pour allumer les surfaces. Puisque cette information prend l'espace, ces 12 sommets supplémentaires augmentent notre volume de fichier inutilement, 24 si vous comptez ceux sur le visage arrière.

 

La méthode de la tangente-ligne est de diviser les surfaces mais le probleme principal est qu'il peu convenable pour l'usage des StaticMeshes, comme démontré par l'image suivante:

 

 

Pour voir ce que je veux dire jettons un coup d'oeil au polygone accentué marqué 1. À première vue il peut sembler normal, il a 5 sommets, mais le rouge accentué par le bord est seulement relié aux points finaux, le sommet vert n'est pas relié à lui. Si nous déplaçons le sommet inférieur on peut voir ceci:

 

 

Ceci ne pourrait pas sembler comme etre un problème, mais si nous jetons un coup d'oeil à cette maille dans l'éditeur Unreal on peut voir qu'il en est un:

 

 

Dans cette image j'ai employé une texture noire sur la maille et blanche sur les murs pour illustrer le problème. Puisque ces sommets ne sont pas reliés, il crée une couture évidente dans UnrealED, qui est beaucoup plus prononcé quand vous vous déplacez autour. En plus de celui, ces sommets ne sont pas employés pour calculer l'éclairage pour les polys adjacents, qui donne un résultat laid:

 

 

Maintenant on peut voir a quoi ressemble ce StaticMeshesce optimisé. Après que quelques minutes, le StaticMeshes est completement optimisé au maximun et tous les sommets supplémentaires ont été enlevés:

 

 

L'exportant vers UnrealED et la plaçant côte à côte avec lle StaticMeshes fait avec UnrealED, on peut immédiatement voir la différence:

 

 

Comme on peut le voir, dans cette optimisation simple l'exemple n'a aucun effet sur le nombre de poly , mais des exemples plus extrêmes donneront rapidement une idée de l'éfficacité que cela peut être. Voici un StaticMeshes complexe créé dans UnrealED:

 

 

Après optimisation maximum, le nombre de Polygone ont été nettement réduits:

 

 

Une chose importante qu'UnrealED ne peut pas fournir est le lissage. En lissant des groupes débarassez-vous des bords pointus sur des StaticMeshes en combinant l'éclairage appliqué à elles, comme démontré par l'image suivante. Le même StaticMeshes est employée pour tous les deux avant et après le projectile, la seule différence est que celle du bon côté a eu tous ses polygones mis dans le même groupe de lissage:

 

 

Donc les StaticMeshes ne doivent jamais êtes fait dans UnrealED, il vaut certainement perdre plus de temps sur un logiciel de 3D séparé.