Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 13:09  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Real 3D - Les textures procédurales
(Article écrit par Jac Pourtant et extrait d'Amiga News - octobre 1996)


Ce mois-ci nous allons continuer à étudier les textures, mais sous leur angle algorithmique puisque nous allons nous concentrer sur les "handlers" de la fenêtre "Materials".

Real 3D

Cette série n'a pas pour but de se substituer au manuel, mais d'éclairer les points obscurs de celui-ci. Il ne faut donc pas attendre de réalisation plus ou moins spectaculaire comme dans d'autres séries du genre. Avant tout, je voudrais revenir sur ce conseil du mois dernier si vous êtes sous environnement CyberGraphX. Je me suis personnellement enregistré chez le polonais "Miloslaw Smyk, ul. Orawska 22/34, 70-131 Szczecin, Pologne" et j'ai donc modifié mon Default.prj pour intégrer cette wfmh.library géniale qui me sort non seulement mes fenêtres View en 15 bits merveilleusement tramés, mais aussi les gadgets "Visible" de la fenêtre "Tools" en relief (Miloslaw nous dit que son oeuvre est compatible avec les versions 3.11 et aussi 3.3 - que je ne connais pas).

Généralités

Les handlers (j'ai pris ici ceux de la version 3.11) sont des clés mathématiques qui se rajoutent à tous les réglages que nous avons vus le mois dernier. Ils sont tous à la position "default" par défaut. Cette position ne reçoit aucun paramètre. Les autres reçoivent soit une ou des expression(s) mathématique(s), comme "Formula", soit une ou des expression(s) en langage RPL, comme "RPL", ou bien des valeurs dans les gadgets numériques "a" et "b" pour le reste des positions.

Il est très difficile de faire court, il faudrait au minimum deux pages par handler pour les détailler. Chacun doit faire ses propres essais. Mon rôle est de débroussailler.

Pour RPL ou Formula, on ne peut pas rentrer n'importe quel paramètre, je vais indiquer ceux qui conviennent. Par contre, la formulation dépasse le cadre de cet épisode ainsi que le RPL qui viendra en son temps (dans quelques mois...).

Rappelons enfin ce que dit le manuel : "les paramètres sont prévus pour évoluer entre 0 et 100. En dehors de ces limites, les résultats sont imprévisibles".

Le mapping handler

Pour utiliser ce handler, il faut appliquer une texture en placage (mapping), c'est-à-dire qu'il faut avoir chargé une image qu'on va appliquer à l'objet.
  • Formula et RPL : les variables sont "x, y et z". Reportez-vous au manuel page "R.1.8" pour voir comment elles sont appliquées.
  • Tilt : la texture est appliquée en oblique selon "a" (défaut "a=1").
  • Waves : l'application se fait par une sinusoïde avec "a" pour la fréquence et "b" pour l'amplitude (défaut "a=b=1").
  • SwapXY : ici, "x et y" sont intervertis et "a et b" ne jouent aucun rôle.
  • Noise : la granulation est proportionnelle à "b". Pour "b=10", granulation faible; "b=100", granulation forte; "b=1000", plus rien n'est reconnaissable. Ici, "a" ne joue que le rôle de graine aléatoire. En faisant évaluer "a" dans une animation, la granulation scintillera.
Le scope handler

Scope veut dire ici quelle portion et sous quelle intensité le placage sera visible.
  • Formula et RPL : les variables sont "s, sp, sb, br, tr, tu, ts, ro, ri". "s" représente le pourcentage de mixage de la texture présente avec les autres. Si "s" est négatif, l'objet disparaît. Si "s=0", l'image est invisible. Si "s=100 ou plus", l'image s'applique pleinement. Il y aurait énormément plus à dire en fonction de toutes les variables, mais ce serait un traité en 10 volumes...
  • Sphere : l'image n'est visible que dans une sphère centrée à l'origine de la texture. Le paramètre "a" définit le rayon de la sphère, "b" ne joue aucun rôle.
  • InvSqr : plus on s'éloigne de l'origine de la texture, moins elle s'applique. Plus "a" est petit, plus vite la texture s'estompe avec l'éloignement, "b" n'a pas d'influence.
  • InvExp : la même chose que "InvSqr" sauf qu'au lieu de l'inverse du carré, la progression est exponentielle et donc plus radicale.
  • Local : là, il s'agit d'un condensé de "Sphere" et de "InvSqr" puisque l'image n'est visible que dans la sphère, mais en se dégradant vers le bord.
  • Temporal : l'image s'applique uniformément mais en fonction du temps. Les valeurs pour "a et b" sont comprises entre "0" (0%) et "1" (100%); "a" représente le facteur au temps "0", "b" au temps "1". Ainsi "a=0.100" et "b=0.850" : le placage est visible à 10% au début, à 85% à la fin de la séquence.
  • Noise : grenage aléatoire où "a" représente la grosseur du grain (très gros si proche de "0", très fin vers "10", invisible dans les hautes valeurs) et "b" l'intensité (de "0.200" où l'image est pratiquement inaltérée à "5.000" où elle est pratiquement invisible.
  • Depth : le placage ne s'applique ici qu'entre la profondeur "a" et la profondeur "b" (en mètres absolus). "b" doit être plus grand que "a". Comme le dit le manuel, pratique pour n'appliquer la texture que sur une face de cube, par exemple.
  • Angle : la texture ne sera visible qu'entre l'angle "a" et l'angle "b" ("0" étant la surface, "-1" la perpendiculaire "derrière", "1" la perpendiculaire "devant"). Donc "a=0, b=1.1" ("1.1" pour être sûr) la texture ne sera visible que sur la face avant ; pour "a=-1.1, b=0", que sur la face arrière. Et bien d'autres possibilités...
Le bump handler

Le placage de relief (bump mapping) ne fonctionne pas si on applique une image. Il faut donc séparer les textures si on veut les deux.

Real 3D
  • Formula et RPL : les variables sont "bh, bx, by".
  • Waves : "a" nous donne la fréquence des vagues qui s'étendent parallèlement en direction des "x". "b" nous fournit l'amplitude (au-delà de "1.000", l'effet s'amplifiant, les vagues s'écrêtent, c'est-à-dire qu'elles deviennent presque carrées.
  • Bumps : comme "Waves" sauf que les vagues s'étendent dans les directions "x et y", ce qui nous donne une structure régulière en forme de "boîte à oeufs".
  • Noise : relief aléatoire où "a" représente la grosseur du grain ("a" plus élevé, grain plus fin) et "b" la force.
  • Roughness : je dois dire que je n'ai obtenu aucun résultat. Je n'en parlerai donc pas. Il semble y avoir une bogue.
Le color handler
  • Formula et RPL : "R, G, B" en sont les variables.
  • Bright : les couleurs sont augmentées en fonction de "b" dans un rayon déterminé par "a".
  • Waves : similaire à "Bump Waves" sauf que c'est la couleur qui est en jeu, bien qu'on puisse en confondre l'effet sur une surface plane.
  • Granite : seul "a" a une influence sur le grain qui imite le granite (plus "a" est petit, plus le grain est gros).
  • Noise : similaire à Granite, sauf que joue ici un rôle : celui de rajouter de la couleur jusqu'à un point exagéré dont on peut jouer pour faire du multicolore.
  • Marble : du marbre, bien sûr, si "a" est inférieur à "1.000" et même à "0.100", mais du moucheté irrégulier au-dessus de "3.000". "b" règle l'intensité comme de bien entendu.
  • Dither : aucune réaction constatée de ma part. Et vous ?
  • Col.repl : idem, l'objet entier prend la couleur définie dans les gadgets numériques de couleur transparente et c'est tout. Pas de quoi fouetter un spline. "a et b" sont muets.
L'index handler

Celui-ci est différent des autres. On en tire un index ("i") avec lequel on peut choisir une texture indexée. Dans les paramètres "a et b", on peut placer le décalage de la congruence et le modulo. Vous me direz, c'est un peu hermétique, alors prenons un exemple. Nous voulons faire une animation de 20 images. Nous voulons plaquer une texture basée sur une série de sept images indexées de 0 à 6 (par exemple de "pic.0" à "pic.6"), et nous voulons démarrer à la troisième image ("pic.2"). Alors laissons sur "Default", faisons "a=2, b=7". Ensuite, rentrons dans le nom de la texture "...chemin/textures/pic.%d". Le tour est joué. Il fallait le trouver, car ce n'est vraiment pas marqué explicitement dans le manuel. Ça m'a pris deux heures pour comprendre le processus. Si on veut indexer plus d'images, prenons le standard à quatre chiffres (genre "pic.0001") et le nom de la texture à évoquer sera ".../pic.%04d" (selon les conventions de programmation C ANSI).
  • Formula et RPL : variable "i" comme index.
  • PingPong : comme "Default", sauf que l'index revient lentement au début pour réaliser une oscillation.
Le menu

Le menu de la fenêtre "Materials" offre peu d'intérêt. Les deux fonctions les plus utiles sont les deux premières qui sélectionnent l'image à plaquer et qui la visualisent. Les raccourcis clavier ("Amiga-D" et "Right Amiga-S") suffisent. Transparent Color peut-être pratique si on ne veut pas rentrer les valeurs manuellement, la sélection de cet item rentre la valeur de la couleur actuelle définie soit par la palette soit par la roue de couleurs. "Tags" et "Procedure" appellent les fenêtres correspondantes, les manuels ne disent pas un seul mot.

Le dernier item, la fenêtre "View" s'ouvre en plein milieu de la fenêtre "Materials". C'est un peu gênant. Il suffit de la sélectionner et de désactiver le menu "Project/Windows/No Gadgets", la déplacer, la redimensionner à son goût et éventuellement réactiver l'option "No Gadget". L'inconvénient de cette fenêtre est qu'elle n'est qu'une quelconque fenêtre View qui montre les objets du projet en plus de ses objets propres. Alors ce n'est pratique que sans objets ou en désélectionnant leur présence en raytrace.

Dénonçons les bogues

Que tous ceux d'entre vous qui ont remarqué des bogues dans Real 3D me les signalent. Il y en a d'évidentes comme le rendu des surfaces courbes qui se fait en 16 bits et non en 24 bits (on voit les bandes de couleurs très nettement).

J'ai constaté dernièrement que le fait de sauvegarder une fenêtre "View Tools" dans l'environnement faisait planter au lancement de Real 3D, mais peut-être est-ce une facétie du DraCo ?


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]