[WIP] Lord of Twippies

Modérateur : Administrateurs Suppléants

djulio74
Messages : 432
Inscription : 19 Déc 2009 22:55
Contact :

Re: [WIP] Lord of Twippies

Message par djulio74 » 27 Nov 2018 19:47

Oui c'est vrai qu'un GPU est beaucoup plus rapide pour les calculs que le CPU.
Ma suggestion était surtout si tu voulais faire du painting de texture sur ta planète en te servant des vertexColor, . si ce n’était pas prévu, reste comme ça.

Si tu veux tenter par script, regarde du coté Mesh.colors. Au moment ou tu déforme ton _planeteMesh, t'as juste a recalculer la hauteur des vertex et d'assigner un nouvelle color, color qui sera directement utilisée dans le shader.

Autre possibilité pour exploiter le GPU pour les calculs dans un script, c'est les ComputeShader que je suis justement en train de potasser. C'est bien plus complexe à mettre en place, mais tellement plus rapide pour les calculs quand c'est bien programmé ::d

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Sebela
Messages : 80
Inscription : 25 Juin 2014 21:39

Re: [WIP] Lord of Twippies

Message par Sebela » 02 Déc 2018 16:58

Hello ! :)

Nouvel update sur l'avancement de mon jeu ! (petite dédicace à Djulio qui m'a beaucoup aidé ;) )
Ma planète est maintenant subdivisée en zones, ce qui donne accès à plusieurs mécaniques de jeu : zones non-accessibles aux twippies, infos sur les régions de la planète, et ce que j'ai implémenté jusqu'ici : la visualisation de données relatives à la planète :super:

Un petit visuel :
https://www.youtube.com/watch?v=l4BWSNkSxc0&feature=youtu.be

Qu'en pensez-vous ? ça vous plaît ? ^^
Quelles données de planète aimeriez-vous pouvoir visualiser ?
Merci pour vos retours précieux :merci:

Avatar de l’utilisateur
Sebela
Messages : 80
Inscription : 25 Juin 2014 21:39

Re: [WIP] Lord of Twippies

Message par Sebela » 03 Déc 2018 16:30

Le gros défi du jour : réussir à adapter mes zones à la forme de ma planète après déformation de cette dernière. Je me suis pris la tête mais le résultat y est :)

(La couleur des zones est calculée selon la hauteur du vertex le plus bas, d'où la zone rouge qui s'élève car elle a un pied en bas et un pied dans les hauteurs ^^)
Avant déformation :
Image

Après déformation :
Image

Prochaine étape : le déplacement des twippies !

djulio74
Messages : 432
Inscription : 19 Déc 2009 22:55
Contact :

Re: [WIP] Lord of Twippies

Message par djulio74 » 03 Déc 2018 16:40

c'est vraiment pas mal tout ça, par contre cela ne deviens pas un peu difficile a la lecture, les zones en surépaisseur, les transparence.. etc?
quand est-il des perfs? d'ailleurs tu n'as toujours pas dit combien de vertex pour le mesh planète? ^^
c'est pas un peu lourd ces modification de mesh + meshCollider en temps réel(Update j'imagine?)? A moins que tu n'applique la modification du mesh collider qu'une fois la déformation effectuée ( genre au relâchement de la souris)

Et pis bon, on attend toujours si ce n'est un zip du standalone qu'on puisse nous aussi s’amuser! :mrgreen: Et éventuellement faire des retours. ;)

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Sebela
Messages : 80
Inscription : 25 Juin 2014 21:39

Re: [WIP] Lord of Twippies

Message par Sebela » 03 Déc 2018 17:03

Merci pour tes retours Djulio :cote:
par contre cela ne deviens pas un peu difficile a la lecture, les zones en surépaisseur, les transparence.. etc?
Je me posais également la question... en fait il s'agit d'un "mode" de visualisation de la planète, qui s’avérera utile par la suite pour la gestion des twippies, et qui peut être désactivé à tout moment. Mais je vais voir si je peux pas rendre ça un peu moins brouillon :)
quand est-il des perfs? d'ailleurs tu n'as toujours pas dit combien de vertex pour le mesh planète? ^^
La planète fait 4400 vertex ^^ (ça fait beaucoup non ?) Je l'ai modélisée il y a fort fort longtemps, je suis sûr qu'il y a vraiment moyen d'optimiser tout ça mais je ne m'y connais pas énormément.
Avec 150 twippies qui se baladent, 4 nuages qui pleuvent, un soleil qui éclaire je tourne entre 45 et 70 FPS.
Par contre dès que je passe en mode "déformation" je suis à une moyenne de 15 FPS :]
c'est pas un peu lourd ces modification de mesh + meshCollider en temps réel(Update j'imagine?)? A moins que tu n'applique la modification du mesh collider qu'une fois la déformation effectuée ( genre au relâchement de la souris)
Il y a une partie qui s'applique pendant le clic de la souris (mesh + mesh collider pour que les habitants de la planète soient pas avalés par le décor) et la partie calcul des zones se fait au relâchement de la souris (avec un freeze de .5 secondes pour le coup).
Et pis bon, on attend toujours si ce n'est un zip du standalone qu'on puisse nous aussi s’amuser! :mrgreen: Et éventuellement faire des retours. ;)
Promis je vous donne ça très vite ^^ j'aimerais qu'il soit pseudo jouable pour que vous puissiez vraiment vous amuser :mrgreen:

djulio74
Messages : 432
Inscription : 19 Déc 2009 22:55
Contact :

Re: [WIP] Lord of Twippies

Message par djulio74 » 03 Déc 2018 17:45

Pour la lisibilité, je tablerai plus sur un mesh identique a la zone concernée ( surface de la planète pour chaque zone), avec un léger offset par rapport à la planète ( mis hauteur d'un hippie).

4400 c'est plutôt pas beaucoup je trouve, pour une planète entière.. et le nombre de FPS atteint parait lui aussi un peu faible je trouve compte tenu de la situation. si jamais tu peux faire un petit essai sans twippies pour voir juste la conso brut de la gestion des mesh (FPS), je suis preneur. ;) Je pense qu'il doit être possible d'optimiser ça.

Pour le recalcul des zone je pense tu fais allusion aux meshCollider convex avec le script que tu avais trouvé? ou tu recalcul chaque point pour savoir dans quel zone il est?

En tout cas si tu veux un coup de main niveau optimisation de la partie mesh, c'est volontiers. ;) Ce que je peux déjà te dire si ce n'est pas déjà le cas :
- Éviter les list, privilégier les array. faire une list au début , OK mais une temporaire car tu sais pas le nombre d'élément final, mais une fois généré, convertir en array ( autre variable final) et n'utiliser plus que celle ci pour les modif
- minimiser l'abus des GetComponent au max ( stocker dans des variables les component que tu utilise souvent)
- dans les calcul, préférer la multiplication d'un float plutot que la division (ex /4.0f => *0.25f)
- faire attention a l'utilisation de Mathf.
- quand tu veux comparer des distance, privilégier sqrtMagnitude plutôt que magnitude ( plus lent)
- quand tu édite/accède à un mesh, stocker dans un array au début la partie a changer ( vertice, triangle.. etc), modifier l'array, puis en une fois assigner l'array au mesh ( au lieu par exemple d'avoir mesh.vertice[n] pour chaque vertex)

et etc ^^

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Sebela
Messages : 80
Inscription : 25 Juin 2014 21:39

Re: [WIP] Lord of Twippies

Message par Sebela » 07 Déc 2018 13:33

Merci pour tes précieux conseils Djulio !

J'ai fais le test sans les twippies et en arrêtant de faire pleuvoir les nuages :
- En moyenne 85 FPS en mode normal
- 30 FPS quand je déforme ma planète (encore assez lent)
Pour la lisibilité, je tablerai plus sur un mesh identique a la zone concernée ( surface de la planète pour chaque zone), avec un léger offset par rapport à la planète ( mis hauteur d'un hippie).
Ouais, c'était un peu ce que je voulais faire à la base mais le soucis c'est qu'en créant des mesh convex, ça créé de toute façon une sorte de zone en reliant les points. Du coup c'est plus joli extrudé (et je les utilise aussi en trigger)
Éviter les list, privilégier les array. faire une list au début , OK mais une temporaire car tu sais pas le nombre d'élément final, mais une fois généré, convertir en array ( autre variable final) et n'utiliser plus que celle ci pour les modif
Bonne idée ! C'est vrai que j'utilise beaucoup de listes... pour les listes dont le nombre ne varie jamais je vais appliquer ta méthode :)

Il y a effectivement beaucoup de choses qui peuvent être améliorées ! Je vais prendre mon courage à 5 mains et remettre tout ça d'équerre.

Je travaille en ce moment sur un algorithme de pathfinding pour que mes twippies ne traversent pas les lacs etc... :) Je mettrai bientôt une mise à jour là-dessus. (L'algo est carrément cool, je vous le partagerai ^^)

@+ !

Répondre

Revenir vers « Vos créations, jeux, démos... »