Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Eine 3D-Buttongrafik mittels 2D-Technik (https://www.delphipraxis.net/39921-eine-3d-buttongrafik-mittels-2d-technik.html)

Khabarakh 26. Feb 2005 12:46

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Beispiel, damit überhaupt klar ist, was ich meine :mrgreen: .
Bei meiner foo-Prozedur musste ich allerdings noch eine Hilfsprozedur hinzufügen:
Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel

  function RoundByte(Value: Single): Byte;
  var x: Integer;
  begin
    x:=Round(Value);
    if x>255 then
      x:=255
    else
      if x<0 then
        x:=0;
    Result:=x;
  end;

var pSource, pDest: PRGBQuad;
    x, y: Integer;
begin
  [...]
      pDest^.rgbRed :=RoundByte( pDest^.rgbRed-(255-pSource^.rgbRed));
      pDest^.rgbBlue :=RoundByte( pDest^.rgbBlue-(255-pSource^.rgbBlue));
      pDest^.rgbGreen :=RoundByte( pDest^.rgbGreen-(255-pSource^.rgbGreen));
      //  Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
      Inc(pDest);
      Inc(pSource)
    end
  end
end;

torud 27. Feb 2005 14:09

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Hallo Sebastian!

Vielen Dank für das anschauliche Beispiel!

Mit dem mir nun zur Verfügung stehenden Wissen, werde ich versuchen, dass was ich vor hatte, doch noch zu realisieren. Ich werde mal versuchen, die ein oder andere Abwandlung auf das Projekt zu projizieren, um vielleicht auch kreisförmige Buttons und Buttons mit "runden Ecken" herauszubekommen. Ich denke, dass ich dann einfach nichts mit FillRect machen darf. Mal schauen, wie weit ich komme.

Mal sehen, ob ich noch herausbekomme, wie ich einen farbigen Rahmen um die Buttons und so was wie einen Beleuchtungseffekt bekomme. Du hast mir echt geholfen! Sollte ich das Projekt zum Laufen bekommen, würde ich Dich gern namentlich erwähnen... :thumb:

Ciao

Khabarakh 27. Feb 2005 20:23

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Hallo Tom,

ich freue mich, dass ich dir helfen konnte. Noch ein Tipp: Wenn ich etwas aus der kleinen Demo gelernt habe, dann das: Die VCL-Grafikkomponenten sind einfach nicht sehr gut und oft ziemlich umständlich. Ich kann dir nur raten, die GR32-Komponenten zu benutzen, nach einer kurzen Eingewöhnungszeit gibt es nur noch Vorteile.
Eine Vorüberlegung zu den runden Buttons:
Ich würde den Schatten aus vielen Linien senkrecht zum Rand des Buttons zusammensetzen. Die Farbe der einzelnen Linie ergibt sich dann aus dem Winkel zur linken oberen Ecke (oder wo auch immer). Das wird also ziemlich mathematisch.
Zitat:

Mal sehen, ob ich noch herausbekomme, wie ich einen farbigen Rahmen um die Buttons und so was wie einen Beleuchtungseffekt bekomme.
Das hört sich allerdings wieder nach Render-Engine an :zwinker: . Bei dem Rahmen weiß ich allerdings nicht, was du meinst.

torud 28. Feb 2005 08:54

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Hallo Sebastian!

Also die GR32-Kompo habe ich und nutze ich auch. Das gute an denen ist, dass man wirklich visuell mehrere Ebenen erstellen und mittel "Flatten" direkt zusammenbügeln kann. Einfacher gehts nicht. Mir fehlt(e) halt eben die Möglichkeit mit ein paar Effekten, die natürlich nicht einfach so mit eingebaut wurden, das Ganze etwas aufzupeppen, denn das Problem ist doch, dass man mit ein paar Templates nicht all das abdecken kann, was manche User sich wünschen.

Also muss man es eben so gestalten, dass es möglichst offen ist.

Das mit der Render-Engine habe ich verworfen, da ich selbst nach einigen OpenGl-Tuts und mehreren OpenGL-Sites, die ich durchsurft habe nie das fand, wonach ich suchte. Ich habe mir schon einiges installiert und reingezogen, aber nirgendwo einen 3d-Button per OpenGL gefunden. Also habe ich ihn per 3dsMax bebaut und wollte dann in einer kleinen Engine die Szene laden und dort dann nur die Farbe, und/oder die Textur, Beleuchtung, BumpMaps ect. anpassen. Wenn das geklappt hätte, hätte ich dieses Posting nicht eröffnen müssen. :lol:

Ich bin nun immer noch am Schwanken, ob und wie ich dieses Thema realisieren will...denn mir scheint Codetechnisch nicht so viel möglich zu sein, wie mit OpenGl, wobei mir bei OpenGl einfach das Verständnis des HowTo- fehlt...

Und das mit dem Rahmen meinte ich so, dass ich um den EndButton, der in Deinem Beipiel in Image4 liegt einen Rahmen zeichnen wollte. Irgendwie scheint mir das alles nicht zu liegen, denn selbst das ist mir nicht gelungen. Habe Canvas bemnutzt und wollte per Pen den Rahmen zeichnen, aber kein Ergebnis erhalten... :wall:

BUG 4. Mär 2005 21:12

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Liste der Anhänge anzeigen (Anzahl: 2)
Meine 3D-Buttons, einfach in Paint gemalt.

Wenn das reicht, die kann man bestimmt auch zur Echtzeit
(mit Canvas) zeichnen.

Khabarakh 4. Mär 2005 21:46

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Zitat:

Zitat von BUG
Meine 3D-Buttons, einfach in Paint gemalt.

Wenn das reicht, die kann man bestimmt auch zur Echtzeit
(mit Canvas) zeichnen.

Das habe ich zwei Beiträge über deinem schon mit Delphi geschafft :wink: .

torud 5. Mär 2005 13:29

Re: Eine 3D-Buttongrafik mittels 2D-Technik
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Ihr Beiden!

Bitte keinen Streit! Ihr habts beide drauf!

Also das was Ihr das mit Delphi so spielend schafft, ist leider nur ein kleiner teil dessen, was ich vor habe. Sicher, es ist ein Button. Und ja, er sieht sogar aus, wie ein 3d-Button, aber eben nur wie ein einfacher 3d-Button mit einer einfachen eckigen oder eben runden Kante!

Ich habe mit dem Projekt von Sebastian eine ganze Weile gespielt und einige Anpassungen und Modifikationen versucht, aber leider NIE einen solchen 3d-Button generieren koennen, wie ich es vor habe!

Ich zeige Euch mal, was ich als Minimum anstrebe!

Ich weiss, dass das vielleicht etwas dick aufgetragen ist, aber ich denke, dass das schon eher wie ein 3d-Button aussieht. Und wenn das nicht drin ist, muss ich wohl Templates nehmen.

Schoenes We


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz