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
 
Maiky

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

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

  Alt 25. Okt 2012, 09:10
Hallo.

Ich habe diverse Punkte als Ausgangsbasis und möchte sowohl Punktwolken, also auch diese mit Linien verbinden oder gar ein Object darstellen. Ich habe alles realisiert, aber es ist extrem langsam und bei einer Aufbauzeit von 15-20s nicht in der Form brauchbar. Vielleicht kann mir jemand sagen ob ich hier was falsch mache oder es einfach so langsam ist? Wenn ich das selbe unten beschriebene Prinzip mit GLLines und GLPoints mache, dann ist es nur 1-2s bis alles angezeigt wird.
Code:
procedure TForm1.UpdateSceneMesh();
var
    nodes: TVectorList;

procedure DrawPolygon(nodes: TVectorList; LineColor : TGLColor);
var
    i : Integer;
    GLPolygon : TGLPolygon;
begin
    GLPolygon := TGLPolygon(GLDummyCube1.AddNewChild(TGLPolygon));
    GLPolygon.BeginUpdate;
    GLPolygon.Material.FrontProperties.Emission.Color := LineColor.Color;

    for i := 0 to nodes.Count - 1 do
    begin
        GLPolygon.AddNode(nodes.Items[i]);
    end;

    GLPolygon.EndUpdate;
end;

begin
    GLDummyCube1.DeleteChildren;
    GLDummyCube1.BeginUpdate;

    nodes := TVectorList.Create;
{
Hier lese ich meine Punkte in ein Array ein und leere bei jedem Schleifendurchlauf die TVectorList, welche am Ende der Schleife aus den hinzugefügten Vectoren ein neues Polygon erstellt.
}
    for i:= 0 to count - 1 do
    begin
         nodes.Clear;

         nodes.AddPoint(Vector3f(x,y,z));
         nodes.AddPoint(Vector3f(x..,y..,z..));
         nodes.AddPoint(Vector3f(x..,y..,z..));
         nodes.AddPoint(Vector3f(x..,y..,z..));

         DrawPolygon(nodes,clrGreen);
    end;
end;
Das ist jetzt vereinfacht dargestellt, damit man den Code besser überschauen kann. Fehlt mir hier irgendwo ein BeginUpdate/EndUpdate oder erstelle ich gar das Polygon auf einer gänzlich falschen Art und Weise?

Geändert von Maiky (25. Okt 2012 um 10:07 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 10:38 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