AmiDARK Engine Rel0.8 Wip : FX2D part 1 : Fake Rasters

5 sujets de 1 à 5 (sur un total de 5)

  • AmiDARK

      #177516

      Bonsoir à tous.

      Maintenant que le plugin est bien *commencé* je peux en parler.

      Comme vous le savez, l’objectif de l’AmiDARK Engine, sera de fournir à peu de choses près, les mêmes commandes BASIC que DarkBASIC Professional ou DarkGDK, pour créer des jeux 2D et 3D sur Amiga New Generation.

      L’AmiDARK Engine, au cours de son développement verra donc, tout comme DarkBASIC Professional et DarkGDK, des *plugins* additionnels se greffer au moteur de jeu pour ajouter au jeu de commandes originales, des jeux de commandes qui n’existent pas dans les versions initiales de DarkBASIC Professional & DarkGDK sur PC.

      J’ai donc initié ce principe, pendant les finitions de cette version 0.8, en commençant le plugin nommé FX2D.

      Ce plugin contiendra donc, plusieurs commandes qui permettront de faire des effets spéciaux en 2D.

      Pour l’instant, ce plugin FX2D ne contient qu’un seul jeu de commande qui s’appelle “Fake Raster”… J’en vois déjà certains se lécher les babines en se disant … Raster … Copper … Ce sont des effets de couleurs ? Et bien je répondrai un grand “OUI”… Cependant, les limitations ne sont pas les mêmes que sur nos anciens Amiga OS 1.x à 3.x sur ECS, AGA, etc.

      Ce système de raster ne s’applique que sur la couleur de fond. On ne peux pas l’appliquer à des couleurs différentes mais seulement à la couleur de fond.

      On peut créer jusqu’à 16 effets rasters dont l’affichage peut être contrôlé par un filtre qui permet différents types de superpositions des rasters.

      Cependant, avec les couches ALPHA dans nos textures et images, on peut créer des intégrations bien plus souples et fluides que ce que l’on pouvait sur nos Amiga Classiques.

      Voici donc, le jeu de fonctions actuels pour ces effets Raster :

      FXCreateFakeRaster( RasterID, HeightInPixels )
      FXCreateFakeRasterEx( RasterID, HeightInPixels, FilterMODE )
      FXCreateFakeRasterExé( RasterID, HeightInPixels, FilterMODE, YPosition )
      FXDeleteRaster( RasterID )

      FXSetRasterLine( RasterID, YLine, RGBColor )
      FXSetRasterGradient( RasterID, StartYLine, StartRGBColor, EndYLine, EndRGBColor )
      FXSetRasterY( RasterID, YPosition )
      FXUpdateRaster( RasterID )
      FXSetRasterFilter( RasterID, FilterMODE )
      FXSetRasterFromMemblock( MemblockID, RasterID )
      FXMakeMemblockFromRaster( RasterID, MemblockID )
      FXHideRaster( RasterID )
      FXShowRaster(RasterID )
      FXDisableRasters()
      FXEnableRasters()

      =FXRasterExist( RasterID )
      =FXGetRasterLine( RasterID, YLine )
      =FXGetRasterY( RasterID )
      =FXGetRasterHeight( RasterID )
      =FXIsRasterUpdated( RasterID )

      Actuellement ce plugin contient 20 commandes liés aux “Fake Raster”.
      Cependant d’autres commandes sont prévues pour d’autres effets…

      La seule question qui reste actuellement en suspens sera le status de ce plugin … Sera t-il intégré par défaut dans le moteur de jeu en tant que Bonus ou … Sera t-il fourni .. A part… Aucune décision n’est prise pour l’instant.

      Voici avec ce message un petit *shot* de la démonstration crée en l’honneur de ce nouveau plugin. Il montre l’effet en cours d’utilisation dans l’AmiDARK Engine.

      Et surtout, remarquez combien le code source pour réaliser cette démonstration (effet inclut) est court :


      #!!include!! "libamidark.h"
      void DarkLoop( void ){
      // On définit l'affichage.
      DESetDisplayMode( 640, 400, 32 );
      DESyncOn();
      DESyncRate( 60 );
      // On charge l'image à afficher au 1er plan.
      DELoadImageEx( "Medias/Environment.png", 1, 1 );
      // On crée un nouvel effet raster et on défini les dégradés de couleur.
      FXCreateFakeRaster( 1, 256 );
      FXSetRasterGradient( 1, 0, DERgb( 32, 32, 64 ), 128, DERgb( 128, 64, 128 ) );
      FXSetRasterGradient( 1, 128, DERgb( 128, 64, 128 ), 255, DERgb( 255, 255, 255 ) );
      FXUpdateRaster( 1 ); // On finalize le raster pour qu'il soit visible.
      // Boucle principale de la démonstration.
      while( !DELoop() ){
      DECls();
      DEPasteImageEx( 1, 0, 0, 1 );
      DESync(); // Les effets raster sont mis à jour à la synchro automatiquement.
      }
      }

      Vous pouvez vous demander …. Mais où est l’effet en fait ?
      Voici aussi un *shot* (le 2nd) qui vous montre la différence sans/avec.

      EDIT : Un troisième shot a été ajouté.
      Il montre la nouvelle “démonstration technique” qui sera disponible dans la version 0.8 de l’AmiDARK Engine.

      @+.

      Anonyme

        #177530

        C’est chouette mec, mille bravos !!!

        serge

          #177532

          Ouais !!! je dirais même plus, c’est méga super chouette. Ça a un goût d’émotions enfouies qui remontent à la surface 🙂

          RyZen Rulez 😉

          JaY

            #177533

            J’admire tout le boulot que tu fais sur ton AmiDark Engine. Dommage que tout cela ne soit que pour NG sinon je m’y serais volontiers plongé un petit peu plus 😉

            CBM A1200:
            Blizzard1260/96Mhz,128Mo(40ns),Indivision, HD80Go,WifiPcmcia. ... Merci hivernaal et l'A.R.T (Amiga Rescue Team) pour ma CD32 !!

            AmiDARK

              #177537

              Merci pour vos commentaires 🙂

              En attendant que je mette en ligne la version 0.8, j’ai mis la démo en boite et je vous la fournit en test :
              http://files.amidark-engine.com/Rel0.8/RasterDemo.lha
              ( Warning : AmigaOS4 + MiniGL required )

              Have fun 🙂
              @+

            5 sujets de 1 à 5 (sur un total de 5)

            • Vous devez être connecté pour répondre à ce sujet.

            Forums AmigaOS, MorphOS et AROS Développement AmiDARK Engine Rel0.8 Wip : FX2D part 1 : Fake Rasters

            Amiga Impact