AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eine 3D-Buttongrafik mittels 2D-Technik
Thema durchsuchen
Ansicht
Themen-Optionen

Eine 3D-Buttongrafik mittels 2D-Technik

Ein Thema von torud · begonnen am 9. Feb 2005 · letzter Beitrag vom 5. Mär 2005
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#21

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

  Alt 26. Feb 2005, 11:46
Hier mal ein Beispiel, damit überhaupt klar ist, was ich meine .
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;
Angehängte Dateien
Dateityp: rar button_549.rar (164,8 KB, 45x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#22

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

  Alt 27. Feb 2005, 13:09
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...

Ciao
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#23

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

  Alt 27. Feb 2005, 19:23
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 . Bei dem Rahmen weiß ich allerdings nicht, was du meinst.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#24

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

  Alt 28. Feb 2005, 07:54
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.

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...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#25

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

  Alt 4. Mär 2005, 20:12
Meine 3D-Buttons, einfach in Paint gemalt.

Wenn das reicht, die kann man bestimmt auch zur Echtzeit
(mit Canvas) zeichnen.
Angehängte Grafiken
Dateityp: bmp buttonup_213.bmp (6,1 KB, 43x aufgerufen)
Dateityp: bmp buttondown_123.bmp (6,1 KB, 28x aufgerufen)
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#26

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

  Alt 4. Mär 2005, 20:46
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 .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#27

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

  Alt 5. Mär 2005, 12:29
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
Miniaturansicht angehängter Grafiken
home_185.jpg  
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz