PDA

Voir la version complète : Outil de Terrassement



César Vonc
31/08/2014, 00h02
Salut,


Je vous présente un petit aperçu du module que je suis en train de concocter, je ne lui ai pas encore trouvé de nom, c'est une sorte d'outil de terrassement automatique qui permet de texturer une surface en peignant les points.

Bon, normalement vous n'avez rien compris, alors voici une vidéo qui devrait vous éclaircir ^^



https://vimeo.com/104814777



En attribuant des points à des matériaux, le module se charge de créer les zones de transition entre les deux.


La seule impérative est de créer les textures de transition au préalable et de les charger dans le module. Ça peut être fastidieux car il y a beaucoup de combinaisons possibles entre les matériaux. J'en ai arbitrairement limité leur nombre à 6, histoire de ne pas trop charger l'interface.


Voilà, il y aura des améliorations bien sûr, mais si vous avez des idées ou suggestions, n'hésitez pas !

miroof
31/08/2014, 01h16
Classe ! :thumbup1:

yayaprod
31/08/2014, 10h12
Toujours aussi génial et au top Maître César!
Yaya .°)

Itsmil
31/08/2014, 18h49
Bon sang, c'est excellent, je vois tout de suite ce que je pourrais en faire (si j'avais le temps :icon_mrgreen: )

du très bon taff :icon_thumbsup:

bru
31/08/2014, 19h33
Sympa en effet...

Realzeb
01/09/2014, 10h45
Purée... :blink:

Il te manque un remplissage avec de l'eau dans les parties creuses et Terragen peut aller se rhabiller !
(en fait il peut déjà depuis pas mal de temps, mais bon...).

lenogre
01/09/2014, 11h19
C'est assez incroyable !
Je n'aurais jamais eu l'idée d'un tel outil.

César Vonc
01/09/2014, 15h02
Merci,

J'ai fait ça dans l'idée de créer des circuits et terrains pour les jeux, j'aimerais, à terme, pouvoir dessiner une route sur un terrain juste en peignant les points !


L'idéal serait que les textures de transition se créent toutes seules.

Alors il y a plusieurs moyens de faire ces transitions, j'ai utilisé la plus simple et exportable, qui est d'utiliser une texture à part.

Il yu a la méthode d'Atome (ici (http://frenchcinema4d.fr/showthread.php?78693-Mati%C3%A8re-UVW)), mais qui est trop complexe à mettre en œuvre quand il y a plusieurs couches de matériaux différents qui se superposent, enfin, je n'ai pas non plus creusé à fond la question vu que ce n'est pas exportable.



Sinon je pensais à ajouter une texture de transition semi-transparente par-dessus les deux textures, comme du scotch entre deux surfaces, avec un motif dessiné dessus, ça pourrait être pas mal, mais là encore, faudrait que le format d'export supporte les UVs multiples.


Je peux également créer les matériaux de transition automatiquement en mélangeant les textures des deux surfaces, mais faudrait alors autre chose qu'un dégradé tout moche d'une texture à l'autre, donc proposer des modèles de transition...


Bref, il y a pas mal de possibilités et je ne trouve pas la meilleure. : P

gillesevrard
01/09/2014, 15h13
Excellent César!!! ton plugin me parle déjà :icon_bouncy:

diego1968
03/09/2014, 11h21
Tellement débordé que j'avais loupé ton post !:icon_eek:

Excellent, comme d'habitude. Pour ceux qui veulent faire du temps réel c'est vraiment top !:thumbup1:

Paradox
03/09/2014, 19h05
Excellent ! Je vois également pas mal d'applications possibles avec un tel plug. C'est top ! :thumbup1::thumbup1:

Jissey
03/09/2014, 19h42
en fait, avec de tel plug in, cinema4D vas vite devenir incontournable.

César Vonc
08/09/2014, 12h12
Merci !

Hop, nouvelle mise à jour, on peut désormais modifier la taille des bordures ainsi que l'échelle de leur texture de façon indépendante.

Ça a pas mal alourdi l'interface, mais je n'ai pas trouvé d'autre solution, faire un menu déroulant serait moins pratique et plus lent à utiliser..



http://vonc.fr/temp/fc4d/Image3.jpg (http://vonc.fr/temp/fc4d/Image3.jpg)


