website logo
Auteur
avatar
AmiDARK

Forum » » Création-Développement » » AmiDARK Engine Rel0.8 Wip : FX2D part 1 : Fake Rasters


Posté : 28-01-2013 19:49 icone du post

Salut Thellier,

En fait, l'objectif était de recréer un effet similaire aux effets raster/copper de dégradés de couleur par lignes que l'on avait sur Amiga Classiques (68k avec ECS, OCS, AGA...)

Genre l'effet de fond bleu de Turrican 2


FXCreateFakeRaster( RasterID, HeuteurEnLignes ) :
Créer un effet Raster.
FXSetRasterGradient( RasterID, Début, 1ereCouleur, Fin, Dernièrecouleur ) :
Crée un dégradé de couleurs dans un Raster depuis la ligne Début jusqu'à la ligne Fin
FXUpdateRaster( RasterID ) :
Crée en fait la texture 1D qui sera utilisée pour l'effet Raster

Donc j'utilise MiniGL, une texture 1D appliquée à un cadre de la hauteur demandé dans FXCreateFakeRaster et de la largeur de l'écran visible.
Il y a donc, comme sur Amiga Classiques 1 couleur par ligne.
C'est l'alpha présent dans l'image originale (et pas quantifiable sur le snapshot) qui te donne l'illusion que l'effet se fusionne dans toute l'image dans les X & Y. Mais l'effet est simplement de haut en bas. Le reste, c'est l'Alpha présent dans l'image qui colle l'image en la fusionnant avec le raster :p

Le raster étant tracé avant la 2D (car tout est bufférisé (images, textes, rasters, dans l'ordre demandés) et tracé pendant le DESync() ), le raster apparait derrière les images et si, ton image utilise l'alpha, alors on pourra +/- voir l'effet raster dans les parties transparentes de ton image.
Lorsque je parle d'alpha, c'est simplement ce fait que j'expose.
Je pense peut-être ajouter 1 paramète d'alpha global pour chaque RasterID mais pas encore mis en place.
Par contre, j'ai déjà mis en place les filtres de rendu inter rasters pour que certains puissent se chevaucher en s'additionnant, se soustrayant, se masquant, etc... (avec les filtres genre GL_SUBTRACT, GL_ADD, GL_REPLACE, etc. )
Genre, pour pouvoir faire des démos de ce type :

Mais avec des raster lines qui se chevauchent en transparence entre elles, etc ...
Ce devrait être plus joli je pense... Je vais concocter une petite démo de ce type en "technical demonstration" pour montrer le potentiel de l'effet :p

Quand à la syntaxe, si j'utilise les index RasterID, c'est parce que l'AmiDARK Engine a pour vocation d'être compatible avec DarkGDK qui lui, est basé sur DarkBASIC Professional, un langage basic qui fonctionne donc par index (cf. par exemple : Load Object "Fichier.x", Index). Une fois l'AmiDARK Engine complet terminé, je travaillerai sur un IDE et une méthode pour créer un langage BASIC : 'l'AmiDARK Basic" qui sera beaucoup plus proche de DarkBASIC Professionel.

Voila :p
J'espère avoir éclairé ta lanterne ;)
(tu vois c'est de ce genre d'idées que je parlais lorsque je mentionnais, dans le sujet de crisot "Intelligence Créatrice" (bon c'est un peu arrogant mais j'aime ce terme très ésotérique :p)... Trouver une idée pour réaliser un effet particulier :p

Petit edit, Voici la nouvelle démonstration technique qui sera présente dans la version 0.8 de l'AmiDARK Engine et qui montre l'utilisation des Fake Raster :


@+

Message édité par : AmiDARK / 28-01-2013 19:49

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1458&forum=14