Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 12 sur 12
  1. #1
    Coucou les canards,

    Suite à un projet personnel sur lequel je travaille depuis pas mal de temps maintenant, j'ai eu affaire aux voxels...
    J'ai eu (à l'époque) un peu de mal à trouver des ressources.

    Aussi, je me suis dit que rédiger quelques tutoriels pourrait m'être utile (ça fait toujours de chouettes pense-bête)... et pourrait être utile à ceux qui souhaitent se lancer dans un voxel-trip sous Unity.
    J'ai essayé de ne pas me concentrer uniquement sur la technique au début, et de vulgariser un peu mes maigres connaissances sur le sujet.

    Bref, si ça vous intéresse, la partie 1 est ici : http://aymeeeric.fr/2016/05/generati...xels-partie-1/

    Je suis (vraiment) ouvert aux retours ! Donc si vous voyez des choses qui vous font tiquer, de grosses erreurs, ou des choses qui vous plaisent, n'hésitez pas à me le remonter


    PS - Pour les curieux, un screenshoot de mon projet/concept :

  2. #2
    Très bonne idée, merci!
    Ca m'a toujours intrigué le voxel et ton tuto a l'air simple et détaillé.

  3. #3
    Excellent premier tuto. J'ai commencé à bidouiller Unity depuis peu, et pour l'instant je m'appuie surtout sur les tuto de catlikecoding. Ça fait du bien de temps en temps de trouver des ressources en français.

    Par contre, petite question naïve. Ton explication vise à créer un cube (et à l'habiller). Ce qui revient peu ou prou à un objet Cube d'unity. Du coup, quels avantages est ce que l'on retire à recoder un objet cube soit même (au delà de l'aspect enseignement j'entends, mais c'était peut être la finalité en soi que de reconstruire un objet simple) ? Meilleur optimisation ? Objets plus simples/légers ?

    En attendant, ton blog rejoins mes favoris
    "Dans le doute, frappe d'abord." _proverbe orque

  4. #4
    Citation Envoyé par Lyanoward Voir le message
    Excellent premier tuto. J'ai commencé à bidouiller Unity depuis peu, et pour l'instant je m'appuie surtout sur les tuto de catlikecoding. Ça fait du bien de temps en temps de trouver des ressources en français.

    Par contre, petite question naïve. Ton explication vise à créer un cube (et à l'habiller). Ce qui revient peu ou prou à un objet Cube d'unity. Du coup, quels avantages est ce que l'on retire à recoder un objet cube soit même (au delà de l'aspect didactique j'entends, mais c'était peut être la finalité de en soi de reconstruire un objet simple) ? Meilleur optimisation ? Objets plus simples/légers ?

    En attendant, ton blog rejoins mes favoris
    Merci beaucoup pour ton retour très sympa !

    Concernant ta question, on pourrait effectivement utiliser des Cubes Unity.
    Mais ici, on va avoir la main non seulement sur le types d'objets qu'on va générer (herbe, terre, bois etc.) et il nous suffira de modifier quelques morceau de codes pour en fabriquer à foison mais surtout sur la façon dont ils sont créés (et donc sur l'optimisation).

    Un exemple (ce sera la suite du tutoriel) :
    Imagines deux voxels empilés (l'un en dessus de l'autre donc) : on ne créera pas la face du dessous pour le premier, ni la face du dessus pour le second (puisque ces faces sont collées, et donc invisible).

    Si on prends cette image :


    Tu imagines bien qu'avec le nombre de faces qui ne sont pas "créées", nous avons sensiblement allégé notre mesh !
    Finalement, pour la mémoire il n'y a pas des millions de points/triangles à gérer, mais uniquement les faces des cubes visibles... Je ne sais pas si je suis très clair :/

    Enfin bref, je dirais qu'une fois qu'on a codé notre propre solution de rendu, son avantage c'est qu'on peut avoir la main intégralement dessus, et c'est chouette

  5. #5
    Si si très clair. Effectivement là du coup, l'intérêt de se créer sa propre classe de cube, et avoir la main sur quels meshs générer ou non est évident maintenant. Je me sens un peu con de ne pas y avoir pensé.
    "Dans le doute, frappe d'abord." _proverbe orque

  6. #6
    Citation Envoyé par Lyanoward Voir le message
    Je me sens un peu con de ne pas y avoir pensé.
    Ben faut pas, c'est pas évident... de mon coté ça fait un an que je bidouille avec mes voxels, et je suis pas certains d'en avoir fait ne serait-ce qu'un quart de tour !

  7. #7
    J'ai commencé à lire, pas fini encore, je te ferai un retour en finissant, mais pour l'instant je trouve ça bien et clair
    @Grhyll / 3-50.net
    Projet actuel : oQo

  8. #8
    Citation Envoyé par Grhyll Voir le message
    J'ai commencé à lire, pas fini encore, je te ferai un retour en finissant, mais pour l'instant je trouve ça bien et clair


    Tant mieux alors, c'est pas évident de poser tout ça à l'écrit...

    Je suis preneur de tout axe d'amélioration !

  9. #9
    Tiens, je sais pas si tu connais, il y a pas mal de ressources sur le sujet par ici https://www.reddit.com/r/voxelgamedev (J'étais en train justement de regarder la page )
    Citation Envoyé par Snakeshit Voir le message
    Mais comme on me l'a appris dans la Marine, plus les choses sont automatisées, moins ça consomme de cases plus vous en avez de libre pour choses utiles, comme penser à des filles dénudées .

  10. #10
    Mais c'est des faux voxels ça. C'est des cubes à la minecraft. Un voxel c'est un pixel de couleur pas un cube texturé (d'ailleurs c'est que tu dis en premier).
    Comanche et Outcast c'est des voxels.
    Minecraft c'est des cubes architecturés comme des voxels. Et ça change pas mal de chose, surtout au niveau des performances.

  11. #11
    Citation Envoyé par BourrinDesBois Voir le message
    Mais c'est des faux voxels ça. C'est des cubes à la minecraft. Un voxel c'est un pixel de couleur pas un cube texturé (d'ailleurs c'est que tu dis en premier).
    Comanche et Outcast c'est des voxels.
    Minecraft c'est des cubes architecturés comme des voxels. Et ça change pas mal de chose, surtout au niveau des performances.
    C'est difficile de définir ça comme ça...

    Un voxel c'est effectivement un pixel (un carré, pas un point) dans un espace en trois dimensions (c'est donc un cube).

    Mais un voxel c'est surtout un objet qui fait partie d'une matrice en 3D.
    Alors, oui, ici ce n'est qu'un cube représenté par 12 triangles.
    Par contre, lorsque l'on calcul un tableau à 3 dimensions (x,y,z) et que chaque partie de ce tableau représente (par exemple) l'existence (1) ou non (0) d'un point à cet emplacement, et que l'affichage des éléments à l'écran est représentatif de cette matrice, les cubes deviennent par définition des voxels.
    D'ailleurs ils peuvent être la composante de plusieurs matrices (couleur, texture, solidité etc).

    En gros je définirais le voxel comme une résultante visuelle d'une matrice en 3D qui a été calculée et/ou pré-construite (et c'est bien ça qui défini Outcast, pas la "grosseur" des cubes)...

    Le véritable intérêt de la technique étant la génération de l'ensemble à la volée, mais surtout qu'une matrice (xy,z), contrairement à une génération polygonale standard n'est pas creuse.

    Ce petit homme par exemple, il est en voxels :


    Ce qui veut dire que "techniquement" il est plein. Si on le coupe en deux, son intérieur est également constitué de cubes (de voxels donc) représentatif d'une tableau en 3D.
    C'est de cette propriété dont Minecraft se sert avant tout, et qui a donné l'effet "waw" : la possibilité de creuser un environnement.


    Après, c'est le but de la suite du tutoriel que je rédige (calcul des matrices, bruit de Perlin, rendu etc.)...
    Ici il est vrai que je ne m'attarde que sur les méthodes pour générer un cube à l'écran, mais c'est important des les saisir pour la suite...

    Mais ma définition est peut être assez "personnelle"... En discuter serait intéressant.
    Dernière modification par Aymeeeric ; 07/06/2016 à 10h16.

  12. #12
    Aymeric, c'est juste que je pense que les moteurs du style Outcast ou Comande était pas optimisable avec l'accélération des cartes 3D, donc ils ne devaient pas exactement fonctionner comme tu décris. Même si ta définition à base de table à 3 dimensions reste valable (et encore je n'en suis pas complétement certains, il est possible que ces moteurs soit "creux", puisqu'on ne pouvait pas creuser).

    Ton tuto est très intéressant par ailleurs.

    PS : Je ne sais pas si tu connais ce jeu :
    http://voxelstein3d.sourceforge.net/

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •