Forums Développement Multimédia

Aller au contenu

Voxel, activité fun pour le week-end

DETENTE

60 réponses à ce sujet

#1 Monz

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 3541 messages

Posté 09 March 2012 - 16:58 PM

Bonjour à tous,

Je connais un malheureux gars, dans ma boite, qui a une passion : le voxel. Et en plus, il la cultive en flash, alors je partage.

http://www.pixine.fr...eur-de-terrain/

Il trouve ses sources pas propres, mais il serait quand même prêt à en partager certaines. Si le week-end est pluvieux... :mrgreen:

#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 09 March 2012 - 17:20 PM

Mmmmmm… C'est tentant…

:D

Je comprends le principe, je 'perçois' même certaines améliorations possibles, par contre, comment faire le rendu ombré ? (enfin, il me semble qu'il y en a un… sur certaines images). Si c'est du calcul, ça dépasse d'un seul coup mon niveau…

#3 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12758 messages

Posté 09 March 2012 - 19:37 PM

Son travail à sa place ici en tout cas. ça permettra à chacun de pouvoir s'en imprégner et de pouvoir l'améliorer à leur sauce :)

#4 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 09 March 2012 - 20:55 PM

Bonjour,

Je suis le malheureux dont parle Monz.

dldler : Pour l'ombre portée il s'agit juste d'un effet emboss sur chaque strate. Du coup ça colorise les ombres propres, mais si tu es très vigilant tu ne veras pas d'ombres portées. Du coup, calculer des ombres propres c'est juste tout bête.
Pour les améliorations que tu as en tête je pense que une vrai 3D fait partie de la liste. Mais comme pour ce genre d'exercice je m'efforce d'être à l'origine de tout le code. Et en dehors de la 3D isométrique, je pige rien.

Pierre : Merci pour ton commentaire. Mais il y a peu de chance que j'ose distribuer des sources aussi sales ;o) et surtout peu commentées.

#5 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 10 March 2012 - 10:32 AM

Bonjour Lézard :)

Je pense à plein de choses, qui sont dans mon domaine de compétences et me semblent 'simples'. Mais je commence à savoir que mes 'simples' à moi, ne le sont pas pour tous. Comme pour certains les maths sont simples…
Par contre tout dépend de l'approche que l'on choisit pour le rendu. Et là on a peut être une vision de départ différente.
Qu'entends-tu par emboss sur les strates ? Tu veux dire que tu calcules chaque strate isolément et que tu lui appliques un effet emboss natif ? Ça effectivement, Ça me semble coûteux.

Pour ma part : la première amélioration que je 'vois', c'est celle du choix de l'altitude des strates. Une correspondance linéaire donne un relief très alpin, chaotique. Pour rendre un certain vieillissement, un travail d'érosion, Ça pourrait se faire en utilisant une echelle de transposition non linéaire. Aux abords du niveau zéro, niveau de la mer, une correspondance plus "plate" donnerait un rendu de plaines maritimes. Quelque part vers le milieu supérieur, une sinusoïde ou au moins une remontée de la pente pour accentuer des valons vosgiens. Tout en haut, une pente raide pour des sommets himalayens…

Tout cela semble parler de Maths et de calculs de fous… mais à ma façon, je me ferais mon échelle de gris dans Toshop, et un rendu préalable de l'image plane par transposition de valeurs… un truc qu'on a déjà fait avec Lilive sur ce forum. ça ne jouerais pas sur la méthode de calcul du rendu…

La seconde : le choix de la gamme de couleur pour l'eau, la plaine, les monts, les sommets…
Idem, réalisé sous Toshop ce n'est pas grand chose, et il devrait y avoir pas mal de choses à faire…
Un truc rigolo, a partir d'un perlin noise, serait d'utiliser une valeur R pour l'altitude, une valeur V pour le type de terrain et chaque type de terrain aurait sa gamme :D Je m'emballe ? Mais ça reste toujours du Toshop : un carré de 256 par 256 représentant les différents terrains. On tape juste dans ce carré au lien de taper sur un dégradé linaire. Un : getPixel(R,V); …

Pour le rendu, pas du tout en 3D. Je n'ai pas le niveau.
Mais en dessin animé on utilise un truc qui devrait pouvoir se reproduire :
faire remonter les décors lointains, faire descendre les décors de premier plan. Ça donne l'illusion d'avancer sur une sphère de petit diamètre, un effet d'horizon proche… On voit souvent ça sur les courses poursuites… un peu l'impression de monter une côte infinie… je ne sais pas si c'est clair.
Ça ne demande pas de calcul d'échelle sur la profondeur, juste un calcul qui modifie l'altitude.
Evidemment, si tu travailles par strate, Ça me semble plus difficile a reproduire comme effet… mais…

Il me semble que le rendu peut être calculé de faÇon assez moyennement simple, en caclulant la vue pixel par pixel, en commenÇant par le bas et en remontant. Pour chaque pixel, on parcours la colonne correspondante de l'image source, on s'arrête quand on trouve une valeur d'altitude suffisante, on dessine le pixel. On passe au pixel suivant.

Reste le rendu ombré (j'ai bien compris qu'il n'y a pas d'ombre portée). J'ai pris le temps d'y penser depuis hier… en fait ce rendu peut être calculé sur l'image plane. On peut préparer une valeur de luminosité en comparant un pixel source à ses voisins de gauche (par exemple). On calcule cette image une seule fois, au départ, puisqu'elle ne dépend pas de la vue. Et on applique cette luminosité à chaque pixels lors du rendu…


En fait jusque là, j'ai l'impression que je 'pourrais le faire' :) A partir de là, Ça devient tentant…

Au delà, rendre la profondeur par un effet de brume, Ça me semble possible (mais Ça pourrait être coûteux en calcul)… Idem pour des nuages…

Voilà voilà.
S'il y a des trucs qui te parlent, des questions sur ma vision/description brouillonne de la chose, n'hésite pas.
Et si tu veux bien expliquer un peu plus le coup de l'emboss pour que le "visualise" comment tu bosses, Ça m'intéresse.

Sinon, pour l'instant je vais laisser mûrir (et peut être lancer 2 ou 3 tests préliminaires)…

En tous cas, merci pour ta page de présentation très visuelle et didactique. Y a que Ça qui me parle. Bien plus que le code.

#6 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 10 March 2012 - 11:53 AM

Il se trouve que j'ai tout compris à ce que tu as pu dire ;-)

Pour la correspondance des reliefs avec l'altitude :
Oui pourquoi pas, si l'on est dans une exploitation d'un tel script pour des jeux vidéos. Seulement, a moins d'avoir un besoin concret en face j'attribut à ce genre de rendu à la visualisation de données.

J ai réussi à utiliser des captures de google maps pour les appliquer comme texture, sans se baser la hauteur :
Image attachée: 390295_10150467433749490_556219489_8431172_868145623_n.jpg

Là j ai pas de capture, mais j'ai trouvé un site ( http://www.cartes-to....fr/France.html ) qui créé ce genre de visuels (pour lesquels j'ai développé un script permettant de transcrire ) :
Image attachée: 4a2b8eed489189fbf02e957bdb239778.gif
les deux combinés ( selon les coordonnées GPS et le zoom ) permettrait de visualiser de vraies zones géographiques.

La palette de couleur selon l'altitude : Je suis déjà sur une palette générée sous photoshop et non sur une une palette générée mathématiquement. Elle peut donc être facilement améliorée.

La technique du dessin animé : La encore ça dépend si l'on se positionne sur de la visualisation ou de la génération.

Citation

Au delà, rendre la profondeur par un effet de brume, ça me semble possible (mais ça pourrait être coûteux en calcul)… Idem pour des nuages…

Effectivement en terme de performance la profondeur peu avoir un impact sur la rotation du décor. Pour les nuages, s'il ne bougent pas ça peut facilement être intégré (par contre le tout est de générer de beaux nuages en voxel)

Citation

Et si tu veux bien expliquer un peu plus le coup de l'emboss pour que le "visualise" comment tu bosses, ça m'intéresse.
Pas de soucis : Pour générer une vue, je calcule chaque strate séparément. Une strate se compose de plusieurs zones :
Image attachée: step3-voxel-strates3D.jpeg
> certains pixels représentent le vide et sont donc transparents
> les autres pixels sont opaques et représentent la matière.
>>>> Une partie de ces pixels sont de couleur, car ils sont sur la surface du terrain
>>>> Une autre partie sont marrons car ils représentent la terre

Cette image est un bitmapData sur lequel j'applique un "Filtre Bevel" pas forcément le plus performant, mais c'est ce qui m'a semblé être le plus rapide à mettre en place et surtout à ajuster lors de mes tests.

#7 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 March 2012 - 11:49 AM

OK, j'arrive à suivre aussi.

Effectivement, je comprends le côté carré et sérieux s'il s'agit de travailler sur des données réelles… mais de mon côté c'est juste le plaisir de fabriquer des images, sans parler d'aller jusqu'au jeu video. Un travail loisir de fantaisie…


SInon, Dimanche pluvieux.
:D

J'ai tâté le terrain…
Pas de difficulté majeure pour :
- créer un perlin
- extraire les valeurs R et V s'en servir pour mapper un type de terrain et une altitude.
- calcul de l'ombre, c'est très moyen, mais j'ai un début.

Au final, j'ai une vue à plat qui commence à ressembler à quelque chose.

Si quelqu'un à une idée (surtout pas un code, laissez-moi m'amuser…) pour calculer ne ombre de meilleure qualité, je suis preneur.
Pour l'instant je regarde juste pendant mon balayage en x si la pente est descendante ou ascendante. Comme les différences d'altitudes sont souvent de 1 ou 2, je n'arrive pas à trouver une formule pour tempérer le calcul. J'obtiens des points noir (voir ci-joint).
Je les ai floutés pour les ajouter sur ma vue, mais ça ramolli tout, alors que la phase sur les altitudes semble bien travailler les détails.

Je me tâte encore un peu avant de tenter de passer au voxel… la marche est un peu plus haute à gravir.

Fichier(s) joint(s)



#8 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 11 March 2012 - 18:58 PM

Ca me rassure, je ne suis pas le seul à ouvrir flash builder le Week end.

Miniature(s) jointe(s)

  • Image attachée: Capture d’écran 2012-03-11 à 03.37.31.png


#9 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 March 2012 - 22:56 PM

Ah oui mais non…
:D

On ne joue pas dans la même catégorie. Sûr.
Et là, on voit tout l'intérêt de la gestion de la matière interne (dont moi je n'ai pas besoin) et donc du travail obligé par tranches… Chapô bas…
:)

Cet après midi : soleil. Ballade avec les enfants.
Par contre, autant s'amuser à fabriquer des images plutôt que d'en subir plein dans une lucarne.
Du coup, j'ai fait mon premier voxel ! Yes !

Bon, y a encore du travail à faire.
Les pics alpins, ce n'est pas du tout ça. :P
Les bords de mer sont trop vallonnés, sûrement parce que je voulais écrêter pour éviter les multitudes d'îles.
J'aime seulement le rendu des plateaux moyens (regardez avec 829377171 par exemple).
Mais maintenant, je peux travailler sur mes tables de correspondance, je verrai l'effet produit.

Pas de difficulté majeur par rapport à la façon dont je l'avais envisagé.
J'ai un temps de calcul du rendu de 2.5 secondes, ce qui n'est pas tant que ça puisque je suis sur une (très) vieille machine. Je verrai demain si ça pulse au boulot ou si ça reste trop pénalisant pour attaquer du mouvement.

Question optimisation, je ne sais pas trop si je vais gagner grand chose parce que le code est resté simple, finalement. J'en suis assez surpris…

Je fais mumuse quelques jours (ou pas) et je vois si je vais plus loin.
:) En tout cas, ça a été un plaisir.

Fichier(s) joint(s)



#10 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 11 March 2012 - 23:30 PM

J'ai été obligé de me relever… :D


Citation

Question optimisation, je ne sais pas trop si je vais gagner grand chose
Je viens de trouver l'optimisation qui tue.
Je suis passé de 2500 à 45 ms…

Comme quoi, il ne faut jamais dire jamais.

J'y retourne (dans mon lit).

Fichier(s) joint(s)



#11 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 12 March 2012 - 09:17 AM

Image attachée: bones_1.jpg

Je suis sur le c**, et moi qui me ballade des rendus qui nécessitent plus de 2 minutes (en même temps il y a 400 fichiers de 500px*500px) .. bref je continue à maltraiter des fichiers IRM. Ce qui est excellement c'est que ce sont des fichiers en niveaux de gris qui indiquent la densité des corps : noir = vide, gris = mou, blanc = dur. Avec une accumulation de scans on peut arriver à un volume. Avec une gradient map ça colorise le tout, et il suffit dans la gradient map d'avoir des zones transparentes pour cacher la peau ou les organes ou les os .. (et bien évidement donner une couleur à l'ensemble)

#12 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 12 March 2012 - 10:24 AM

Voir le messagelezard4768, le 12 March 2012 - 09:17 AM, dit :

Je suis sur le c** […]

C'est gentil mais il faut pas… Ce n'est que du tape-à-l'œil.
Je ne travaille que sur les surfaces et pas sur le volume. Ça doit faire une très grande différence dans le temps de calcul.
Sinon, il parait que c'est ma grande force : penser simple, pour ne pas dire simpliste. Comme je n'ai pas le niveau côté trigo et autres trucs joyeux, je me débrouille avec la règle de 3, addition et soustraction… Du coup, j'ai souvent de bon résultats en performances. Mais Ça a ses limites. Je ne pense pas que ma méthode puisse passer au niveau volumique.

Et puis il y a encore pas mal de soucis : les ombres et ombres posées (ce ne sont pas des ombres portées, juste une simulation) sont incompatibles entre elles… Ça donne des effets de frange pas agréables. Il faut que je trouve comment gérer un cône d'ombre…
Et l'eau est plate au rendu, ce qui n'est pas génial. Vu les perfs sur ma bécane au boulot (7ms), Ça semble envisageable de sacrifier un peu de temps de calcul pour tenter d'améliorer Ça.

Sinon, pour monter à une image 600 x 600 pixels, je tape déjà dans du 700ms… 100 fois plus. Ça coûte très rapidement. ;-)

Je pense que je vais m'attaquer au massif des alpes. Juste pour voir ce que Ça donne sur une vraie topographie. Faut juste que je trouve la correspondance entre les couleurs et les niveaux de gris… Mais ce sera pas avant ce midi ou ce soir.

#13 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 12 March 2012 - 12:33 PM

bon j'avais dit que ça ne m'intéressait pas… mais… :mrgreen:

C'est quoi le but ? (histoire de savoir si j'essaie de jouer)

Fabriquer du paysage ds lequel on pourra à terme se balader** ? ou juste fabriquer du "volume" d'après une figuration plane (niveaux de gris, conventions typo, etc.)


Citation

Ca me rassure, je ne suis pas le seul à ouvrir flash builder le Week end.

Ouaf !! rassure toi (ou inquiète-toi, 'fo voir… :roll: )


** et à terme-terme inter-activer
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#14 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 12 March 2012 - 12:57 PM

Je crois qu'il n'y a pas d'objectif commun. Juste une découverte :)

Le point de départ, ça me semble être : faire du volume à partir d'une image plane.
Ensuite, on l'exploite selon son intérêt.

Moi, je génère l'image plane pour que ça ressemble à un paysage.
Lezard utilise des données de sources plutôt scientifiques…

Toi, j'ai bien senti que tu voudrais que ça bouge :D

#15 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 12 March 2012 - 19:15 PM

Dldler :

J'ai réfléchi à ton générateur, je pense que tu peux facilement augmenter la notion de profondeur en rajoutant un point de fuite cf visuel :
Image attachée: terrain-pers.png
Ce que je veux dire c'est que l'arrière plan devrait être plus dense que le premier plan. En gros, ce qui est en vert sur mon schéma devrait faire la largeur de ton point de vue final.

A terme tu pourrais même envisager de simuler un effet de paralaxe pour donner une sensation de mouvement lattéral (http://stephenmcinty...mples/parallax/)

Un second point qui en compositing est hyper important, c'est la profondeur atmosphérique : un premier plan plus contrasté que l'arrière plan. Ce qui sous photoshop, peut grossièrement se résumer à un dégradé de noir vers blanc en overlay (=incrustation) à 25%
Image attachée: Capture d’écran 2012-03-12 à 19.08.50.png

Nataly :

Citation

C'est quoi le but ? (histoire de savoir si j'essaie de jouer)
Je vais te donner la même réponse que j'ai donnée à une amie :
" je ne sais pas : je cherche, teste, développe des images... Bref j assouvis ma curiosité."

#16 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 12 March 2012 - 20:22 PM

Voir le messagelezard4768, le 12 March 2012 - 19:15 PM, dit :

Un second point qui en compositing est hyper important, c'est la profondeur atmosphérique : un premier plan plus contrasté que l'arrière plan. Ce qui sous photoshop, peut grossièrement se résumer à un dégradé de noir vers blanc en overlay (=incrustation) à 25%
Fichier-joint Capture d’écran 2012-03-12 à 19.08.50.png

Bon sang mais c'est bien sûr ! Je suis un triple idiot. J'y ai pensé pour les ombrages et pas pour la profondeur de champ. C'est tout simple de le faire sur la map à plat plutôt que sur l'élévation.
:) Ça, je vais le faire.
Pour la vue en pers, je ne m'y attaquerai pas. C'est tout de suite hors de mon niveau mathématique. Je vais juste tenter le côté colline tel que j'en ai parlé plus haut, qui ne joue que sur l'élévation de la profondeur…

Le prallaxe, c'est tentant, mais je doute… et puis j'ai une autre idée qui mûrit et qui devrait faire l'illusion ;-)

Merci pour le retour. C'est sympa.

#17 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 12 March 2012 - 21:53 PM

Et hop.
Facile…


:)

Ça fait déja beaucoup l'impression de profondeur.

Fichier(s) joint(s)



#18 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 March 2012 - 09:37 AM

Voir le messagedldler, le 12 March 2012 - 12:57 PM, dit :

Toi, j'ai bien senti que tu voudrais que ça bouge :D

oui ! :)

donc je vous laisse jouer en paix
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#19 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 13 March 2012 - 19:24 PM

Hop.

J'ai fait le grand saut :) Merci le lézard pour la bonne idée qui se décline…

Ça commence à être un peu lent, mais ce n'est pas optimisé (j'ai un peu galéré quand même). Et je n'ai toujours pas amélioré le cone d'ombre, d'ou les vagues ombrées dans les montagnes orientées nord-sur… Sûrement la prochaine étape.

