PDA

Voir la version complète : recréer un paysage existant



Jissey
09/03/2012, 01h25
hello, en discutant pendant l'apéro, on m'a proposé de faire en 3D la région qui m'entoure. J'ai tout de suite dit que c'était possible, mais là depuis que je suis seul devant l'ordi, je cherche une solution qui soit réalisble en étant le plus proche de la réalité possible.
je pensait reprendre les reliefs de google map, mais les routes et constructions parasitent tout lorsque je met un déplacement (j'ai bien fait des impression d'écran pour avoir une carte).
Du coup carte posé sur un polygone a plat hyper découpé, je relève le terrain point par point (avec la sélection progressive bien sur).
y a t-il une autre solution, un plugin magique qui me sort le terrain nikel, une recette de grand mère....
Comment les grands de la modélisation ferait pour refaire un terrain existant?, que, lorsqu'on serpente entre les verdoyantes collines virtuelles, les spectateurs ébahis s'exclame :"mais, c'est juste a coté de chez moi!"

pfffiou Bon, la fatigue se fait sentir je crois. je vais reposer mes neurones endoloris.

dotcom
09/03/2012, 01h47
chercher c'est bien !
http://frenchcinema4d.fr/showthread.php?47422-R%E9aliser-des-paysages-avec-C4D

oups ! le sujet est ancien la pluspart des liens sont morts.

Jissey
09/03/2012, 02h08
hehe voilà pourquoi je trouvais rien je cherchais terrain à la place de paysage:blush:
Merci

edit c'est cool l'histoire du cinema, mais bon ça ne m'avance pas.
Pour les générateurs de paysage, hum terragen je l'ai déjà ouvert depuis un moment, pas accroché, les autre connait pas. mais c'est pas du procédural que je cherche, c'est une méthode pour sculpter un terrain existant, qu'on puisse reconnaitre telle ou telle vallée.

Bon je vais continuer avec ma méthode. j'ai les courbe de niveau, du coup sélection progressive, j’élève. j'augmente la sélection d'une courbe j'éleve .... et mon paysage prend forme. C'est galère quand c'est en bordure de montagne. On oublie des boucles, du cou on refait en marche arriere les oublis, mais bon pour le moment ca avance

merci quand même

geantvert
09/03/2012, 10h16
Si tu possède une map topologique colorée, rien ne t’empêche d'en faire une mapp en niveau de gris et de créer un displacment.
Le soucis sera de trouver quel niveau de gris respecte quelle hauteur.

Edit: tant que j'y pense fais tes tests avec le deformer displacment avec un cube à coté ;)

César Vonc
09/03/2012, 10h31
je pensait reprendre les reliefs de google map, mais les routes et constructions parasitent tout lorsque je met un déplacement (j'ai bien fait des impression d'écran pour avoir une carte).Quitte à piquer le boulot de Google, autant y aller franco, si c'est pour un projet perso. Tu peux capturer directement le relief de Google Earth avec un logiciel comme 3D Ripper DX.


Mais bon, je ne vois pas trop l'intérêt, du coup, vu que ta région a déjà été modélisée par Google.

Seb-bbl
09/03/2012, 12h32
Il te faut trouver un fichier .dem (digital elevation model) correspondant à la région que tu souhaites reproduire. C'est le plus simple.
Si tu arrives à trouver le CD-Rom Visual DEM France (difficile car l'éditeur a fait faillite), tu auras les reliefs de la France au format .dem avec une précision de 75m. Bonne chance !

Jissey
09/03/2012, 12h43
waou merci seb-bbl.
Ce projet est personnel pour le moment, mais pourrait débouché si je sais m'y prendre sur quelque chose de plus professionel. Donc si je trouve quelque chose d'hyperréaliste, c'est super

catrax
09/03/2012, 16h04
Je sais que je me mêle de ce qui ne me regarde pas, mais est ce que le WIP du Sanctuaire ne pourrais pas l'aider? Sinon avec vue tu peux mettre une carte, ou une image vue du ciel de la zone concerné, pour créer un paysage, même chose avec l'outil relief de C4D.

"Ok je repart dans mon coin."

Jissey
09/03/2012, 16h30
merci catrax, j'ai déjà regardé le wip du sanctuaire. c'est le premier que j'ai été voir, mais si j'ai bien compris, il s'agit d'un terrain aléatoire. Mi, je doit sculpter une zone réelle. J'ai fait une recherche sur les .dem, mais pas trouvé ce que cherche. J'ai un region de Grenoble ou de Bretagne, mais pas la France en totalité ou en partie que l'on peu choisir. J'ai même été voir :icon_redface:(par curiosité) Ripper DX, mais il est sur PC et et le relief google earth n'est qu'un plugin du navigateur.

Du coup, je pense que je m'en sort pas trop mal avec ma méthode. 5h pour essayer de peaufiner cette surface, mais je suis pas trop mécontent. dés que je peu, je mettrais une image du relief pour voir si ça parle a quelqu'un qui connait le coin(région à l'ouest d'annecy). j'aurais bien aimé quand même trouvé ces .dem. J'ai trouvé un site qui en parle, j'y demanderais peu-être si ils ont mon petit coin de terre.

Bon aprés, vas falloir que j'active body paint et que je "m'amuse" a faire le décor.

Seb-bbl
09/03/2012, 16h31
C'est pas si simple. Et ça ne fonctionne pas avec une simple "carte". Il faut une carte d'élévation, et ça se trouve pas à tous les coins de rue.
Il y a plusieurs possibilités : les fichiers .dem, qui peuvent être ouverts par C4D, qui sont des modèles 3D de zones géographiques créés d'après des cartes d'élévation, ou bien justement ces cartes elles-mêmes, que l'on peut trouver sur certains sites de cartographie, qui, après traitement (dont je ne me rappelle plus la procédure), te donneront une image en niveau de gris que tu pourras utiliser sur l'objet relief, il te faudra alors connaître les altitudes du point le plus bas et le plus haut pour déterminer la hauteur de l'objet. Il faudra aussi une densité de maillage assez dingue pour obtenir un relief convaincant, quitte à l'appuyer avec du déplacement sous-polygonal.

Philippe casu
09/03/2012, 16h59
salut
as tu été voir du coté du géoportail et de l'IGN..?
je sais qu'ils peuvent te vendre ( IGN) des données géoréférencées en 3D BD alti par ex ( mais il y beaucoup d'autres produits): http://professionnels.ign.fr/ficheProduitCMS.do?idDoc=5323461