Petit explicatif de son fonctionnement :

http://vonc.fr/temp/fc4d/Image5.jpg (http://vonc.fr/temp/fc4d/Image5.jpg)



Bon par contre j'arrive pas à réduire la largeur de mes champs dans l'interface, j'ai l'impression qu'on peut rien faire dans le .res d'une description. :icon_banghead:

gillesevrard
08/09/2014, 13h22
Tu as utilisé des biseaux d'arrêtes pour cela? C'est ingénieux et puis ca donne envie d'essayer tout de suite. Un fan de ton taf

César Vonc
08/09/2014, 13h51
Merci.

Non, je n'ai pas utilisé de fonction de C4D, j'ai tout codé à la main, le biseau de C4D ne permet pas de faire ce genre de chose car des arêtes sont créées au milieu des polys entre deux matériaux différents, ce sont ces arêtes là qui font la transition (et non pas des arêtes existantes du maillage), d'autant plus que les jonctions entre plusieurs zones de transition doivent avoir un maillage particulier.


Je pense qu'il sortira d'ici demain !

gillesevrard
08/09/2014, 14h09
Merci.

Non, je n'ai pas utilisé de fonction de C4D, j'ai tout codé à la main, le biseau de C4D ne permet pas de faire ce genre de chose, des arêtes sont créées au milieu des polys entre deux matériaux différents, d'autant plus que les jonctions entre plusieurs zones de transition doivent avoir un maillage particulier.


Je pense qu'il sortira d'ici demain !

Pardonne mon ignorance :whistling:

Chouette pour la sortie :thumbup1:

César Vonc
08/09/2014, 16h53
Bon, faut que je rajoute encore une colonne dans le groupe Matériaux de transitions, mais déjà que je suis trop large pour écrire les noms des champs en entier, si j'en rajoute une ça va pas le faire.


Il faut que je change la présentation, mais dans ce type d'interface (les descriptions incrustée dans l'interface, qui se distinguent des boîtes de dialogue qu'on peut ouvrir et fermer), je ne peux pas créer d'onglet, ni cacher des éléments, ni changer leur taille...

Tain, parfois c'est vraiment naze, C4D ! Être bloqué à cause de l'interface. : /

Itsmil
08/09/2014, 18h14
Au point où ça en est, Maxon devrait développer des outils d'interface rien que pour toi :icon_mrgreen:

clemz
08/09/2014, 23h09
c'est classe César ! :) bravo

atome451
10/09/2014, 15h29
Super boulot César ! :thumbup1:

Pour apporter de l'eau au moulin de tes réflexions, dans l'outil terrain de mon vieux Unity3D ils utilisent un fichier RAW pour mixer les textures sous la forme d'un ensemble de couches aux couleurs tranchées. Un peu à la manière du rendu "Material ID" dans Octane. Il est également possible dans Unity3D de définir le nombre de répétitions de chaque texture mais il n'est pas possible d'altérer les UV comme tu le fais sur les contours (ce qui est un truc absolument fantastique !).

Une capture pour me faire comprendre mais tu connais peut-être déjà...

12919

rik25
10/09/2014, 18h05
Tu débordes d'idée César !!
Tu viens de passer à un niveau supérieur avec tes derniers plugs !

Bon courage et si tu as besoin n'hésites pas :thumbup1:

César Vonc
10/09/2014, 22h43
Merci !

Très intéressant, Atome, j'ai toujours voulu me mettre à Unity mais jamais vraiment eu le temps.

Je vois à peu près la chose, en fait ça revient à avoir un canal alpha dans chaque matériau avec une échelle UV différente.
Ah ! si seulement c'était exportable, tout ça. Ça m'étonne d'ailleurs qu'il n'y ait pas de format spécial pour ceci. Peut-être faudrait-il en créer un, un genre de nouveau standard qui gèrerait les UV multiples. : o


