AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi GLScene: Frage bezüglich dem erstellen von Primitives etc.
Thema durchsuchen
Ansicht
Themen-Optionen

GLScene: Frage bezüglich dem erstellen von Primitives etc.

Ein Thema von Maiky · begonnen am 25. Okt 2012 · letzter Beitrag vom 19. Nov 2012
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#1

AW: GLScene: Frage bezüglich dem erstellen von Primitives etc.

  Alt 19. Nov 2012, 17:35
Versuch mal diesen Code:

Delphi-Quellcode:
procedure DrawPolygon(nodes: TGLNodes);
var
    i : Integer;
    GLPolygon : TGLPolygon;
begin
    GLPolygon := TGLPolygon.Create(nil);
    GLPolygon.Material.FrontProperties.Emission.Color := clrRed;
    GLPolygon.Material.PolygonMode := pmFill;
    GLPolygon.Nodes := nodes;
    GLPolygon.MoveTo(GLDummyCube1);
end;
Man vermeidet hier die ganzen Notifications für das Parent Objekt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.785 Beiträge
 
Delphi 12 Athens
 
#2

AW: GLScene: Frage bezüglich dem erstellen von Primitives etc.

  Alt 19. Nov 2012, 17:37
Das könnte vielleicht auch noch etwas bringen:

Delphi-Quellcode:
  procedure DrawNodes(var nodes: TGLNodes);
  var
    j: Integer;
  begin
    DrawPolygon(nodes, clRed);
    nodes.BeginUpdate;
    try
      // Darstellung spiegeln
      for j := 0 to nodes.Count - 1 do begin
        nodes[j].y := -nodes[j].y;
      end;
    finally
      nodes.EndUpdate;
    end;
    DrawPolygon(nodes, clBlue);
  end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Maiky

Registriert seit: 14. Nov 2006
54 Beiträge
 
#3

AW: GLScene: Frage bezüglich dem erstellen von Primitives etc.

  Alt 19. Nov 2012, 17:55
Wow, ich bin fast sprachlos und beeindruckt. Die erste Änderung hat die Zeit von ca. 20s auf ca. 5s(!) gedrückt. Die zweite Änderung dann noch einmal um ca. 1s, so das es jetzt 3-4s dauert und das empfinde ich als Ladezeit für so viele Polygone als in Ordnung. (Für einen 10Jahre alten Rechner mit onBoard-Grafikkarte)

Vielen lieben Dank! Großartige und professionelle Hilfe.


Das es an "GLPolygon := TGLPolygon(GLDummyCube1.AddNewChild(TGLPolygon));" liegt hätte ich aber nicht angenommen. Ich vermutete eigentlich eher das der Renderer eher erstmal alle Polygone "sammeln" sollte und dann die fertige Szene einmalig rendern. Aktuell rendert er ja jedes einzelne Polygon sofort. Das habe ich bemerkt als ich mal Application.ProcessMessages(); in DrawPolygon legte und er anstatt 20s dadurch auch gleich mehrere Minuten gebraucht hatte um dann die Szene anzuzeigen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:14 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-2025 by Thomas Breitkreuz