[WIP] Sheep ( un mouton pas si stupide)

Avatar de l’utilisateur
ID2D3D
Messages : 83
Inscription : 14 Juil 2017 18:33
Contact :

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par ID2D3D » 09 Nov 2018 14:40

c'est bien sympa tout ça !

EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par EmileF » 09 Nov 2018 16:14

:super: :coeur:
J'aimerai pouvoir progresser jusqu'à tes chevilles.
Tu donnes des cours ???
Je trouve ton jeu super et j'aime beaucoup.

Bravo
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 09 Nov 2018 18:57

Alesk a écrit :
09 Nov 2018 10:42
Tu déploies énormément d'énergie pour ne pas avancer sur ton générateur d'îles :diable:
Hahaha c'est pas faux, Sheep devait être juste quelque chose de basique à la base, pis bon j’apprends beaucoup en faisant tout ça, et j'ai encore des idées à foison pour le gameplay..etc.. :hehe: :hehe:
Alesk a écrit :
09 Nov 2018 10:42
Blague à part, puisque tu sembles lancé sur du tout procédural, ça serait peut-être sympa de pousser l'idée pour créer la forme du mouton de cette manière, uniquement à base de cubes (plus petits donc).
Très bonne idée, je note ça sur mon bloc ! un cube pour la tête, quatres outres pour les pates et hop! merci :super:
Alesk a écrit :
09 Nov 2018 10:42
Pour la GI, ça risque d'être compliqué par contre !
Il faudrait déjà que tu fasses un dépliage UV supplémentaire pour tout le niveau, et ensuite essayer de trouver comment recalculer à la volée une texture à faible résolution, permettant de simuler ça.
Alors le dépliage des UV seraient une formalité, que des faces carrées, séparée, facile à arranger les unes à coté des autre. c'est en effet pour la GI que ça coince..
Admettons j'ai toute mes cases avec ses faces à plat, toutes sur une seul map ( ou 2-3 fonction de la taille). Pour chaque case faire comme un render cubeMap, de 4x4 pixel ( + ou -), j'applique les rendus aux coordonnée correspondante de la case, sur l'unique texture. Et j'utilise mon principe de pseudo GI de la carrosserie de mon WIP Simu .

Après rapide calcul pour un niveau de 35x35 cases : ( déjà pas mal grand)
- 35*35*5faces =>6125 faces
- 6125 * 8x8 pixels par face => 392 000 pixels nécessaire
- sqrt(392 000) => 626 : texture final possible 1024x1024 px
Avec ça limite je peux faire du calcul temps réel ::d ::d
ça serait pas utilisable pour du reflet nette, mais suffisant pour mon shader. :-D

ID2D3D a écrit :
09 Nov 2018 14:40
c'est bien sympa tout ça !
Merci :super:

emile121153 a écrit :
09 Nov 2018 16:14
J'aimerai pouvoir progresser jusqu'à tes chevilles.
Tu donnes des cours ???
Je trouve ton jeu super et j'aime beaucoup.
Bravo
Merci l'ami. :super:
Pour le progression, cela ne tiens qu'a toi ;-)
Quand je suis sur mon (mes) projet, je dois passer 3/4 du temps sur la doc d'unity, et quand elle n'est pas assez détaillée ( notamment pour les shader) c'est Google mon amis. Je me fixe pour objectif de ne jamais utiliser d'asset tout fait : je trouve mieux apprendre en cherchant par moi-même plutôt de décortiquer et comprendre ce qui a déjà été fait. ^^
Sur le quart du temps qui reste, j'en repasse encore au moins 1/3 a tester, refaire, modifier, analyser.. etc Et seulement le dernier tiers du dernier quart c'est pour concrètement du nouveau dans le projet. :hehe: :hehe:


Pour revenir a nos moutons ( rho elle était facile celle là ^^), je trouvait le rendu avec les shader de base encore un peu fade, alors remis les mains dans le cambouis pour en faire un petit perso :

Avant . . . . . . . . . . . . . . . . . . . Apres
Image Image


En tout cas merci a tous pour vos retours! :super: :coeur:

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par Alesk » 09 Nov 2018 19:36

Pour la GI, je profiterais du filtrage de la texture pour les dégradés, du coup du 4x4 pixels pour chaque face de cube devraient aller.
Par contre il faut aussi prévoir des marges autour, sinon tu vas avoir du bleeding. Donc au moins 2 pixels de marge autour de chaque bloc, ce qui fait bien un total de 8x8 pixels occupés pour chaque face.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 12 Nov 2018 14:41

Je vois très bien ce que tu veux dire, pour le bleeding une fois le filterMode sur bilinear ou trilinear. ;)

J'ai fait quelques tests, concernant une pseudo ambiantOculsion.
SANS =>
Image
AVEC =>
Image

Pour l'instant je n'ai fait que la face du dessus des cube, ça donne une petite idée.
par contre à base de renderTexture, ça plombe quand même pas mal le frameRate.

Pour le principe :
- une deuxième camera (camera2) avec un SetReplacementShader, dirigée vers le haut.
- j'ai donc fait un shader de substitution, rendant un zDepth : niveau de gris en fonction de la distance des vertex à la camera2
- je déplace la Camera2 de bloc en bloc et fait un rendertexture
- j'assigne le render texture à une portion d'une texture plus grande avec ReadPixels.
- me sert de cette texture pour reduire l'Albedo dans le shader final.

Le problème c'est que le rendertexture se fait en même temps que le framerate du jeux. Si j'active la V-sync c'est donc 1 rendertexture par frame. En gros à 60fps, si j'ai 60 blocs, chacun s'actualise toute les secondes... Et encre la je ne fait qu'une face. si je fait les 6, chaque face d'un bloc s'actualise toute les 6secondes! :pleur4:

J'arrive bien a faire plusieurs rendu par frame avec une coroutine, mais c'est pas encore ça. Sans V-sync, si je fait 10 rendu à la fois, les fps passent de 2000 a 200, ce qui est logique. Ca n'as pas d'incidence sur les fps une fois la v-sync activé, a condition de ne pas trop faire de rendu a la fois.

Enfin bref, c'est un bon début, mais pas encore au point! ^^
Faut je continue de potasser les renderTexture. ;-)

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par Alesk » 13 Nov 2018 18:31

Il faudrait ne mettre à jour la texture que sporadiquement, en étalant le calcul sur plusieurs frames.
Et aussi en désactivant le calcul des ombres au moment du rendertotexture, car ça bouffe pas mal de temps.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 14 Nov 2018 15:19

oui je sais bien et c'est ce que je faisais. Mais plus tu fais de façon espacé l'update de la texture, plus tu vois que ça saccade.
Et même, je faisais en gros un rendu par face de cube, ce qui, même sporadiquement, faisait vraiment beaucoup trop!!

Je suis passé par une autre méthode, qui donne un meilleur ( mais pas parfait non plus) résultat, en étant un peu moins gourmand.
J'ai en gros une subdivision de l'espace en hauteur sous forme de plane, pour chaque plan je fais un renderTexture avec une camera vue de dessus en ortho avec un genre de matteShadow : tout le décor en noir, le plan en blanc et que les ombres en noir. J'applique cette texture sur le plan pour la vue camera principale, en tant qu'alpha.
Toute les couches se superposent visuellement obscurcissant les zone d'ombre du décors.
Avant, sans pseudo AO :
Image
Après pseudo AO:
Image
Ici je n'ai que 20 couches, donc autant de rendertexture, l’actualisation se fait quasi en temps réel. (10 par frame)
Comme j'ai dit, pas parfait, mais ça ira très bien pour l'instant :hehe:

Je vais voir si je peux pas utiliser les instanciation GPU pour afficher mon terrain ^^ ::d

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 15 Nov 2018 18:55

Bon me suis essayé a l'instanciation mais pas de tesselation possible, donc obligé d'avoir un mesh déjà subdivisé dans mon cas..
de plus niveau perf pour la création d'une base de 80x80 cubes :
Instanciation GPU :
-Mesh de base : cube a peine subdivisé (245vertice/360 tri) pour garder l'effet bombé des cubes ( vraiment limite basse en nombre de poly)
- simple instanciation par GPU des 80x80 cubes
- shader de base avec normalMap.
==> visu moyen, on sent le lowpoly de prés. FPS : 200 - 800 ( de l'un a l'autre aléatoirement)
Création simple de mesh
- mesh de base : cube (24 vertices/12 tri)
- avec la limite du nombre de vertex par mesh, : 4parceles de 1600 cubes chacun ( 38400 vert/parcelle)
- tesselation conséquente de tout ça, arrondi du cube bien propre et adaptatif ( plus subdivisé plus on est pres)
- shader avec normalMap
==> visu nikel, super rond de pres. FPS : 200 une petite demi seconde puis 2500-2800 permanent...

Preuve en image:
Image Image

Conclusion : grosse perte de temps pour un résultat vraiment moyen. J'ai pourtant fait au plus simple dans l'instanciation ( script et shader de la doc unity + simplification). Ou alors j'ai mal configuré quelque chose..
Enfin bref, je voulais juste vous faire un petit retour d'expérience. Du coup je vais rester sur mon principe à base de mesh. :hehe:

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par Alesk » 15 Nov 2018 19:38

Maintenant au moins, tu sais :-D
Merci pour ce retour !
Dernière édition par Alesk le 20 Nov 2018 19:32, édité 1 fois.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [WIP] Sheep ( un mouton pas si stupide)

Message par djulio74 » 20 Nov 2018 09:18

Alesk a écrit :
15 Nov 2018 19:38
Maintenant au mois, tu sais :-D Merci pour ce retour !
Et oui, maintenant je sais, et j’espère que d'autres aussi du coup ^^

Aujourd'hui je décide que je vais en rester là pour le moment sur ce projet, qui m'as pris déjà plus de temps que prévu.
Il m'as permis d'aborder/décourvrir pas mal de sujets :
- Utiliser une image comme base de données
- mettre en place la tesselation
- Test sur l'instanciation GPU
- création sous 3dsMax de normalMap et heighMap
- Utilisation de coroutine que je ne connaissait que peu
- moult connaissances supplémentaires en C#
- etc..

J'ai fait un package du projet pour ceux que ça pourrait intéresser, normalement juste à importer dans unity. Pas sur que tout soit forcément simple à comprendre, rien n'est annoté ou décrit. :hehe: Mais pour ceux qui se risqueraient au package, n'hésitez pas si vous avez des questions ;-)
Il comprend aussi une version hexa au lieu de cube, que j'ai voulu tester mais pas forcément concluant. Du coup moins aboutie. ( l'avantage était les 6 directions possibles au lieu de 4)
Je met aussi en lien Le StandAlone Version Cube et aussi Le StandAlone Version Hexa

ImageImage

Voilà voilà, mais je garde quand même le projet sous le coude, m'y remettrai surement un jours.
En tout cas MERCI a tout ceux qui ont participé et m'ont aider :super:

Et à tout bientôt pour de nouvelles aventures ;-) !

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

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