Aller au menu - Aller au contenu

Icône TP : une tour du futur...

Mise à jour : 01/07/2010
525 visites depuis 7 jours, dont 9 sur ce chapitre classé 218/786
Je vous ai assez fait souffrir avec tout ce cours théorique...
Maintenant, on va faire un petit TP : vous allez réaliser une tour du futur (ou un truc qui y ressemblera... vous n'êtes pas encore des pros, tout de même !).
Pourquoi du futur ?...
Eh bien... ahem... parce qu'on ne peut faire que des formes assez simples, pures et arrondies... et que c'est justement comme ça qu'on imagine le futur !
Vous le verrez, faire des trucs futuristes est "très" facile...
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Objectifs du TP

On va faire une espèce de tour futuriste.
Voilà à quoi elle ressemblera :
Image utilisateur
Ça vous va ?
Bon, je sais que ce n'est pas vraiment super beau, mais c'est tout ce qu'on peut faire jusque là. Et puis, le but est plus de s'entraîner que de faire un truc hyper joli !
Voici une petite aide.
La tour est composée :
  • d'un tronc principal, composé d'un cylindre de hauteur 2 et de diamètre 0.4, ainsi que d'une sphère située en haut du cylindre et de même diamètre que lui ;
  • de deux anneaux, à la base de la tour : le r2 du premier est 0.1, celui du second est 0.05. Leurs r1 sont paramétrés de manière à ce qu'ils se touchent juste ;
  • d'une sphère à 1.5 de hauteur, de 0.35 de rayon ;
  • d'une croix formée de cylindres passant par le centre de la sphère précédente, chacun de rayon 0.1 ;
  • d'une boule de diamètre 0.3 à l'extrémité de chacun des deux cylindres précédents ;
  • d'un cône, partant de y = 0.5 et de 0.2 de hauteur, de rayons 0.2 et 0.3 ;
  • d'un autre cône, partant de 0.9 et de 0.2 de hauteur, de rayons 0.3 et 0.2 ;
  • d'un cylindre situé exactement entre ces deux cônes de manière à compléter le vide ;
  • d'une croix formée de deux boîtes passant par le centre du cylindre. Ces boîtes seront des espèces de frites à base carrée de 0.1 de côté, et de 1.2 de long en tout.

Les couleurs ne sont pas importantes, du moment qu'elles sont distinctes.
Et voilà ! Maintenant qu'on sait quoi faire, au travail !

Correction du TP

Bon, je vous l'accorde, réaliser cette tour tout seul n'est pas très facile...
Cependant, la grande difficulté n'est pas dans le langage, mais dans la conception de la scène !
Le plus difficile dans une scène en 3D est de bien positionner les objets, et non de savoir comment les coder...

Partie 1 : caméra et lumière



On va commencer par les essentiels : lumière et caméra.

Code : C
1
2
3
4
5
6
7
8
9
camera {
        location <0,1.5,-3>
        look_at <0,1,0>
}
 
light_source {
        <5,4,-3>
        rgb <1,1,1>
}

Je ne détaille plus : à ce niveau, vous devriez comprendre.


Partie 2 : le corps



Maintenant, le corps.
On veut un cylindre de diamètre 0.4, donc de rayon 0.2, et de hauteur 2 ; ainsi qu'une sphère de même rayon située au sommet...

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cylinder {
        <0,0,0>
        <0,2,0>
        0.2
}
 
sphere {
        <0,2,0>
        0.2
}

Il ne reste plus qu'à ajouter les couleurs... Pour ça, je vous laisse choisir ^^ .


Partie 3 : les deux anneaux



C'est tout pour le corps. Attaquons-nous maintenant aux deux anneaux... Et voyons un schéma pour plus de clarté :
Image utilisateur
Le texte en blanc est ce que nous savons déjà, celui en rose-violet ce que l'on peut déduire facilement.
Et le tour est joué ! Le premier anneau a un r1 de 0.3 et un r2 de 0.1 ; le second a un r1 de 0.45 et un r2 de 0.05. Voilà donc le code pour ces deux anneaux :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
torus {
        0.3
        0.1
        pigment { rgb <1,0,0> }
}
 
torus {
        0.45
        0.05
        pigment { rgb <1,0.3,0.3> }
}

J'ai choisi des couleurs aléatoirement, vous pouvez les changer si vous le souhaitez...


Partie 4 : l'étage de la boule



Bon, une grosse boule à la hauteur 1.5 et de 0.35 de rayon, c'est pas compliqué. Les deux cylindres, un peu plus, voilà un petit schéma, vu du dessus :
Image utilisateur
Les traits blancs représentent les axes x et z, la coupe est à la hauteur y = 1.5.
Comme on le voit, un cylindre va de <-1,1.5,-1> à <1,1.5,1> et l'autre va de <-1,1.5,1> à <1,1.5,-1>. La largeur est de 0.1, on a tout ce qu'il nous faut !
Il suffit ensuite d'ajouter une sphère à chaque extrémité, et voilà ce que ça donne :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
sphere {
        <0,1.5,0>
        0.35
        pigment { rgb <0.3,0.7,0.2> }
}
 
cylinder {
        <-1,1.5,-1>
        <1,1.5,1>
        0.1
        pigment { rgb <0.6,0.6,0.3> }
}
 
cylinder {
        <1,1.5,-1>
        <-1,1.5,1>
        0.1
        pigment { rgb <0.6,0.6,0.3> }
}
 
sphere {
        <1,1.5,1>
        0.15
        pigment { rgb <0.7,0.7,0.5> }
}
sphere {
        <1,1.5,-1>
        0.15
        pigment { rgb <0.7,0.7,0.5> }
}
sphere {
        <-1,1.5,1>
        0.15
        pigment { rgb <0.7,0.7,0.5> }
}
sphere {
        <-1,1.5,-1>
        0.15
        pigment { rgb <0.7,0.7,0.5> }
}

Les couleurs ne sont pas très belles, libre à vous de les changer ^^ !


Partie 5 : l'étage des frites



Ça avance, on y est presque !
L'étage en question est d'abord composé de deux cônes et d'un cylindre.
Le premier cône part de y = 0.5 et a une hauteur de 0.2 ; les rayons sont de 0.2 puis de 0.3. Le second part de y = 0.9, a une hauteur de 0.2 et a pour rayons 0.3 et 0.2.
Le code sort tout seul :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
cone {
        <0,0.5,0>
        0.2
        <0,0.5+0.2,0>
        0.3
        pigment { rgb <0.1,0.9,0.4> }
}
 
cone {
        <0,0.9,0>
        0.3
        <0,0.9+0.2,0>
        0.2
        pigment { rgb <0.1,0.9,0.4> }
}


Pour placer le cylindre entre les deux, il suffit de réfléchir un peu : le rayon sera de 0.3 pour aller dans la continuité des deux cônes. Et pour combler parfaitement le vide, il faudra qu'il aille de 0.5 + 0.2 = 0.7 jusqu'à 0.9. Et c'est tout !

Code : C
1
2
3
4
5
6
cylinder {
        <0,0.7,0>
        <0,0.9,0>
        0.3
        pigment { rgb <0.4,0.95,0.6> }
}


Ne restent plus que les deux "frites" : un simple schéma permet de comprendre immédiatement comment faire :
Image utilisateur
Bon, ce n'est pas super clair, mais on voit à peu près les coordonnées.
Voici donc le code :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
box {
        <-0.05,0.75,-0.6>
        <0.05,0.85,0.6>
        pigment { rgb <0.7,0.98,0.75> }
}
 
box {
        <0.6,0.75,-0.05>
        <-0.6,0.85,0.05>
        pigment { rgb <0.7,0.98,0.75> }
}


Et c'est fini ! La tour est prête, essayez et vous verrez !


On peut lui ajouter un sol, ce qui n'est vraiment pas dur :

Code : C
1
2
3
4
5
plane {
        y
        0
        pigment { rgb <1,1,1> }
}

Conclusion

Voici donc le code FINAL de la tour
-j'ai un peu changé les couleurs mais c'est tout- :

Code : C
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
camera {
        location <0,1.5,-3>
        look_at <0,1,0>
}
 
light_source {
        <2,3,-3>
        rgb <1,1,1>
}
 
plane {
        y
        0
        pigment { rgb <1,1,1> }
}       
       
cylinder {
        <0,0,0>
        <0,2,0>
        0.2
        pigment { rgb <0.3,0.9,0.3> }
}
 
sphere {
        <0,2,0>
        0.2
        pigment { rgb <0.3,0.9,0.3> }
}
 
torus {
        0.3
        0.1
        pigment { rgb <1,0,0> }
}
 
torus {
        0.45
        0.05
        pigment { rgb <1,0.5,0.5> }
}
 
sphere {
        <0,1.5,0>
        0.35
        pigment { rgb <0.7,0.2,0.7> }
}
 
cylinder {
        <-0.5,1.5,-0.5>
        <0.5,1.5,0.5>
        0.1
        pigment { rgb <0.3,0.6,0.6> }
}
 
cylinder {
        <0.5,1.5,-0.5>
        <-0.5,1.5,0.5>
        0.1
        pigment { rgb <0.3,0.6,0.6> }
}
 
sphere {
        <0.5,1.5,0.5>
        0.15
        pigment { rgb <0.6,0.9,0.9> }
}
sphere {
        <.5,1.5,-.5>
        0.15
        pigment { rgb <0.6,0.9,0.9> }
}
sphere {
        <-.5,1.5,.5>
        0.15
        pigment { rgb <0.6,0.9,0.9> }
}
sphere {
        <-.5,1.5,-.5>
        0.15
        pigment { rgb <0.6,0.9,0.9> }
}
 
cone {
        <0,0.5,0>
        0.2
        <0,0.5+0.2,0>
        0.3
        pigment { rgb <0.1,0.9,0.4> }
}
 
cone {
        <0,0.9,0>
        0.3
        <0,0.9+0.2,0>
        0.2
        pigment { rgb <0.1,0.9,0.4> }
}
 
cylinder {
        <0,0.7,0>
        <0,0.9,0>
        0.3
        pigment { rgb <0.4,0.95,0.6> }
}
 
box {
        <-0.05,0.75,-0.6>
        <0.05,0.85,0.6>
        pigment { rgb <0.7,0.98,0.75> }
}
 
box {
        <0.6,0.75,-0.05>
        <-0.6,0.85,0.05>
        pigment { rgb <0.7,0.98,0.75> }
}


Et le résultat :
Image utilisateur
Et voilà une tour !
Bon, bon, c'est vrai, elle n'est pas belle... elle est même un peu moche, notre tour !
Par exemple, on ne peut pas faire de boîtes dans le même sens que les cylindres ! Et on ne peut pas mettre d'anneaux où on veut !
Mais un peu de patience : dans les prochains chapitres, vous apprendrez à positionner ce que vous voulez, comme vous voulez !
Chapitre précédent Sommaire Chapitre suivant

Partager

5 commentaires pour "TP : une tour du futur..."
Note moyenne : 3.96 / 4 (24 votes)
Pseudo Commentaire
Hors ligne Knacki # Posté le 25/06/2006 à 18:47:41

T'été un bon prof ^^
J'ai réussi le TP sans correction.
C'est un peu long (1h) , mais bon on est assez satisfait du résultat :D

Cependant tes couleurs sont, en effet, à jeter ^^

Toute ironie à part, j'aime tes shémas super clairs ^^

Merci. Je mets 16.
Hors ligne bigtete # Posté le 27/07/2006 à 01:56:14
hopala
Avatar

Études : INSA Rennes

bon TP j'ais hate à faire des images comme dans Final Fantasy X :lol: Je l'ais réussi en 15min a peu près et j'ais pas eu vraiment de mal (pas d'ereur à corriger :soleil: ).
Je te mets 17/20 et je me dirige vers le reste :D !
Hors ligne Gyscos # Posté le 27/07/2006 à 03:39:37
Better burn out than fade away
Avatar

Ville : Palaiseau
Pays : France métropolitaine
Études : Polytechnique

Wow, bravo à vous deux...
Je dois avouer qu'en rédigeant le tutos, je me suis dit que les consignes n'étaient pas très claires, et que personne n'arriverait à le finir sans la correction... apparement je me trompais ^^

Three Wise Droids
Currently working on Spirits Of Heaven, a T-RPG for Android (check the git page) :
http://www.spirits-of-heaven.com
 
Hors ligne Quantum # Posté le 20/08/2006 à 18:03:56
Avatar

Ouais mec, impec ! du premier coup et sans tuster :)
Consignes pas claires ? Et un cerveau, ça sert à quoi...

Ni Dieu, ni maître
 
Hors ligne titi.be # Posté le 23/11/2006 à 19:44:08
Avatar

Excellent tp j'ai mis 18

Voir tous les commentaires