Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TSphere mit Shadow Effekt (https://www.delphipraxis.net/204370-tsphere-mit-shadow-effekt.html)

Andreas L. 24. Mai 2020 12:31

TSphere mit Shadow Effekt
 
Hallo,
ich möchte das eine TSphere (befindet sich auf einem TViewport3D) einen Schatten bekommt. Bei TImages kann ich einfach einen TShadowEffect auf das Bild ziehen und alles funktioniert. Bei einem TSphere wird entweder das Objekt komplett grau gezeichnet oder es verändert sich einfach gar nichts.

Im Moment zeichne ich die TSphere auf ein TImage welches den TShadowEffect als ChildControl hat. Aber ich würde gerne auf das Image verzichten und die TSphere direkt mit einem Schatten zu versehen.
Delphi-Quellcode:
  Sphere1.PaintToBitmap(
    Image1.Bitmap,
    512, 512, TAlphaColorRec.Alpha,
    False, TMultisample.FourSamples
  );
TShadowEffect bietet die Methode
Delphi-Quellcode:
ProcessTexture(const Visual: TTexture; const Context: TContext3D);
Aber ich weiß nicht was ich übergeben muss. Ich habe es auch in dem OnRender-Event von TSphere versucht. Aber da habe ich nur den Context-Parameter. Was muss ich als TTexture übergeben? Oder gibt es eine andere Möglichkeit ein 3D-Objekt mit einem Effekt auszustatten?

Danke und schöne Grüße,
Andreas

ZYLAGON 24. Mai 2020 23:07

AW: TSphere mit Shadow Effekt
 
Hallo Andreas,

ich kann hier nur beitragen, warum der Shadow-Effekt in Deinem Fall nicht das gewünschte Ergebnis bringt:
Die Effekte in der Palettenkategorie 'Effekte' sind für 2D-Objekte gedacht.
Bei 3D im Viewport funktionieren sie nur bedingt.
Wenn Du statt des Shadow-Effekts den InnerGlow-Effekt für die TSphere verwendest, sieht das Resultat vorerst ganz brauchbar aus.
Bewegst Du aber ein anderes Objekt über die mit dem Effekt ausgestatteten TSphere, erkennt man das unschöne Rechteck, welches sich als Geltungsbereich des Effekts "ins Bild drängt".

VG ZYL


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 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