peut etre pas directement compatible avec C4D mais il y a deja un format XYZ ...en plus j'avais acheté il y a quelques temps de cela BD carto et j'avais pu les contacter en direct ...pour des explications spécifiques à cet achat...

Jissey
09/03/2012, 17h10
merci phillipe, je viens de charger un carte gratuite pour voir de quoi il retourne

Jissey
09/03/2012, 17h44
pas pu l’ouvrir ni le XYZ ni le asc.
bon, je reste sur ma mod à la mano

oli_d
09/03/2012, 18h20
si tu me montre les 5 à 7 premières lignes du fichier asc je peux te donner le script pour l'ouvrir

Jissey
09/03/2012, 18h57
oli_d
bon, je veux bien, tu vas pas etre déçu (à moins que je me trompe):
ncols 4641
nrows 4321
xllcorner 89875
yllcorner 6039875
cellsize 250
NODATA_value -9999

aprés, il y des lignes de 0 0 0.......
puis des -9999 -9999....
et on reviens sur les O ..
puis les 9..................

bon, j'ai pas tout défilé non plus, et j'ai pas eu le courage de voir la dernière ligne. Si tu veux, je te passe le fichier complet (17 mo)

Rudy
09/03/2012, 19h14
waou merci seb-bbl.
Ce projet est personnel pour le moment, mais pourrait débouché si je sais m'y prendre sur quelque chose de plus professionel. Donc si je trouve quelque chose d'hyperréaliste, c'est super

Si cela peut t'aider:

http://professionnels.ign.fr/recherche.do?type=document&i=visual%20dem%20france&lang=fr&cty=FR

Jissey
09/03/2012, 19h33
merci,rudy, c'est là où j'ai pris ce fichier. je suis pas professionnel. ça vas surement arriver dans quelques temps, mais pour le moment mes moyens sont limités donc 300 et quelques euro pour un DVD ç'est pas pour tout de suite. en plus, je voudrais déjà voir de quoi il s'agit avant de me jeter tete baissé dans un tel achat. de toute façon dés que j'ai fini mes essaie de rendu Ipod, je vous fait voir où j'en suis.

oli_d
09/03/2012, 19h33
Colle ce code dans le gestionnaire de script onglet python puis bouton execute, puis sélectionne le fichier asc :


import c4d



def polygonise(obj,nb_rows,nb_cols):
id_poly = 0
id_pt = 0
for r in xrange(nb_rows):
for c in xrange(nb_cols):
if c < (nb_cols-1) and r < (nb_rows-1):
try :
obj.SetPolygon(id_poly,c4d.CPolygon(id_pt,id_pt+nb _cols,id_pt+1+nb_cols,id_pt+1))
except : print id_poly,'->', (id_pt,id_pt+nb_cols,id_pt+1+nb_cols,id_pt+1)
id_poly+=1
id_pt+=1


def main():
fn = c4d.storage.LoadDialog()
file = open(fn)
dic = {}
for i in xrange(7):
lst = file.readline().split()
dic[lst[0]]=lst[1]

ncols = int(dic['ncols'])
nrows = int(dic['nrows'])



nb_pts = ncols*nrows
nb_poly = (ncols-1)*(nrows-1)
poly = c4d.PolygonObject(nb_pts,nb_poly)

dx = float(dic['cellsize'])
dy = float(dic['cellsize'])

origine = c4d.Vector(float(dic['xllcorner']),0,float(dic['yllcorner'])+nrows*dy)

pos = c4d.Vector(0)
i=0
for r in xrange(nrows):
for val in file.readline().split():
pos.y = float(val)
poly.SetPoint(i,pos)
pos.x +=dx
i+=1
pos.x=0
pos.z-=dy

file.close()
polygonise(poly,nrows,ncols)

poly.Message(c4d.MSG_UPDATE)
doc.InsertObject(poly)
c4d.EventAdd()




if __name__=='__main__':
main()


Ensuite tu auras peut être des points à -9999 ce qui correspond à l'absence d'info, sélectionne les et vire les.

Si cela ne marche pas dis-moi ce qui apparait dans la console.