Générer des lightmaps au lancement d'une scène.
- TheParadox
- Messages : 84
- Inscription : 12 Juil 2017 19:54
- Localisation : France
Générer des lightmaps au lancement d'une scène.
Bonjour,
Dans le projet sur lequel je travailles, l'environnement est généré procéduralement au lancement de la scène (dans une fonction Awake).
Je ne peux donc pas utiliser de lightmap pré-générées....
Actuellement, pour avoir un rendu visuel pas trop mauvais, j'utilise SEGI.
Mais cela m'empêche d'utiliser HDRP, et donc me prive des outils comme Shadergraph et Visual Effects.
Ma scène reste fixe une fois générée, donc le système de rendu dynammique SEGI n'est pas vraiment utilisé à bon escient et fait pas mal baisser les performances...
Je voudrais donc savoir s'il y aurait un moyen pour générer la lightmap de ma scène à son lancement ? (Juste après les fonction Awake et Start du coup)
Dans le projet sur lequel je travailles, l'environnement est généré procéduralement au lancement de la scène (dans une fonction Awake).
Je ne peux donc pas utiliser de lightmap pré-générées....
Actuellement, pour avoir un rendu visuel pas trop mauvais, j'utilise SEGI.
Mais cela m'empêche d'utiliser HDRP, et donc me prive des outils comme Shadergraph et Visual Effects.
Ma scène reste fixe une fois générée, donc le système de rendu dynammique SEGI n'est pas vraiment utilisé à bon escient et fait pas mal baisser les performances...
Je voudrais donc savoir s'il y aurait un moyen pour générer la lightmap de ma scène à son lancement ? (Juste après les fonction Awake et Start du coup)
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.
Re: Générer des lightmaps au lancement d'une scène.
A priori, Unity ne permet pas de calculer les lightmaps lors de l'exécution du jeu.
SEGI semble être la seule solution actuellement...
Il y a POLM aussi : https://forum.unity.com/threads/polm-gp ... st.384196/
Mais ça ne tourne que dans l'éditeur, donc ça ne t'aideras pas plus que ça.
SEGI semble être la seule solution actuellement...
Il y a POLM aussi : https://forum.unity.com/threads/polm-gp ... st.384196/
Mais ça ne tourne que dans l'éditeur, donc ça ne t'aideras pas plus que ça.
- TheParadox
- Messages : 84
- Inscription : 12 Juil 2017 19:54
- Localisation : France
Re: Générer des lightmaps au lancement d'une scène.
Je vois, je vais devoir me contenter de SEGI et oublier Shadergraph alors .
Pour optimiser l'utilisation de SEGI, j'ai maximisé la zone de rendu pour que tout l'environnement soit calculé, et il ne s'active qu'une frame après la génération de l'environnement. Ca m'a fait gagner 20 FPS.
C'est comme si je calculais les lightmaps au lancement au final, mais en utilisant SEGI ...
Pour optimiser l'utilisation de SEGI, j'ai maximisé la zone de rendu pour que tout l'environnement soit calculé, et il ne s'active qu'une frame après la génération de l'environnement. Ca m'a fait gagner 20 FPS.
C'est comme si je calculais les lightmaps au lancement au final, mais en utilisant SEGI ...
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.
Re: Générer des lightmaps au lancement d'une scène.
Je n'ai jamais utilisé SEGI, donc je ne sais pas ce qu'il implique... Mais si tu pré-calcules tes lightmaps au départ, normalement après tu n'as plus besoin de SEGI lors du reste de l'exécution du code de ton jeu. Je ne comprends donc pas pourquoi ça rame ou ça te coince par la suite.
Peux-tu détailler un peu plus ton processus stp ? Y'a forcément un moyen d'arranger ça.
Peux-tu détailler un peu plus ton processus stp ? Y'a forcément un moyen d'arranger ça.
- TheParadox
- Messages : 84
- Inscription : 12 Juil 2017 19:54
- Localisation : France
Re: Générer des lightmaps au lancement d'une scène.
C'est ce que je fais justement : SEGI s'active pendant la première frame après la génération de l'environnement, puis se désactive juste ensuite. Donc oui toute la map est calculée puis SEGI n'intervient plus, ce qui m'a fait gagné 20 FPS par rapport à quand SEGI était activé en permanence.
Donc à ce niveau là c'est bon, SEGI fonctionne et ne fait pas ramer. Mais il me prive quand même de Shadergraph, puisqu'on ne peut pas l'utiliser avec HDRP..
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.
Re: Générer des lightmaps au lancement d'une scène.
y'a pas moyen de tricher ?TheParadox a écrit : ↑02 Sep 2019 11:57Donc à ce niveau là c'est bon, SEGI fonctionne et ne fait pas ramer. Mais il me prive quand même de Shadergraph, puisqu'on ne peut pas l'utiliser avec HDRP..
Tu fais une scène de baking sans HDRP, et quand c'est calculé, paf tu charges ta scène avec HDRP... après je ne sais pas du tout s'il est possible d'avoir les deux moteurs de rendu qui coexistent dans un même projet...
- TheParadox
- Messages : 84
- Inscription : 12 Juil 2017 19:54
- Localisation : France
Re: Générer des lightmaps au lancement d'une scène.
Je ne penses pas que ce soit possible... SEGI utilise le Rendering Path en "Deferred", donc pas compatible avec HDRP.
Il faudrait changer la chemin de rendu de la caméra pour passer en HDRP, et donc SEGI cesserait de fonctionner et d'afficher la scène bakée.
Bien pensé, mais ça aurait été trop beau
Il faudrait changer la chemin de rendu de la caméra pour passer en HDRP, et donc SEGI cesserait de fonctionner et d'afficher la scène bakée.
Bien pensé, mais ça aurait été trop beau
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.
Re: Générer des lightmaps au lancement d'une scène.
Y'a un truc que je capte pas bien : le baking ça consiste à stocker les informations d'éclairage dans des textures et/ou des vertexcolor afin de n'avoir aucun calcul excessif au moment du rendu.
Si tu ne fais que ça, je ne vois pas ce qui coince par la suite.
Puisque tu n'utilises SEGI qu'au démarrage, pour faire ton baking, tu n'es plus censé en avoir besoin ensuite... ou alors il y a un truc qui m'échappe.
Si tu ne fais que ça, je ne vois pas ce qui coince par la suite.
Puisque tu n'utilises SEGI qu'au démarrage, pour faire ton baking, tu n'es plus censé en avoir besoin ensuite... ou alors il y a un truc qui m'échappe.
- TheParadox
- Messages : 84
- Inscription : 12 Juil 2017 19:54
- Localisation : France
Re: Générer des lightmaps au lancement d'une scène.
Il me semble oui, je n'y connais pas grand chose à vrai dire , mais ça me parait logique.
Je viens d'essayer quand même : lancer SEGI avec la caméra en Forward (au lieu de Deferred pour SEGI ).
Résultat :
SEGI bake effectivement la scène, mais le rendu est ensuite assez bizare (et moche), tout devient grisâtre et des bugs de luminosité apparaissent.
A mon avis, SEGI bake la scene d'une manière qui fait que ça ne marche correctement que pour une caméra en Defered....
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.
Re: Générer des lightmaps au lancement d'une scène.
Ha, c'est étrange ça... aurais-tu moyen de nous montrer ce que ça donne, ainsi que les textures générées à part ?TheParadox a écrit : ↑02 Sep 2019 23:27Je viens d'essayer quand même : lancer SEGI avec la caméra en Forward (au lieu de Deferred pour SEGI ).
Résultat :
SEGI bake effectivement la scène, mais le rendu est ensuite assez bizare (et moche), tout devient grisâtre et des bugs de luminosité apparaissent.
A mon avis, SEGI bake la scene d'une manière qui fait que ça ne marche correctement que pour une caméra en Defered....