Dégradé de couleurs.

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

  • 1
  • 2
  • Gilloo

      #9421

      Si on fait un dégradé d’une seule couleur, on peut le faire sur 16 niveaux (du blanc à la couleur, ou du noir à la couleur voulue) et les niveaux se voient, à moins de faire des barres horizontales sur 16 pixels.

      Or il me semble qu’il y avait une démo dans le temps (1992) qui affichait un dégradé continu sur la totalité de la hauteur de l’écran soit 256 pixels…

      Comment peut on faire cela en ECS ?

      Anonyme

        #144771

        T’a essayé d’ouvrir plusieurs écran différent de 1 pixel de haut décalé des couleurs de ton dégradé?

        Ou alors, peut être qu’en flippant 256 écran à grandes vitesse, (comme le plasma sous Amos), écran décalé de 1pixel en Y tu puise recréé se dégradé, sinon il y a une puce spécifique qui fait sa sur amiga, on appelé sa des raster je crois… je sais plus, après sa dépend avec quel outil tu développe

        Mod

        Tcheko

          #144772

          Avec une copperlist très certainement.

          En ECS, les canons de couleur sont sur 4 bits soit 16 valeurs possibles comme tu l’as déjà fait remarqué.

          Une solution pour obtenir plus de couleur est de les changer à chaque balayage. Le calculateur HP48 affichait des teintes de gris sur un écran LCD noir et blanc en allumant/éteignant rapidement les pixels afin de simuler du gris.

          Je suppose que la même technique peut être employée pour fabriquer des couleurs intermédiaires.

          thellier

            #144773

            >Si on fait un dégradé d’une seule couleur, on peut le faire sur 16 niveaux

            Je pense que tu veut dire un dégradé « sur une seule des composantes R G B « 

            genre je fais un dégradé du rouge 0 au rouge 15

            Pourquoi ne pas intercaler des valeurs ultrafaible de juste 1 en G et B ?

            Ainsi passer du rouge 4 0 0 au rouge 6 0 0 donnerais

            4 0 0

            4 0 1

            4 1 1

            5 0 0

            5 0 1

            5 1 1

            6 0 0

            a la ligne suivante tu peut alterner

            4 1 0

            4 1 1

            5 0 0

            5 1 0

            5 1 1

            6 0 0

            6 0 1

            etc…

            Ca améliorera un peu mais y a pas de miracle

            Tu peut aussi faire un dégradé à la Floyd Steinberg

            (Quoique pour un simple dégradé horizontal ça apportera rien à ce que je viens de décrire)

            http://aminet.net/package/dev/src/FSditheringW3D

            Alain

            AmiDARK

              #144774

              Tu peux utiliser l’entrelacé pour simuler l’équivalent de 32 dégradés de couleur …

              Enfin, .. pas un vrai entrelacé … un trafiqué ..

              Je vais regarder ce week-end si je retrouve mon code source AMOS qui utilise le copper pour créer ce genre d’effets de dégradé …

              En fait le principe n’est pas très compliqué

              Tu crées 2 listes copper sur la 1ère copper list hardware (pas besoin d’utiliser la seconde)

              à la fin de chaque copper, l’avant dernière instruction devra être le modif du pointeur de ta copper vers l’autre copper list.

              Puis tu finis chaque copper list par l’inéfable FFFFFFFE (si je me souviens bien).

              Au final, chaque copper sera utilisé à 1 frame / 2 (par exemple frames paires copper 1, frames impaires copper 2

              Bien entendu, cela t’obligera à modifier les valeurs de scrollings, de bitplans, etc .. dans les 2 copper list.

              Sur ta premier copper par exemple tu définis la couleur de ton effet comme suit :

              Copper 1 Copper 2

              Ligne / Couleur Ligne / Couleur

              01 : 15 ___ 01 : 15

              02 : 15 ___ 02 : 14

              03 : 14 ___ 03 : 14

              04 : 14 ___ 04 : 13

              05 : 13 ___ 05 : 13

              06 : 13 ___ 06 : 12

              … et ainsi de suite … chaque couleur sur 2 lignes et décalées de 1 ligne d’un copper à l’autre

              Cela te donnera un effet d’entrelacé … mais au final tu auras l’impression d’avoir 32 tons de dégradé …

              Si tu veux faire un dégradé du blanc au noir ou inverse … tu peux jouer en n’incrémentant/décrémentant qu’une seule composante par une, genre :

              Copper 1 Copper 2

              Ligne / Couleur Ligne / Couleur

              01 : 15 15 15 ___ 01 : 15 15 15

              02 : 15 15 15 ___ 02 : 15 15 14

              03 : 15 15 14 ___ 03 : 15 15 14

              04 : 15 15 14 ___ 04 : 15 14 14

              05 : 15 14 14 ___ 05 : 15 14 14

              06 : 15 14 14 ___ 06 : 14 14 14

              07 : 14 14 14 ___ 07 : 14 14 14

              08 : 14 14 14 ___ 08 : 14 14 13

              … etc …

              Cele donnera un petit semblant de ton « rosé » sur ton copper mais ça devrait te permettre de faire un dégradé de gris sur 96 tons ;)

              En espérant que tout ceci t’ai aidé ;

              @ +

              AmiDARK

              crisot

                #144775

                Heu, y’a plus cours comme explication:

                Ce que tu demandes est impossible.

                ECS/OCS n’ont que 16 teintes par primaire. Tu ne pourra pas te défaire de ces bandes, les chips sont incapables de générer une teinte « intermédiaire ».

                Si tu as vu une demo ou le dégradé semblait parfait, 2 solutions:

                1/ Elle était AGA et ta mémoire flanche.

                2/ Le dégradé était fait en orderer/floyd dithering. Nos écrans de l’époque ayant un pitch important et relativement flou, à l’oeil ça passait. Sur un écran moderne, tu serais déçu du résultat (tu verrais juste une bouillie de pixels en duel).

                Mod

                Tcheko

                  #144776

                  crisot a écrit :

                  Heu, y’a plus cours comme explication:

                  Ce que tu demandes est impossible.

                  ECS/OCS n’ont que 16 teintes par primaire. Tu ne pourra pas te défaire de ces bandes, les chips sont incapables de générer une teinte « intermédiaire ».

                  En flippant deux couleurs proches une trame sur deux, tu dois pouvoir simuler une teinte intermédiaire.

                  Je n’ai jamais essayé toutefois…

                  thellier

                    #144777

                    >Ce que tu demandes est impossible.

                    NON

                    Je suis d’accord avec AmiDark : pour faire un dégradé vertical de 96 couleurs (16x3X2) on peut le faire avec 2 copperlist comme il l’indique

                    Soit en changeant le pointeur de la copperlist à la fin de la premiere copperlist pour utiliser la deuxieme (et vice-versa)

                    Soit en utilisant une première ligne de ta copperlist differente pour les frames impaire/paire puis les autres lignes en position relatives

                    Meme sans copper le principe reste vrai : en ayant des pixels de deux images légérement différents d’un frame à l’autre

                    Alain

                    AmiDARK

                      #144778

                      @crisot :

                      Ce n’est pas un dégradé réel … c’est la persistance rétinienne de ton oeil qui fera le boulot.

                      Je l’ai déjà fait ! et ça marche !!!

                      Donc OUI C’est possible …

                      l’amiga affiche 50 frames / sec ton oeil en voit 24 .. donc tu auras 2 frames mélangées par ton oeil

                      et du :

                      15 15 = 15

                      15 14 = 14.5

                      14 14 = 14

                      L’illusion sera faite

                      crisot

                        #144779

                        NON.

                        La persistance rétinienne ne fonctionne pas à une si faible fréquence. L’oeil limité à 24 ips est une légende urbaine, sinon comment pourrait on faire la différence entre 50 fps (1 vbl) et 25 (2 vbl)?

                        Si j’en crois vos dires, alterner un écran blanc et un écran noir à 50 hz fait percevoir un écran gris. Pourtant, en pratique, on voit un stroboscope suceptible de déclencher une crise d’épilepsie. Même avec deux valeurs proches, une alternance rapide de 14/15 donne un scintillement fatiguant entre les deux teintes, pas 14.5.

                        Ces gruges sont bidons.

                        Anonyme

                          #144780

                          Message supprimé à la demande de son auteur

                          henes

                            #144781

                            +1 pour crisot

                            Il suffit de lancer le jeu Agony (il y en a d’autres) pour voir le résultat : ça clignote à mort. Même sur un CRT.

                            AmiDARK

                              #144782

                              @Crisot :

                              Je n’ai jamais dit que cela était adapté à des teintes distinctes.

                              Je parle de nuances très proches …

                              J’ai un code source Amos qui le fait … dès que je le retrouve, je le mets à dispo. cependant, ceci ne fonctionne que sur un VRAI amiga ( os < 4 ) classic en ECS/OCS/AGA ... @Hénès : Forcément, ils utilisent pas ce principe la … l’interlace n’est pas utilisé pour le même principe ….

                              crisot

                                #144783

                                AmiDARK a écrit :


                                @Crisot
                                :

                                Je n’ai jamais dit que cela était adapté à des teintes distinctes.

                                Je parle de nuances très proches …

                                D’ou le fait de lire mon précédent message jusqu’au bout:

                                « Même avec deux valeurs proches, une alternance rapide de 14/15 donne un scintillement fatiguant entre les deux teintes, pas 14.5. »

                                Et ne t’inquiètes pas c’est le genre de bidouille que j’ai moi aussi testé en Amos il y a un bon minimum de 15 ans: Non, ce n’est pas convainquant, ça flingue les yeux. ;-)

                                AmiDARK

                                  #144784

                                  Et tout les téléviseurs cathodiques faisaient cela pour pouvoir permettre une meilleure définition …

                                  Cela n’a pas donné d’épileptiques que je sache … non ?

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

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

                                Forums AmigaOS, MorphOS et AROS Développement Dégradé de couleurs.

                                Amiga Impact