AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL Beschleunigungs Routinen oder Codeoptimierung
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Beschleunigungs Routinen oder Codeoptimierung

Ein Thema von mwiesbau · begonnen am 2. Mär 2005 · letzter Beitrag vom 5. Mär 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von mwiesbau
mwiesbau

Registriert seit: 27. Mai 2003
57 Beiträge
 
Delphi 7 Enterprise
 
#1

OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:19
Hallo habe ein Programm in OpenGL geschrieben das 3D Koordinaten Punkte aus einer Datei ausliest und am Bildschirm wahlweise als Punktliste oder Linestrip usw. anzeigt.

Mein Problem ist nur dass das der Render vorgang beim Bewegen in der Punktwolke relativ lange dauert, d.h. es ist keine richtig Flüssige animation.

Die Punkte werden beim Programmstart aus dem File in eine Stringliste kopiert, somit liegen sie im speicher d.h. das Programm muss auch nicht auf die Festplatte zugreifen.


Es ist sozusagen das Grundgerüst für ein Visualisierungsprogramm.

Danke für eure Bemühungen

PS.: Weiss jemand wie ich *.TIF Dateien als Texturen in OpenGL verwenden kann.
Angehängte Dateien
Dateityp: rar opengl_352.rar (17,3 KB, 35x aufgerufen)
qui s'excuse, saccuse
(Wer sich entschuldigt, klagt sich an)
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:26
wenn du die datei, aus der die punkte gelesen werden, auch noch mitschicken würdest, wäre ich dir sehr dankbar
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Fubar

Registriert seit: 8. Sep 2004
Ort: bei Stuttgart
30 Beiträge
 
Delphi 7 Professional
 
#3

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:31
Zitat von mwiesbau:
PS.: Weiss jemand wie ich *.TIF Dateien als Texturen in OpenGL verwenden kann.
Mit DevIL kannst du ziemlich einfach Bild-Dateien laden und als Textur in OGL benutzen:
http://openil.sourceforge.net/
  Mit Zitat antworten Zitat
Benutzerbild von mwiesbau
mwiesbau

Registriert seit: 27. Mai 2003
57 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:34
Ok sorry

Um die Datei erfolgreich mit OpenGL zu laden musst du bitte in den Ländereinstellungen das Dezimal Trennzeichen von "," auf "."
umstellen.

Danke für deine Hilfe


edit: Habe das falsche file hochgeladen ist nun korrigiert.
Angehängte Dateien
Dateityp: rar export_653.rar (461,6 KB, 26x aufgerufen)
qui s'excuse, saccuse
(Wer sich entschuldigt, klagt sich an)
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:38
Zitat:
Die Punkte werden beim Programmstart aus dem File in eine Stringliste kopiert, somit liegen sie im speicher d.h. das Programm muss auch nicht auf die Festplatte zugreifen.
Sorry, aber das ist grauenhaft. Denn um ein Punkt aus einem String zu bekommen, brauchst du die String-Handling Funktionen, die für ein schnelleres Rendervorgang gar nicht geeignet sind. Die Punkte müssen sich in einem "native" Format befinden, z.B. als ein Array of T3dPunkt :
Delphi-Quellcode:
type T3dPunkt = array[0..2]of Single;

var Punkte : array of T3dPunkt;
Sonst, solltest du uns etwas von dem Code schicken, um bessere Hilfe zu bekommen.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von mwiesbau
mwiesbau

Registriert seit: 27. Mai 2003
57 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:42
Ok danke erstmal, das projekt habe ist als anhang im ersten post von mir eingefügt.

Bin für jede weitere optimierung dankbar.
qui s'excuse, saccuse
(Wer sich entschuldigt, klagt sich an)
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 12:50
Zu der PointList Funktion:
Viel schneller wäre es wenn du es so machen würdest:

Delphi-Quellcode:
// in unit 2
uses ....,opengl,.....;

var From2 : TForm2;
    _Mesh_Mode : Cardinal = GL_POINTS;

implementation

uses unit1;

procedure TForm2.ComboBox1Change(Sender: TObject);
begin
 case ComboBox1.ItemIndex of
 0:_Mesh_Mode := GL_POINTS;
 1:_Mesh_Mode := GL_LINES;
 2:_Mesh_Mode := GL_LINE_STRIP;
 3:_Mesh_Mode := GL_LINE_LOOP;
 4:_Mesh_Mode := GL_TRIANGLES;
 5:_Mesh_Mode := GL_TRIANGLE_STRIP;
 6:_Mesh_Mode := GL_TRIANGLE_FAN;
 7:_Mesh_Mode := GL_QUADS;
 8:_Mesh_Mode := GL_QUAD_STRIP;
 9:_Mesh_Mode := GL_POLYGON;
 end;
end;

// in unit1
procedure tform1.pointlist;
var
i: integer;
begin
 glBegin(_Mesh_Mode);
                                    //(stringreplace(templist[1],'.',',',[rfReplaceAll]))
     for i:=0 to numofpoints do
      begin
      templist.DelimitedText:=finalpoint[i];
      glcolor3f(r,g,b);
      glloadname(Punkt); //neu
      glvertex3f(tpointlist[i,1],tpointlist[i,2],tpointlist[i,0]);
      //glvertex3f(tpointlist[i,2],tpointlist[i,3],tpointlist[i,1]);
      //glvertex3f(strtofloat(templist[2]),strtofloat(templist[3]),strtofloat(templist[1]));
      end;
  glend;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von mwiesbau
mwiesbau

Registriert seit: 27. Mai 2003
57 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 13:13
wie du warscheinlich gesehen hast wollte ich das auch schon mit einem dynamischen array lösen.

danke für deinen vorschlag sieht echt super aus, bin selbst stundenlang davor gehock und habs einfach nicht geschafft.

nochmal danke.
qui s'excuse, saccuse
(Wer sich entschuldigt, klagt sich an)
  Mit Zitat antworten Zitat
Benutzerbild von mwiesbau
mwiesbau

Registriert seit: 27. Mai 2003
57 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 14:25
ein problem habe ich allerdings noch

irgendwie gibts da ein problem mit den zuweisungen der cardinal werte GL_POINTS

Delphi-Quellcode:
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:_Mesh_Mode := GL_POINTS;
1:_Mesh_Mode := GL_LINES;
2:_Mesh_Mode := GL_LINE_STRIP;
3:_Mesh_Mode := GL_LINE_LOOP;
4:_Mesh_Mode := GL_TRIANGLES;
5:_Mesh_Mode := GL_TRIANGLE_STRIP;
6:_Mesh_Mode := GL_TRIANGLE_FAN;
7:_Mesh_Mode := GL_QUADS;
8:_Mesh_Mode := GL_QUAD_STRIP;
9:_Mesh_Mode := GL_POLYGON;
end;

hatt jemand eine ahnung warum??
qui s'excuse, saccuse
(Wer sich entschuldigt, klagt sich an)
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: OpenGL Beschleunigungs Routinen oder Codeoptimierung

  Alt 2. Mär 2005, 14:31
Welches Problemm ??
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 05:18 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