Tadam…

http://i10.fr/_ftp/_...er/voxel_3.html

#20 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7015 messages

Posté 13 March 2012 - 19:34 PM

Salut,

Dites, le titre c'était pas : "pour le week end" ? ;-)

Très sympa le rendu, quand je m'étais attaqué à ça je suis tombé là dessus : http://www.codermind...le-terrain.html

Ca peux peut être vous servir.

Sinon, comme Nath, je vous laisse jouer mais ça m'intéresserai d'y jeter un oeil plus approfondit quand j'aurai le temps, l'utilisation pour du jeu vidéo pourrait être sympa, c'est cette technique qui a permis de faire par exemple les extérieurs de Outcast :



Pour aller plus loin, un dingue s'est aussi amusé à faire un clone de Wolfenstein en voxels : Voxelstein



Bon courage en tout cas c'est sympa comme rendu.

#21 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 March 2012 - 14:08 PM

Juste pour dire que je ne lâche pas l'affaire, même si je n'avance plus. En fait, j'ai même reculé.
Le courage est difficile à trouver… vive les vacances.

En attendant, j'ai tout repris pour y aller propre et surtout tenter de trouver une ombre plus juste et plus détaillée.

C'est dur de dur. Trop compliqué pour moi.
J'en suis arrivée là (vue à plat uniquement).
Ça semble cohérent. Par contre, je n'arrive pas à avoir un cône d'ombre un peu plus riche qu'actuellement et je trouve Ça dommage.
Bon, le fait que Ça plombe aussi les perfs (je suis monté à 1s pour une image 800 x 600) je m'y ferai… Normalement, en rendu 3D Ça ne devrait pas rajouter et j'en étais à 40ms.

PS : si vous ouvrez le lien sur une petite config, soyez patient. Ça sera blanc jusqu'à la fin du calcul. Ce n'est pas très ergonomique mais ce n'est qu'un outil de travail qui me sert a faire des comparaisons et des tests.

http://didierdurande...l/voxel_II.html

#22 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 March 2012 - 18:54 PM

Soir' à tous.

Et bon week-end.
Moi ça sera sans code. Du coup, je vous laisses sur un bug de frontière.
Sinon, ça fait déjà un peu d'effet :)

http://ftp.i10.fr/_f...er/voxel_7.html

#23 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 19 March 2012 - 13:38 PM

Bien qu'il semble que cela ne passionne pas grand monde, moi, ça continue de m'amuser beaucoup.

:-P

Bug réglé, et maintenant, on peut voyager aussi en avant arrière.

Prochaine étape : la rotation, pour avoir une navigation plus sympa.

S'il y a des passants qui veulent bien me dire ce que ça donne côté perfs chez eux, ça m'intéresse.

http://ftp.i10.fr/_f...dier/voxel.html

#24 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 19 March 2012 - 14:56 PM

50 ms ..

#25 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 20 March 2012 - 00:45 AM

Merci Lezard. J'étais à 40 sur mon poste. On doit avoir des configs assez semblable.
J'espère que je ne t'encombre pas en envahissant ton sujet :).

Je retravaille le générateur de map pour éviter l'attente pendant la création, puis je tente une nouvelle optimisation du rendu.
Si je ne peux le faire plus rapide, je pense que je ne pourrai plus ajouter grand chose en option, au moins pour l'idée que j'en avais.
Je suis déjà bien content et surpris d'en avoir fait autant.

Est-ce qu'une version du code commenté t'intéresse ?
Le rendu du voxel proprement dit ne t'apprendra pas grand chose.
Il doit faire 12 lignes maxi. Sûr, il est super rapide mais aussi super basique.
Trop pour ce que tu fais, à mon avis.

La création de la map en fait 150.
50 déclarations de variable, 50 commentaires :D. A peu près propre.

Entre les 2, c'est le bourbier : la création de la perspective que j'ai fait avec mes moyens, c'est à dire sans les maths, en imbriquant plusieurs clips et en faisant un rendu sur bitmapdata.
Là, à mon avis, ça sera dur de me comprendre, mais cette partie est bien isolée des 2 autres.

#26 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 20 March 2012 - 13:44 PM

Mise à jour quotidienne :)

J'ai :
- ajouté une barre de progression pendant le calcul de la map,
- amélioré le rendu des ombres, du coup un peu plus long, surtout que je l'ai rendu asynchrone(?) car il dépassait parfois les 15 secondes chez moi)
- optimisé le calcul du voxel lui-même. Je ne suis pas sûr que ça ajoute grand chose. Chez-moi ça tourne quand même à 28 ips…

Ce qui est bien, c'est que je commence à comprendre le rôle de certaines variables que j'ai ajouté par approximations successives :D
Par contre, pas encore réussi à faire tourner la vue :( mais je ne désespère pas.


Même lien :
http://ftp.i10.fr/_f...dier/voxel.html

#27 matt-murdock

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 6852 messages

Posté 20 March 2012 - 13:51 PM

21-23 sur ma becane.. c est sympa le truc!

#28 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 20 March 2012 - 14:16 PM

C'est super avec l'animation. Bravo.

21ips chez moi.

#29 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7015 messages

Posté 20 March 2012 - 14:24 PM

Super rendu, par conte 4ips sur ma machine de test (AMD 1Ghz monocore, 1 Go de ram).

#30 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 21 March 2012 - 19:00 PM

Merci pour vos retours et compliments :)

Je continue à un rythme moins soutenu.
- amélioration de la boucle de base
- du coup, j'ai rajouté plus de possibilités de montagne :D donc on ne gagne pas grand chose
- des crêtes plus nettes, je crois
- une meilleur vision de la perspective (sans doute dû à l'augmentation un peu caricaturale de la pente des montagnes).


Prochaine étape, je compte proposer plusieurs styles géologiques et différentes courbes de relief. Ça, Ça devrait pas coûter de perfs :)
Toujours le même lien.

http://ftp.i10.fr/_f...dier/voxel.html

#31 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 22 March 2012 - 08:27 AM

dldler,

Autant je trouve que ce que tu as fait est superbe, autant dans tes visuels je ne retrouve pas ce que j'aime dans le voxel.
Ce que je trouve superbe dans le voxel, c'est la translucidité des matières ou leur aspect vaporeux.

http://4.bp.blogspot...0/landcraft.jpg

Quand l'eau se densifie au point de devenir opaque ou de laisser découvrir des détails des profondeurs. Quand une brume donne un côté matinal et mystérieux, ou quand quelques nuages habillent les montages.

Pour moi le voxel est passionnant, mais surtout avec cette dimension de transparence. On peut obtenir des effets bien plus sympa qu'avec de la 3D rendu type phong ou blinn.

Mais comme je t'ai dis, ça n'enlève rien à mon émerveillement face à ton boulot.

#32 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 22 March 2012 - 10:22 AM

Bonjour Lezard.

Voui.
Je suis bien d'accord et je suis assez tenté d'aller voir également du côté de l'esthétisme pur et de l'athmosphérique. Par contre ça deviendra uniquement du rendu statique, parce que là, les calculs explosent.

Pour l'instant, je ne travaille que la surface et pas l'intérieur de la matière. J'essaye de rester dans une optique dynamique où l'on peut se déplacer en temps réel dans le voxel. Alors je privilégie la simplicité et les raccourcis : en clair, le temps de calcul. C'est bien pour ça que je pense que mon code ne t'intéresse pas forcément.

Je le posterai quand j'aurai fini de jouer, mais pour l'instant, j'aurais préféré qu'il y ai d'autres participants, histoire de partager des infos, des découvertes, comparer les choix et les techniques.

Sinon, la transparence de l'eau, y a pas de souci…

Image attachée: Image 5.pngImage attachée: Image 8.pngImage attachée: Image 9.png
Ici c'est juste une transparence 1 niveau. Mais je 'visualise' assez bien comment jouer sur la profondeur.

… les nuages, j'ai plus de mal à voir comment le faire.

En tous cas, il y avait longtemps qu'un sujet ne m'avait pas amusé autant.

#33 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 22 March 2012 - 11:02 AM

Citation

En tous cas, il y avait longtemps qu'un sujet ne m'avait pas amusé autant.
Monz à eu une bien bonne idée en partageant ce sujet.

Bon je suis de mon côté en train d'avancer, j ai un soucis avec mes données IRM qui en noirs et blancs ne contiennent que 256 niveaux d'informations.

du coup j'ai du passé par un logiciel qui me transforme le fichier NB-16bits en RVB-16bits, ce qui me permet de travailler avec au moins 1300 (environ) niveaux d'infos au lieu de 256.
RVB
Image attachée: ANGIO CT.0300.jpg
NB
Image attachée: ANGIO-CT.0156.jpg

Bon, en performance je suis très loin des tiennes, car comme déjà évoqué je doit traiter un bloc de 512px*512px*x350i
Du coup je passe mon temps à me confronter à des timeout .. je viens donc de mettre en place (hier soir) un système de "qualité" :
1 = traitement de 512px*512px*x350i
2 = traitement de 256px*256px*x175i
...

Bon et là ça commence à être manipulable.

#34 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 22 March 2012 - 11:12 AM

Si le time-out devient inévitable, tu peux le gérer en décomposant une boucle for et en l'accrochant à un timer. C'est ce que j'ai fait pour mon calcul du cône d'ombre.
On perd un peu en performances, mais on n'est plus limité. Et on peut associer une barre de progression pour vérifier le calcul.
Si ça t'intéresse, je peux te préparer un exemple simplifié.

