Expériences graphiques avec Warp3D

15 sujets de 1 à 15 (sur un total de 18)

  • 1
  • 2
  • thellier

      #10256

      Hello

      Là je développe un petit moteur 3D nommé Microbe3D (et quoique cela soit très loin d’être finalisé) je voulais vous faire profiter des effets graphiques COOL qu’il permet déjà

      Et ca utilise Warp3D directement sans MiniGL :-)

      http://thellier.free.fr/microbe3d.zip

      http://thellier.free.fr/teapot.jpg

      Ca charge des objets 3D .OBJ (Wawefront) + textures .BMP que vous pouvez créer avec Blender par exemple

      Parmi les effets les plus coolissime (activable par des touches dans cette démo):

      “C” qui fait un mappage de cube d’environnement en temps réel (aspect mirroir) (pour porsche.obj et teapot.obj)

      http://thellier.free.fr/porsche.jpg

      http://thellier.free.fr/teapot.jpg

      “T” qui fait un toon shader (rendu BD non réaliste)

      http://thellier.free.fr/cow.jpg

      Les matériaux multiples y compris transparents à voir avec teapot.obj

      “M” change de matériaux

      “g” change de group

      “G” affecte le mat à ce groupe

      “l” qui déplace la lampe

      “-” “+” qui smoothe les normales

      “p” qui change de primitive de tracage

      “v” “V” qui réduit le nombre de points

      “k” qui réduit le nombre de points d’une meilleure façon

      “K” qui réduit le nombre de normales

      “x” “y” “z” pour la rotation

      “*” “%” pour la taille

      Voir dans options.txt toutes les touches possibles

      Alain Thellier

      stefff285

        #157092

        ouaaaaaaaaaaa c’est bon ca !

        pour des demos ca serait top niveau

        ca te dit de faire du demomaking ?

        on est un bande de foufous si ca te dit

        http://vitalmotion.eu

        et c’est sous morphos ou amiga os ?

        bref bonheur bravo bravo

        a bientot ?

        steff

        thellier

          #157093

          Hello

          MERCI

          J’ai pas trop le temps de faire des démos; déjà je programme sur mon temps libre…

          Dès que mon Microbe3D sera une microbe3D.library fonctionnelle alors faire une démo à base d’objets 3D sera à la portée de tous ;-)

          >et c’est sous morphos ou amiga os ?

          C’est pour AmigaOS3 68k et OS4 ppc

          La version os4 est trop lente car y a un problème: j’arrive pas à utiliser W3D_DrawArray & W3D_InterleavedArray

          Alain

          Anonyme

            #157094

            Bravo !

            tito

              #157095

              excellent

              Partage de photos entre amis : les réseaux sociaux trop risqués ? les envois par email aléatoires ? le Cloud compliqué ? ---
              Essayez album.zaclys.com ! ---
              Association loi 1901, 100% made & hosted in France.

              kioniro

                #157096

                ça claque !

                Ma config : Amiga CD32 nue, c'est un super joujou pour rester dans le monde de l'Amiga 🙂

                Screetch

                  #157097

                  Une bonne nouvelle ça :)

                  C’est uniquement 68K ou une version PPC OS4/MOS est prévue ?

                  Merci !

                  Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                  thellier

                    #157098

                    Hello

                    La version 68k et la version ppc sont incluses

                    Alain

                    krabob

                      #157099

                      jolies normales bien gérées sur la théière.

                      Mais je croyais que warp3d était en fin de course et qu’on allait passer à du mesa/gallium… dés lors quel besoin de faire une nouvelle api ? (même si c’est toujours amusant de faire une api 3D)

                      thellier

                        #157100

                        Hello

                        >jolies normales bien gérées sur la théière.

                        MERCI

                        C’est de cet effet mirroir dont je suis le plus fier :-)

                        >quel besoin de faire une nouvelle api ?

                        Car là c’est une API vraiment de haut niveau:

                        on charge un objet de Blender avec UNE fonction

                        et on démarre un prog avec seulement qques fonctions

                        Alain

                        /*======================================*/

                        int main(int argc, char *argv[])

                        {

                        void *Scene;

                        void *Object;

                        void *Instance;

                        #ifdef OS3

                        #define DEMOTITLE “Microbe3D Demo – OS3 68k”

                        #endif

                        #ifdef OS4

                        #define DEMOTITLE “Microbe3D Demo – OS4 ppc”

                        #endif

                        #ifdef __AROS__

                        #define DEMOTITLE “Microbe3D Demo – Aros “

                        #endif

                        Scene =U3D_EasyOpenScene(DEMOTITLE,480,480);

                        Object=U3D_ReadOBJ(Scene,NULL);

                        if (Object==NULL)

                        goto panic;

                        Instance=U3D_AddInstance(Object);

                        while(U3D_KeyEdit(Scene))

                        {

                        U3D_DrawScene(Scene);

                        }

                        panic:

                        U3D_Delete(Scene);

                        return 0;

                        }

                        sinisrus

                          #157101

                          c’est top vivement de bon pilote 3d pour en profité pleinnement

                          davebraco

                            #157102

                            @thellier

                            Un petit défi lancé aux programmeurs :

                            http://hdrlab.org.nz/projects/amiga-os-4-projects/c3d/

                            C’est pas vraiment de la 3D mais c’est de la 3D :-?

                            Yomgui

                              #157103

                              Si j’ai bien compris, on utilise le CPU pour fabriquer une/des textures qui avec des coordonées bien choisies pour le mapping (rectangle) font “croire” à de la 3D (par déformation).

                              Soit un calcul de transformée affine (pour faire simple…ou pas).

                              Le GPU n’est utilisé que pour son “blitting”.

                              C’est très sympas pour ceux qui veulent apprendre la 3D en passant par les concepts mathématiques, mais c’est évidement complètement inutile dans un cas pratique, vu que les cartes graphiques font tout le boulot maintenant. Donc cela reste qu’un travail pour études. Pas vraiment un grand défis.

                              thellier

                                #157104

                                Pas exactement…

                                J’ai pas encore lu les sources mais je crois qu’on peut tracer des triangles quelconques

                                Donc ça revient à tracer l’image 3D “à plat” en 2D avec des triangles texturés (avec correction de perspective quand même)

                                En fait c’est pareil que warp3D mais en encore plus rustique car y a pas le zbuffer.

                                Certainement qu’on doit pouvoir tracer des trucs ainsi …. mais l’intéret est limité car warp3D fait pareil et mieux…

                                Alain

                                thellier

                                  #157105

                                  Hello

                                  J’ai regardé les sources de la Composite3D-Demo

                                  Voilà l’essentiel à savoir (ça marche sensiblement comme le W3D_DrawArray de Warp3D):

                                  struct Vertex3D {

                                  float x, y;

                                  float s, t, w; /* = u v w */

                                  };

                                  #define NUMTRI 1000

                                  vertexArray Vertex3D[NUMTRI*3];

                                  compErr = IGraphics->CompositeTags(blendMode,

                                  texBM, renderBuffer,

                                  COMPTAG_VertexArray, vertexArray,

                                  COMPTAG_VertexFormat, COMPVF_STW0_Present,

                                  COMPTAG_NumTriangles, NUMTRI,

                                  COMPTAG_SrcAlpha, alphaBlendFP,

                                  COMPTAG_Flags, COMPFLAG_IgnoreDestAlpha |

                                  COMPFLAG_HardwareOnly | COMPFLAG_SrcFilter,

                                  TAG_DONE

                                15 sujets de 1 à 15 (sur un total de 18)

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

                                Forums AmigaOS, MorphOS et AROS Création Expériences graphiques avec Warp3D

                                Amiga Impact