D'ailleurs il me semble que les jeux utilisent beaucoup la colorisation des sommets, un peu comme l'influence de c4d, mais avec des mélanges de couleurs ou de niveau de gris, pour respectivement gérer des plaquils légers (lightmap) ou des mélanges de matériaux (en une sorte d'alpha), ou bien donner une teinte à l'objet à un endroit précis, mélangé à sa texture.


Enfin, ça évolue tellement du côté des jeux que j'ai parfois l'impression que les logiciels 3D sont complètement à la ramasse au niveau de ces technologies. Pourtant les dernières que j'ai citées datent pas d'hier.

C'est pas demain la veille qu'on aura la subdivision adaptative en temps réel des dernières consoles. : o
Ceci dit, ce sont des technologies des moteurs 3D comme DirectX ou directement des cartes graphiques, peut-être est-ce pour ça que ça bloque pour les moteurs de rendus faits maison comme ceux de Maxon qui sont pas prévus pour ça.


Bref !


Le module est quasi terminé, le temps de faire une démo vidéo (ça, c'est long), des exemples, la doc et compagnie, puis un rendu sympa pour le vendre à 15 €. ^^

Je pense fournir quelques textures d'exemple histoire de pouvoir faire joujou rapidement avec. Y aura bien sûr une démo gratuite limitée (à deux matériaux).


Rik25 : Tu m'en commandes une dizaine ? Hésite pas non plus. :icon_mrgreen:

Floc
11/09/2014, 13h03
Ça m'étonne d'ailleurs qu'il n'y ait pas de format spécial pour ceci.

Collada (Je ne parle pas du module de C4D mais bien du format) est reconnu par pas mal de moteur de jeux, et supporte les UVs multiples. Après ça dépend de l'implémentation qui en est faite que ce soit en import ou en export.
Mais si tu envisage d'écrire un exporter ça pourrai t'éviter de partir de zéro.

Et alors là je vais peut être dire plein de bêtise :sweatdrop: mais si on se réfère à la façon dont unity gère les UVs multiples (de ce que j'en ai vu quand je l'ai essayé ) c'est à dire en fait deux UV, le second étant plutôt prévu pour l'AO, la méthode préconisée pour en gérer plus, c'est d’écrire son propre Matériau (ce qu'ils appellent eux Shader). Exemple ici (http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html).
Donc vu que C4D supporte déja le fait d'avoir plusieurs UVs sur un objet, ce qui manque c'est un matériau qui gere ces UVs par canal. Vu que tu à déja écris un materiau et que tu est passé maitre dans la gestion des UVs pourquoi ne pas écrire ce matériau. Vu que c'est plutôt en vue d'export vers un moteur de jeux il n'aurai pas besoin de toutes les fonctionnalité des matériaux C4D.

César Vonc
12/09/2014, 11h11
ce qui manque c'est un matériau qui gere ces UVs par canal.

Oui, exactement, c'est ce que j'ai voulu faire il y a peu de temps, mais je n'ai hélas pas trouvé de solution côté programmation (voir ce sujet http://frenchcinema4d.fr/showthread.php?78693-Mati%E8re-UVW).

Pourtant je suis sûr que c'est possible, techniquement, j'ai posé la question sur c4dcafe mais je n'ai pas eu de réponse.

Le format Collada a l'air intéressant, en effet, j'ai vu qu'il était en XML, donc facile à lire, mais du coup je n'ai pas d'exemple de fichiers Collada avec un canal à UV différent, vu que C4D ne peut pas les exporter. : P

Floc
12/09/2014, 15h30
C'est vrai que c'est un vrai manque. le shader projector dépanne mais c'est quand même pas vraiment ça. Je me suis un peu arraché les cheveux avec ça au début vu que j'en avais pris l'habitude dans max puis maya.

Sinon un exemple de fichier collada avec deux sets d'UV.
C'est exporté depuis maya avec openCollada (vu que le module Collada d'autodesk lui ne gere pas les multiUV :icon_eek:)

C'est un simple plan a quatre polys avec deux UVSets (nomination maya) nommé uvSet1 et uvSet2.

César Vonc
13/09/2014, 11h21
Super, merci Floc !


Donc, C4D n'importe qu'un seul jeu d'UV, évidemment.


J'ai bien regardé le fichier ; si j'ai bien compris, tu as :


Un matériau lambert2 qui contient :

• Un canal Diffuse qui charge :

-- Une texture file1 qui charge ../sourceimages/TesMap%202.jpg

-- Appliquée avec les UV TEX0 qui est un TEXCOORD d'ID 0 s'appelant pPlaneShape1-UVSet1 qui ressemble à un dépliage planaire normal.


• Un canal Transparent qui charge :

-- Une texture file2 qui charge ../sourceimages/BlueGlow.tga

