lundi 11 février 2013

TFA Facade optimisée (ou presque)

EDIT4: Avancement. J'ai essentiellement simplifié mes meshs, j'ai nettement moins de triangles qu'avant.


EDIT3: J'ai rajouté la base en pierre. Je commence à avoir des gros soucis niveau taille de mes meshs, je vais m'occuper de ça demain. Par contre il n'est pas possible d'exporter le résultat des meshs simplifiés dans UDK (un peu comme SpeedTree, c'est un programme tiers et pas gratuit hors UDK). Donc soit je trouve un équivalent soit je fait ça à la main. Mais sur ma maison je devrais pas dépasser 15% des meshs totaux.
J'ai trouvé un super prgoramme qui fait l'équivalent de Simplygon et les fonctions de la version Lite (gratuite) sont suffisantes (il faut juste un mesh de base de moins de 15.000 tris).
En gros (si vous connaissez pas Simplygon) le principe c’est que vous chargez votre Mesh et un un clic il vous simplifie le Mesh en fonction du % de triangles final que vous voulez et sans détruire les UV ! C'est génial.
-> http://www.atangeo.com/download

La taille des textures à aussi bien augmenté mais c'est parce que j'ai une 1024 presque vide, elle continent seulement les contours des portes/fenêtres, je rajouterai des petits meshs en pierre dessus.


EDIT2: Avancement d'aujourd'hui : Un Mesh de mur tileable. Il m'a vachement plus de temps que je pensais mais au moins il est un moins moche que les précédents que j'ai fait.
J'ai préféré faire un mesh pour plusieurs raisons
1. On peut non seulement le tiler en mettant les murs emboités les un dans les autres (comme une simple texture) mais en le dupliquant et en le renversant on peut aussi l'emboiter avec le mur précédent donc avec le même mur j'ai deux variations
2. Les coins sont modélisés ce qui donne une meilleure silhouette
3. Je peux faire ressortir quelques briques avec de la géométrie

Par contre il y a un (très) gros inconvénient : je devrai faire des meshs pour les ouvertures des portes et fenêtres ... Ça c'est la misère ...


EDIT1: Avancement du jour. J'ai commencé à rajouter la petite annexe mais je bloque au niveau du rez de chaussée, j'arrive pas à savoir si c'est plus des pierres/briques ou du plâtre.
Je stabilise plus ou moins mon nombre de triangles mais la taille que prend mes mesh est trop grande (il y a plus de triangles dans mon mesh que je n'en affiche dans le jeu) mais j'ai pas encore réussi à exporter les mesh simplifiés. Mais une fois que j'y arriverai je devrais réduire la place des mesh de moitié.
Sinon j'ai corrigé pas mal de petites choses, j'ai unifié au mieux la teinte/luminosité de mes textures (le résultat en unlit est correct sauf pour la paille qui est pas assez foncée). J'ai aussi corrigé la planche qui interpénétrait.


Et j'ai aussi utilisé la place de texture de vitre inutilisée pour faire des variations, sur cette texture j'ai encore de quoi rajouter deux autres vitres.



Voilà, j'ai une des facades du TFA (la maison de gauche, l'étage) qui est terminée.
C'est pas très différent visuellement de mes anciennes facades mais celle ci est beaucoup plus optimisée, principalement niveau textures. L'ensemble des textures utilisées fait un peu moins de 3Mo soit à peu près l'équivalent d'une 2048².
Niveau triangles, à force d'entendre les profs dire que sur UDK on pouvait y aller fort, je me rend compter que j'y ai vraiment été fort ...
J'ai déja un peu réduit avec SimplyGon dans UDK pour arriver a 30.000 tris (au lieu de 48.000).
évidemment c'est 30.000 triangles en comptant les instances, sinon je dois tourner aux environs de 10.000.
Je peux facilement arriver à moins si il le faut.
Par contre je n'arrive pas à exporter le résultat de SimplyGon du coup je suis toujours avec des Mesh qui prennent trop de place dans le .upk
Je devrai demander à Cédric comment arranger ça.

Oui je me suis amusé avec la mise en page :p

J'ai réalisé la textures de planches qui fera la facades des grandes maisons.
Au départ j'avais l'intention de faire du relief pour chaque planches (à gauche) mais le résultat sur un plane (à droite) est à peine moins bien.
Je vais me servir du plane comme LOD1 (modèle basse résolution qui est chargé une fois que l'assets est plus loin qu'une distance choisie) et utiliser le modèle à 450 tris pour les closeup.


La mesh tilé 4 fois :
 

13 commentaires:

  1. J'aime bien mais j'avoue que tu t'es un peu trop lâché sur le nombre de poly. Personnellement j'essayerais de ne pas dépasser les 500 000 tris visibles, et là , tu n'as à peine qu'une demi maison, essaye de faire des test de performance en dupliquant tout ca et en notant le nombre de fps que tu as avec 500 000 tris visible, 300 000. ca te donnera une meilleur idée du nombre de poly optimal que tu devrais viser.

    Sinon je changerais un peu la texture de cheminée qui est trop proche de celle de la toiture, je mettrais aussi une trim sur le haut de celle ci aussi (ex http://us.123rf.com/400wm/400/400/Globalphoto/Globalphoto0710/Globalphoto071000030/1885862-une-vieille-cheminee-sur-une-maison-privee.jpg)

    Tu as toujours le problème des poutres qui s'entrecroisent et la troisième fenêtre semble détachée un rien du mur.

    Sinon gg ca donne un beau style ;) et j'aime beaucoup le toît !

    RépondreSupprimer
  2. question : les deux côtés de la maison sont exactement les mêmes? Sinon tu peux jouer sur ça pour optimiser encore plus en enlevant quelques fenêtres x)

    RépondreSupprimer
  3. Pas con du tout de dupliquer ma maison pour voir combien de poly je peux avoir !
    Par contre tu peux carrément dépasser 500.000 tris visibles hein
    Avec 800.000 polys (ma maison dupliqué plein de fois) tout en dynamic lighting je suis encore a 140fps (ok mon PC est un peu meilleur que ceux de l'école mais tout de même)
    J'ai trouvé des chiffres pour deux jeux (auxquels j'ai pas joué)
    Lost Planet (2007) Xbox/PC : 3.000.000 polys par frame au maximum
    Dead Rising (2006) Xbox/PC : 4.000.000 polys par frame au maximum
    Et là on est en 2013 alors tu penses, tu peux y aller. Perso je visais entre 3 et 4 millions maximum.

    Pour le rebord de la cheminée j'avais pensé en faire un tout petit mesh à part comme ça j'ai deux possibilités de cheminées.
    Je pense que plutôt que de changer la texture de la cheminée je vais un peu foncer celle des tuiles.

    Par contre j'avais pas vu le problème des poutres qui se croisent thx! :D

    RépondreSupprimer
  4. Les côtés sont les mêmes mais ils sont troués pour les fenêtres donc je peux pas faire grand chose pour ca ^^

    RépondreSupprimer
  5. j'aime beaucoup la texture que tu as crée mais y'aurai pas moyen que tu montres comment elle tile ? ^^

    RépondreSupprimer
  6. Tu craques un peu trop sur les layout de tes images :D

    RépondreSupprimer
  7. la fenêtre de gauche a l'air un peu "bizarre" enfin, je trouve qu'elle colle pas trop avec le reste ^^

    RépondreSupprimer
  8. En fait la fenêtre de gauche est pas censée être aussi grande que les autres (infaisable à l'époque).
    C'est la petite fenêtre que tu vois sur l'annexe en bois.

    RépondreSupprimer
  9. bonne idee de mesh tilable, je devrais faire pareil (j'ai qu'une texture de mur pour l'instant -- ) Tu aurais peut être du créer un asset entier pour la muraille, et la texture réutilisable pour les tours?

    RépondreSupprimer
  10. Je t'avoues que j'ai pas du tout penser au tours
    A mon avis je prendrai mon Mesh sur Max (ouais y a des trucs qu'on peut faire que avec Max ^^) Et je lui appliquerai un bend pour qu'il se courbe de genre 22.5° ou 45° et avec ça je peux faire les tours. C'est a tester je suis pas sur que ça marchera ...
    Par contre la je suis en train de faire la base et c'est super chaud a gérer avec des mesh plutôt que des textures t'imagines même pas la misère que c'est pour les portes et les fenêtres x)

    RépondreSupprimer
  11. Tu sais me dire si le bend a été concluant? Parce pour l'instant j'ai essayé différentes techniques pour faire les tours mais je n'ai rencontré que des insatisfaction :D
    Donc je pense que je vais faire comme toi, en créant (un mesh tilable de pierre, un avec une fenêtre (meurtrières), un pour le sol (chemin de garde) et un pour les créneaux. Après j'essayerais d'utiliser une texture commune pour tout les assets (peut-être une 2048)et bender les mesh pour faire la tour.
    a la fin, comptes tu merger la plupart de tes assets? en ayant par exemple un asset de maison (cas extrème) pour diminuer la place prise par les meshs (pas sur si c'est une réelle solution !)

    RépondreSupprimer
  12. Je viens de faire un essai avec le Bend, si je retravaille un tout petit peu le maillage ça peut vraiment être une solution.
    J'ai fait un screen (mon maillage n'est pas l'idéal pour le Bend mais avec un peu de cut à certains endroits ça devrait passer nickel)
    http://img707.imageshack.us/img707/8470/benduw.

    Pas sur que tu sois obligé de faire beaucoup de variations du même mesh. En fait dans la base de ma maison je suis parti du seul mesh de pierre que j'ai fait et puis en bidouillant j'ai refait toute la base. Pour les fenêtres j'ai fait un cut sur le mur à cet endroit et j'ai rajouté un petit mesh de contour de fenêtre, idem pour la porte.
    Selon moi t'aura besoin d'un mesh de base, un pour le sol (mais surtout parce que t'as pas les mêmes pierres au sol qu'au mur, je te déconseille de mettre la même texture au sol et au mur) et un pour les créneaux (pas le choix)

    RépondreSupprimer