Page 2 sur 7

Re: [C#] GLWireframe

Publié : 21 Fév 2013 12:14
par axel
Je vais essayer, car j'avais testé la version précédente sur une maquette, et le framerate était catastrophique (2 fps), ce qui rendait le script inutilisable.
Je te tiens au courant, merci :)

Re: [C#] GLWireframe

Publié : 21 Fév 2013 12:22
par artemisart
Max a écrit :C'est vrai qu'on sentait bien que les perf en prenaient vite un gros cout :mrgreen:
Dans unity ou dans le jeu buildé ? Et combien de fps environ ?
axel a écrit :Je vais essayer, car j'avais testé la version précédente sur une maquette, et le framerate était catastrophique (2 fps), ce qui rendait le script inutilisable.
Ouch :mrgreen: quelques infos sur la plateforme, le nombre de meshes et de vertices ? (pour comparer avec la nouvelle version).

Re: [C#] GLWireframe

Publié : 21 Fév 2013 12:36
par axel
Je te dirais, dès que j'aurais repris la main, j'ai lancé le play dans Unity, et le pré-traitement est plutôt long, ça fait bien 10mn qu'il mouline... :mrgreen:

Re: [C#] GLWireframe

Publié : 21 Fév 2013 12:42
par Max
artemisart a écrit :
Max a écrit :C'est vrai qu'on sentait bien que les perf en prenaient vite un gros cout :mrgreen:
Dans unity ou dans le jeu buildé ? Et combien de fps environ ?
Ben quand je lance une petite scene de rien du tout à partir de l'éditeur (aucun objects tagués static), c'est vite la catha... (fps<10)

Image

Par contre, dès que je passe l'ensemble en static, cela respire déjà nettement mieux..... (fps revient à 60 fps sur la scene ci-dessus)
Après faudrais que je fasse un ou deux test en build pour voir....

Re: [C#] GLWireframe

Publié : 21 Fév 2013 13:20
par artemisart
axel a écrit :Je te dirais, dès que j'aurais repris la main, j'ai lancé le play dans Unity, et le pré-traitement est plutôt long, ça fait bien 10mn qu'il mouline... :mrgreen:
Oo 10mn ! moi il prend que quelques dizaines de millisecondes (bon la scène est pas super chargée mais...).
Pour alléger tu peux remplacer Bake () par SpeedBake () dans la fonction GetSetMeshes (les edges en doubles seront pas supprimés, et c'est ça qui prend beaucoup de temps).
Max a écrit :
artemisart a écrit :
Max a écrit :C'est vrai qu'on sentait bien que les perf en prenaient vite un gros cout :mrgreen:
Dans unity ou dans le jeu buildé ? Et combien de fps environ ?
Ben quand je lance une petite scene de rien du tout à partir de l'éditeur (aucun objects tagués static), c'est vite la catha... (fps<10)

Image

Par contre, dès que je passe l'ensemble en static, cela respire déjà nettement mieux..... (fps revient à 60 fps sur la scene ci-dessus)
Après faudrais que je fasse un ou deux test en build pour voir....
Bizarre, t'es sûr que c'est la dernière version du script ?
Parce que cette dernière version ne prend plus en compte le flag static mais les valeurs du transform.

Re: [C#] GLWireframe

Publié : 21 Fév 2013 13:22
par Max
artemisart a écrit :Bizarre, t'es sûr que c'est la dernière version du script ?
Parce que cette dernière version ne prend plus en compte le flag static mais les valeurs du transform.
je me suis peut-être mélangé les crayons, je vais vérifier ;)

Re: [C#] GLWireframe

Publié : 21 Fév 2013 13:34
par Max
Tu avais raisons, j'ai du faire une fausse manip.
Cette fois en m'assurant bien que j’emploie le bon script, effectivement cela change la donne.
Et cette fois pas de chutte de FPS. Après, il faudrait que je build une scène plus 'costaud' voir ce que cela peut donner
pour éprouver un peu mieux la chose. ;)

Re: [C#] GLWireframe

Publié : 21 Fév 2013 13:51
par artemisart
Désolé c'est de ma faute, j'avais mis à jour le post mais pas le script, ce qui explique les post au dessus :oops: .

Re: [C#] GLWireframe

Publié : 21 Fév 2013 14:39
par axel
J'ai retesté avec la bonne nouvelle version ;) .
Plutôt que de le faire sur toute ma scène, j'ai testé juste pour un bâtiment (environ 22 000 sommets).
Le "baking" a duré 55 secondes, j'ai activé le speed bake comme tu me l'a conseillé. J'ai également rajouté une ligne dans ton script pour masquer la géométrie dans le GetSetMeshes.
Ensuite dans la scène, la chute de performance est indéniable (cela doit venir aussi du fait que j'ai fais un speedbake),mais c'est bien mieux qu'avant.

Le wire à 23.5FPS
Image

sans le wire à 64FPS
Image


Sinon, concernant le baking, Unity a forcément ces informations quelque part en mémoire. Il ne serait pas possible d'aller les rechercher directement?

Également, j'ai relancé ma scène en désactivant le script sur la caméra, et il effectue quand même le baking!?

Re: [C#] GLWireframe

Publié : 21 Fév 2013 15:17
par axel
Par curiosité, j'ai retester avec la fonction bake, et le framerate passe à 38FPS, pour un temps de baking aux environs des 2 mn