#35 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 22 March 2012 - 12:00 PM

Je te remercie, mais je crois que je suis capable de le faire, seulement je ne suis pas très rapide pour mettre ce genre de chose en place. Mais ça se fera petit à petit.

#36 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 22 March 2012 - 14:26 PM

la la ! mais comment fait-il ça ? O.O

j'ai failli m'en briser le coccyx… :roi:

histoire de faire semblant de participer : depuis un mac Intel core 2 duo 2.66 ghz (vieux macbook pro) ça fait 20 ips et c'est donc très fluide \o/
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#37 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 22 March 2012 - 20:49 PM

Salut!! Rhoooo c'est chouette ce que vous faites!! On a vraiment envie d'aller survoler ces terrains librement!! (vous donnez quand même super envie de faire mumuse avec vous...)
Juste comme ça en passant, Est ce que vous avez testé le passage via PixelBender pour vos calculs? Ca pourrait peut être augmenter la vélocité de la bête (mais comme je ne vois pas le calculs engagés....)

Bonne Continuation en tout cas!

#38 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 22 March 2012 - 21:41 PM

pour pixel bender, je dois avouer que je ne sais pas du tout comment ça marche et j ai toujours pas trouvé de step by step où c'est suffisamment simple pour tout comprendre.

Mais cela dis si tu as de la doc, envoie :o)

#39 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 23 March 2012 - 18:31 PM

Pom-po-po-pom…


…bonsoir les enfants :)

Avant de vous souhaiter un bon week-end, petite mise à jour.

- J'ai boosté le calcul des ombres portées
- J'ai simplifié l'élévation du voxel
En conséquence de quoi…

Ben, c'est plus lent :-D

En fait, j'ai tellement gagné que j'ai décidé de passer à une vue en simili perspective (la fameuse cylindrique).
Comme ça crachait toujours le ips, j'ai doublé la surface de jeu, dans les 2 sens.

Les terrains sont donc 4 fois plus vastes à explorer, la vue me semble beaucoup plus immersive, le plaisir plus intense…

Bref, je n'ai pas vraiment envie de faire marche arrière.
Mais, reste qu'au boulot j'ai une grosse machine, ça (ne) tourne (qu') à 18 ips (j'avais atteins les 36 auparavant).

N'hésitez pas à me donner votre avis :
- sur le fps
- sur l'évolution de l'immersion

En l'état, je préfèrerais bosser à chercher encore un peu d'optimisation plutôt que de renoncer à ces 2 progrès.

Nouveau lien afin de pouvoir comparer :
version perspective + vaste

L'ancien :
ancienne version

#40 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7015 messages

Posté 23 March 2012 - 18:37 PM

11 ips sur mon Quad AMD 2.6 Ghz, 2Go de Ram.

J'aime assez la courbure mais elle est à mon avis trop courte, j'entends par là que la "rotation de la planète" donne un effet de toute petite planète.

Petit défaut sur le bas de l'écran quand on passe sur une "montagne", les pixels sont répétés jusqu'en bas, normal puisqu'on est "sous" le terrain.

Sinon rendu très bien, ça reste fluide même à 11 ips.

#41 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 23 March 2012 - 18:55 PM

Merci Spi.

la courbure est courte, oui. En même temps, c'est mérité, le terrain n'est pas si long que ça. Et puis maintenant que je l'ai fait, je devrais pouvoir trouver à insérer un variateur.

Pour les pixels répétés, je pourrais mettre une couleur unie. Noir ou blanc. Ou marron. Vous en pensez quoi ?


PS : je viens de mettre à jour, juste avec une échelle des altitudes plus naturelle, (des terrains à altitude moyenne).

PS2 : j'adore mes plages :D


#42 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 23 March 2012 - 19:09 PM

Tout pareil que M.Spi, sauf peut-être la configuration, mais avec le même fps.

J'aimerais voir des ombres plus longues pour voir ce que ça donne :mrgreen:

ça fait bizarre "sous les pieds". C'est surement dû à la petitesse de la courbure, mais pas que, j'avais déjà repéré ça dans les versions précédentes, ça fait comme si le sol se dérobait, comme si les montagnes s'inclinaient vers le regard.

#43 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7015 messages

Posté 23 March 2012 - 19:09 PM

J'ai gagné 1 ips, je passe à 12.

Citation

Pour les pixels répétés, je pourrais mettre une couleur unie. Noir ou blanc. Ou marron. Vous en pensez quoi ?

Essayes un marron qui s'assombrit en fonction de la profondeur ;-)

Tu as un moyen de gérer la hauteur de la caméra ?
C'est à dire permettre de monter ou descendre par rapport au sol.

#44 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 23 March 2012 - 20:20 PM

Voir le messagelilive, le 23 March 2012 - 19:09 PM, dit :

J'aimerais voir des ombres plus longues pour voir ce que ça donne :mrgreen:
Aucun souci (en théorie), ça ne jouerait pas sur le fps puisque les ombres sont précalculées sur la map plane.
Je fais ce que j'ai appelé un cône d'ombre, qui simule ombre + ombre portée+ diffusion d'éclairage. Il suffit de rallonger le cône d'ombre. Mais c'est la fonction la plus coûteuse de la génération de la map.



Voir le messagelilive, le 23 March 2012 - 19:09 PM, dit :

ça fait bizarre "sous les pieds". C'est surement dû à la petitesse de la courbure, mais pas que, j'avais déjà repéré ça dans les versions précédentes, ça fait comme si le sol se dérobait, comme si les montagnes s'inclinaient vers le regard.
ui. ça a un côté Escherien*, qui me plaît mais qui n'est pas très naturel. En fait, il faudrait recadrer sur une zone plus lointaine pour éviter l'aberration, mais ça veut dire une image finale plus petite, ou un fps plus lent. Je joue au funambule sur la limite en fonction des optimisations…
ça va aussi de pair avec la question de Mr Spi. L'altitude de la caméra. Si je descend la caméra, l'effet cylindrique diminue mais je me retrouve avec plus de ciel et plus de 'coupes' de montagne puisque la vue est davantage de profil…
Un truc qui améliorera peut-être (j'avoue être dans le tatonnement 80% du temps), c'est si je positionne la caméra en fonction de l'altitude du centre de l'image. C'est assez facilement faisable, ça joue peu sur le fps.


Voir le messageMonsieur Spi, le 23 March 2012 - 19:09 PM, dit :

Essayes un marron qui s'assombrit en fonction de la profondeur ;-)
ça non. ça m'obligerait à gérer l'intérieur de la matière. Trop dur pour moi, trop coûteux en calcul vu mon niveau.





Voir le messageMonsieur Spi, le 23 March 2012 - 19:09 PM, dit :

Tu as un moyen de gérer la hauteur de la caméra ?
C'est à dire permettre de monter ou descendre par rapport au sol.
J'ai moyen pour la hauteur de la caméra, mais seul, ce paramètre a peu d'intérêt (sans doute à cause du choix du principe de calcul).
L'altitude de la caméra ne fait que déplacer le cadrage du rendu. Il me manque un paramètre pour l'altitude de l'horizon. C'est un de mes points de recherche.
Quand je l'aurai, je pourrai mettre des curseurs à disposition pour modifier la vue.

Pour tout dire, j'ai une autre version de calcul du rendu qui est plus rapide. Elle est plus orienté 'peinture' (dans mon esprit), c'est-à-dire que je me pose en observateur qui pendrait de bas en haut. ça donne un code farfelu, mais bizarrement très efficace, j'en suis assez surpris. Le souci, c'est que je ne comprends pas comment il fonctionne, sa logique mathématique interne :D du coup, je perds beaucoup de temps à faire des essais sans comprendre ce que je fais.
Avec le code actuel, je comprends, j'ai plein de possibilités à explorer mais c'est plus lent. Peut-être qu'un jour les 2 codes vont se croiser :)
Je continue de faire mumuse, et quand je sentirai que je n'avance plus, je préparerai une interface permettant de jouer sur les paramètre.
En attendant, je cherche sur ces points là :
- position de l'horizon
- rotation (dur dur, pourtant je suis sûr qu'il y a une solution simple qui ne doit pas jouer sur le fps vu l'orientation que j'ai prise)
- vertices (ça vous surprends ? :-P )

Je commence à me tâter de révéler mon code, vu que personne d'autre ne s'est lancé dans une autre approche. çe m'obligerais peut-être à expliquer (donc à comprendre certaines zones d'ombre qui reste) et je pourrais profiter de votre expérience…



*[EDIT] Je ne trouve rien sur les perspectives (dont j'ai oublié le nom) de Mr Escher sur le net. On y trouve évidemment tous les trucages et illusions d'optique auxquels il s'amusait mais rien de sérieux sur son travail sur les perspectives courbes. ça m'étonne. J'ai trouvé juste ça, qui s'en rapproche un peu, mais j'ai souvenir de mieux…
http://www.foo.be/co...2005/escher.jpg

#45 lezard4768

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 51 messages

Posté 24 March 2012 - 12:47 PM

je suis à 9ips sur un mac book pro 2.6Ghz et 4Go de ram .. effectivement on perd la réactivité qui donnait tout l'intérêt de la chose.

Je serais curieux de jeter un oeil à ton code pour voir si je peux te suggérer des optimisations ..



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)