-- Appliquée avec les UV TEX1 qui est un TEXCOORD d'ID 1 s'appelant pPlaneShape1-uvSet2 qui semble par contre avoir un dépliage un peu plus pittoresque et petit.


J'ai tout bon ? ^^


Il sert à quoi le fichier .mb ?

Floc
13/09/2014, 18h37
Bravo tu as tout bon 20/20 :biggrin:

Le fichier mb c'est juste le fichier maya, je l'ai mis au cas ou, ça mangeait pas de pain.
Juste une petite précision, la dénomination TEXCOORD est l'appellation de Collada pour UV coordinate mais il semblerai qu'il y ai une nuance entre "texture coordinate" et "uv coordinate". Je sais plus ou j'ai vu ça et je crois que c'est pas très important mais bon voila.

César Vonc
21/09/2014, 17h21
Peut-être la différence entre les coordonnées des UV et les coordonnées des UV multipliées par l'échelle du matériau.



Bon, j'ai un soucis avec la R14, j'ai l'impression qu'elle affiche mal les multi propriétés UV.

Voici un exemple tout simple :

http://vonc.fr/temp/fc4d/MultiUV.png

http://vonc.fr/temp/fc4d/MultiUV.c4d


Dans la vue de la R14, avec l'OpenGL activé, j'ai l'impression que seule la dernière propriété UV créée est prise en compte. Au rendu pas de soucis.

J'utilise la dernière version, la R14.041, quelqu'un pourrait me confirmer ce défaut ? Ça compromet le portage de mon module en R14. : /

valkaari
21/09/2014, 20h20
j'ai le même affichage chez moi. Bravo pour le module au fait ^^ (pas pris le temps de m'arrêter pour le dire)

pxlntwrk
21/09/2014, 21h08
Salut,
eh bien voila un module qui va en faire gagner du temps...:icon_clap::icon_clap:
j'avais vu sur ton circuit (présenté l'an dernier sur le forum) que tu avais déjà optimisé la démarche.
Merci , super utile ,je m'en va le glaner...



ps/Juste un truc je trouve juste que sur ton image de presentation '(le golf), les tons sont un peu brûlés, surtout le ciel, même si c'est le sol qu'on doit regarder ...

ppss/peut-etre ce commentaire serait mieux la >> http://frenchcinema4d.fr/showthread.php?78830-TexTerrain desolé :huh:

atome451
22/09/2014, 00h47
Pour la R14, sans rien toucher, je confirme...

Par contre, si on défini le deuxième matériau (à droite) sur "Projection sélective > Avant" ou si on active "Raccord", curieusement ça fonctionne. Mais dès qu'on active un paramètre identique sur le premier matériau (à gauche), ça ne fonctionne plus. Je n'ai aucune idée de la raison du pourquoi et du comment, ni de l'âge du capitaine. :sweatdrop:

Itsmil
22/09/2014, 01h24
Effectivement j'ai la même chose, toucher aux paramètres de projection (type: avant) sur le deuxième matériau permet d'afficher correctement les deux propriétés UV dans la vue, faire de même avec le 1er tag annule cet effet ou plus exactement inverse l'affichage erroné de départ (gros carrés au lieu de petits carrés) et mettre avant sur le 1er puis avant+arrière sur le 2ieme mat affiche l'opposé de ce qui s'affiche au rendu !

César Vonc
23/09/2014, 21h16
Merci Val, je commence à bien tâter la construction polygonale et surtout les UV, ça fait plaisir. ^^



Oui, c'est possible, Pxl, j'ai un peu abusé de la post-prod d'octane. : P



Par contre, si on défini le deuxième matériau (à droite) sur "Projection sélective > Avant" ou si on active "Raccord", curieusement ça fonctionne.

Oh !
C'est très bizarre en effet, mais ça marche ! J'ai donc intégré cette astuce dans mon module, c'est pas parfait mais ça me permet au moins de le sortir en R14 et en R13 par la même occasion.

J'ai pas d'explication non plus mais c'était inespéré. Merci à toi. ^^


Oui, Itsmil, mais c'est bizarre que ça te le fasse en R13, chez moi elle fonctionne bien. Note que je la fais tourner en OpenGL 2.10 sur mon ordi portable, peut-être est-ce pour ça.