AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey Image3D Rendering Reihenfolge

Ein Thema von LexLing · begonnen am 3. Mär 2014 · letzter Beitrag vom 9. Mär 2014
 
LexLing

Registriert seit: 3. Mär 2014
15 Beiträge
 
Delphi XE5 Professional
 
#1

Firemonkey Image3D Rendering Reihenfolge

  Alt 3. Mär 2014, 17:22
Guten Tag liebe Community,

seit einiger Zeit zerbreche ich mir den Kopf über ein gewisses Problem.
Ich habe mir in Firemonkey ein TViewport3D erstellt, wo ich viele verschiedene TImage3D Objekte reinlade.
Die meisten dieser Objekte sind PNGs, die teilweise Transparent sind, was zu folgenden Problemen führt:
Einige dieser Images werden offensichtlich in der falschen Reihenfolge reingeladen, da diese entweder abgeschnitten sind oder erst gar nicht transparent dargestellt werden.
(Bild im Anhang)

Nach einigem googlen, habe ich Lösungsansätze zu dieser Problemstellung gefunden, bei denen die Reihenfolge beeinflusst werden sollte.
Eines davon unter diesem Link:

http://www.delphitools.info/2011/11/...in-firemonkey/

Diesen Lösungsansatz habe ich in meinen Quellcode einbinden wollen, scheiterte aber schon an "SortList", was ich in Delphi XE5 leider nicht finden konnte.
Ersatzweise habe ich es leicht abgewandelt mit der Methode "Sort" versucht, was aber in der Darstellung leider rein gar nichts verändert.
Hier der Quellcode dazu:
Delphi-Quellcode:
vp.Sort(
function (i1, i2: TFmxObject): Integer
var
  o1,o2: TControl3D;
  x1, x2: Double;
begin
  o1 := nil; o2 := nil;
  if TfmxObject(i1) is TControl3D then o1 := TControl3D(i1);
  if TfmxObject(i2) is TControl3D then o2 := TControl3D(i2);
  if (o1 <> nil) and (o2 <> nil) then
  begin
    x1 := o1.Position.Vector.Distance(vp.cam.Position.Vector);
    x2 := o2.Position.Vector.Distance(vp.cam.Position.Vector);
    Result := Trunc((x2 - x1)*1000);
  end else
    Result := 0;
end
);
Nun frage ich mich wie ich Einfluss auf die Reihenfolge haben oder anderweitig das Problem lösen kann.
Freue mich auf eure Lösungsvorschläge.

Ich hoffe, ihr könnt mir weiterhelfen
Bitte seid nachsichtig, da dies mein erster Delphi Forum Auftritt ist.
Liebe Grüße
LexLing
Angehängte Grafiken
Dateityp: png transparentRendering.png (299,5 KB, 24x aufgerufen)

Geändert von LexLing ( 4. Mär 2014 um 11:38 Uhr)
  Mit Zitat antworten Zitat
 


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 09:08 Uhr.
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