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é. |