Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 22:53

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [gelöst] VBO will nicht
BeitragVerfasst: Do Jun 04, 2015 22:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Hallo,

ich habe mal wieder eine Frage. Ich habe ein Programm umgebogen damit es mir Blender Szenen im VertexFormat GL_T2F_N3F_V3F wandelt. Diese Daten wollte ich per VBO (ohne VAO) dann rendern lassen. Nur leider will es nicht so. Ich habe es nach dem VBO Tutorial aus dem DGL Wiki mit einem Würfel versucht. Da waren nur wilde Flächen zu sehen. Im Internet fand ich noch eine Anleitung mit der ich ein Rechteck zu sehen bekam. Ich habe dann per glBegin(GL_Triangles) versucht ob die Daten auch stimmen und habe einen schönen Würfel gesehen.
Hier mal der Code.
//1 ist der WiKi Teil
// 2 die andere VBO Zeichenart
und aktiv oGL 1.x Zeichnen. Was mache ich falsch?

Code:
  1. procedure glDraw();
  2. begin
  3.   glLoadIdentity;
  4.   xAngle :=xAngle + xSpeed;
  5.   yAngle :=yAngle + ySpeed;
  6.   glTranslatef(0,0,-5);
  7.   glRotatef(xangle,1.0,0.0,0.0);
  8.   glRotatef(yangle,0.0,1.0,0.0);
  9.   glClearColor(0.0, 0.0, 0.0, 0.0);        
  10.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);    
  11.  
  12. //1   glBindBuffer(GL_ARRAY_BUFFER, VBO);
  13. //1   glColor3f(1, 0.4, 0.4);
  14. //1   glInterleavedArrays(GL_V3F, SizeOf(VERTICES), nil);
  15. //1   glDrawArrays(GL_TRIANGLES, 0, ln);
  16. //1   glBindBuffer(GL_ARRAY_BUFFER, 0);
  17.  
  18.  
  19. //2   glColor4f(1, 0, 1, 1);
  20. //2   glBindBuffer(GL_ARRAY_BUFFER, VBO);
  21. //2   glVertexPointer(2, GL_FLOAT, 0, 0);
  22. //2   glDrawArrays(GL_TRIANGLES, 0, ln);
  23. //2   glBindBuffer(GL_ARRAY_BUFFER, 0);
  24.  
  25.  
  26.   for j:= 0 to (ln div 9-1) do
  27.   begin
  28.     i:=j*9;
  29.     glcolor3f(((j+1)*0.08),0.5,0.5);
  30.     glBegin(GL_Triangles);
  31.       glVertex3f(VERTICES[i]  , VERTICES[i+1], VERTICES[i+2]);
  32.       glVertex3f(VERTICES[i+3], VERTICES[i+4], VERTICES[i+5]);
  33.       glVertex3f(VERTICES[i+6], VERTICES[i+7], VERTICES[i+8]);
  34.     glEnd;
  35.   end;
  36. end;
  37.  
  38.  
  39.  
  40.  
  41. {------------------------------------------------------------------}
  42. {  Initialise OpenGL                                               }
  43. {------------------------------------------------------------------}
  44. procedure glInit();
  45. var
  46.   x, y, i : integer;
  47.   P :TVertex;
  48.   F:file of TVertex;
  49.  
  50. begin
  51.   AssignFile(F,'Cube.dat') ;  
  52.   Reset(F) ;
  53.   i:=0;
  54.   try
  55.    while not Eof(F) do begin
  56.     Read (F, p) ;
  57.     SetLength(VERTICES,(i*3)+3);
  58.     VERTICES[i*3]:=p.x;
  59.     VERTICES[i*3+1]:=p.y;
  60.     VERTICES[i*3+2]:=p.z;
  61.     i:=i+1;
  62.    end;
  63.   finally
  64.    CloseFile(F) ;
  65.   end;
  66.   ln:=High(VERTICES)+1;
  67.  
  68.   glEnable(GL_VERTEX_ARRAY);
  69.   glGenBuffers(1, @VBO);
  70.   glBindBuffer(GL_ARRAY_BUFFER, VBO);
  71.   glEnableClientState(GL_VERTEX_ARRAY);
  72.   glBufferData(GL_ARRAY_BUFFER, sizeof(VERTICES), @VERTICES[0], GL_STATIC_DRAW);
  73.  
  74.   glShadeModel(GL_SMOOTH);
  75.   glClearDepth(1.0);
  76.   glEnable(GL_DEPTH_TEST);
  77.   glDepthFunc(GL_LESS);
  78.   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  79.   glMatrixMode(GL_PROJECTION);
  80.   glLoadIdentity();
  81.   gluPerspective(45.0, 1.5, 1.0, 100.0);anpassen.
  82.   glMatrixMode(GL_MODELVIEW);
  83.   glLoadIdentity();
  84.  
  85.   xSpeed:=0.02;ySpeed:=0.01;
  86. end;
  87.  
  88.  

Und noch eine Frage hinterher. Gibt es ein Template für oGL 2.0/1?
Ich finde nur viele für 1.5 und wenige für 3.3 oder höher.


Zuletzt geändert von Twist am Sa Jun 27, 2015 12:04, insgesamt 5-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Fr Jun 05, 2015 08:42 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Du gibst im Teil 1 ein Vertex Format von V3F an, aber in Teil zwei rufst du glVertexPointer mit einer 2 als erstem Argument auf. Probier mal eine 3, das erste Argument gibt die Anzahl der Komponenten an.

viele Grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Fr Jun 05, 2015 11:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Zitat:
Probier mal eine 3, das erste Argument gibt die Anzahl der Komponenten an.

Das hat mich auch gewundert aber mit einer 3 war nur Chaos zu sehen( sehr spitze Dreiecke mit Eckpunkten ins Unendliche).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Fr Jun 05, 2015 15:50 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Gibt mal deine Definition von TVertex und VERTICES.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Fr Jun 05, 2015 16:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Code:
  1. glBufferData(GL_ARRAY_BUFFER, sizeof(VERTICES), @VERTICES[0], GL_STATIC_DRAW);

Dort ist sicher ein Fehler.

Wen ich deinen Code angucke,
Code:
  1. SetLength(VERTICES,(i*3)+3);

ist VERTICES ein dynamisches Array, somit kommt bei sizeof(VERTICES) immer ein 4 raus.

Probiere mal:
Code:
  1. glBufferData(GL_ARRAY_BUFFER, sizeof(VERTICES[0]) * Length(VERTICES), @VERTICES[0], GL_STATIC_DRAW);

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Sa Jun 06, 2015 16:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Hallo ,

bei glBufferData() muss der stride natürlich nicht sizeof(VERTICES) sein sondern 3*sizeof(VERTICES).

Läuft jetzt danke für den Denkanstoss.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Do Jun 25, 2015 22:21 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Ich schon wieder.
Nachdem der VBO und der Shader funktionierten wollte ich ein zweites Stück Geometrie einlesen und per zweiten VBO rendern.
Auf Intel GPU's kein Problem aber bei AMD kommt etwas Wirrwarr raus. Lese ich das Zweite Objekt als erstes ein und das Erste als zweites sieht alles schön aus.
Das ist der Code zum einlesen. Sieht jemand meinen Fehler?

Code:
  1. var   //manche Variablen sind im Original global
  2.   i,n : integer;
  3.   P :TVertex;
  4.   F:file of TVertex;   //  TVertex = record     U,V,NX,NY,NZ,X,Y,Z : TGLFloat
  5.   VERTICES: array of GLFloat;
  6.   KreuzOBJ, WallOBJ :array [0..1] of integer;
  7.  
  8. begin
  9.   AssignFile(F,'skullwall.dat');     // beim Zweiten steht hier eine andere Datei
  10.   Reset(F) ;
  11.   i:=0;
  12.   try
  13.    while not Eof(F) do begin
  14.     Read (F, p) ;
  15.     SetLength(VERTICES,(i*8)+8);
  16.     VERTICES[i*8+0]:=p.U;
  17.     VERTICES[i*8+1]:=p.v;
  18.     VERTICES[i*8+2]:=p.nx;
  19.     VERTICES[i*8+3]:=p.ny;
  20.     VERTICES[i*8+4]:=p.nz;
  21.     VERTICES[i*8+5]:=p.x;
  22.     VERTICES[i*8+6]:=p.y;
  23.     VERTICES[i*8+7]:=p.z;
  24.     i:=i+1;
  25.    end;
  26.   finally
  27.    CloseFile(F) ;
  28.   end;
  29.  
  30.   WallOBJ[1]:=Length(VERTICES);
  31.   n:= sizeof(VERTICES[0]);
  32.  
  33.   glGenBuffersARB(1, @WallOBJ[0]);     // beim Zweiten nutze ich KreuzOBJ
  34.   glBindBufferARB(GL_ARRAY_BUFFER, wallOBJ[0]);
  35.   glEnableClientState(GL_VERTEX_ARRAY);
  36.   glBufferDataARB(GL_ARRAY_BUFFER, n * wallOBJ[1] , @VERTICES[0], GL_STATIC_DRAW);
  37.  

Hier noch mal die Bilder wie es aussehen soll und wie nicht. Man sieht den Totenkopf von der Wand schön als zerplatzten Klumpen von der Decke hängen. Wand und Totenkopf sind Objekt2 und ein viertel des Kreuzgangs ist Objekt1. Der Boden ist ein Quad klassisch (gl_begin ... gl_end) gezeichnet, ist ja nur zum Testen.
Bild


Zuletzt geändert von Twist am Sa Jun 27, 2015 10:34, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Fr Jun 26, 2015 17:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Code:
  1.   glGenBuffersARB(1, @WallOBJ[0]);     // beim Zweiten nutze ich KreuzOBJ
  2.   glBindBufferARB(GL_ARRAY_BUFFER, wallOBJ[0]);
  3.   glEnableClientState(GL_VERTEX_ARRAY);
  4.   glBufferDataARB(GL_ARRAY_BUFFER, n * wallOBJ[1] , @VERTICES[0], GL_STATIC_DRAW);

Das ARB sollte eigentlich nicht mehr nötig sein.
glEnableClientStat ist mir unbekannt, versuche es mal wegzulassen.


Code-Auschnitt von meinem Programm:
Code:
  1.  
  2. // Init-Scene
  3.  
  4.   glGenBuffers(1, @VBTriangle.VBOPos);
  5.   glGenBuffers(1, @VBTriangle.VBOColor);
  6.  
  7.   glBindBuffer(GL_ARRAY_BUFFER, VBTriangle.VBOPos);
  8.   glBufferData(GL_ARRAY_BUFFER, sizeof(TrianglePos), @TrianglePos, GL_STATIC_DRAW);
  9.  
  10.   glBindBuffer(GL_ARRAY_BUFFER, VBTriangle.VBOColor);
  11.   glBufferData(GL_ARRAY_BUFFER, sizeof(TriangleColor), @TriangleColor, GL_STATIC_DRAW);  
  12.  
  13. // Render Scene
  14.  
  15.   glEnableVertexAttribArray(Vertex_id);
  16.   glBindBuffer(GL_ARRAY_BUFFER, VBTriangle.VBOPos);
  17.   glVertexAttribPointer(Vertex_id, 3, GL_FLOAT, False, 12, nil);
  18.  
  19.   glEnableVertexAttribArray(Color_id);
  20.   glBindBuffer(GL_ARRAY_BUFFER, VBQuad.VBOColor);
  21.   glVertexAttribPointer(Color_id, 3, GL_FLOAT, False, 12, nil);  
  22.  
  23.   glDrawArrays(GL_TRIANGLES, 0, Length(TrianglePos) * 3);  



Zitat:
Hier noch mal die Bilder wie es aussehen soll und wie nicht.

Deine Scene sieht schon recht komplex aus. :shock: :wink:

Code:
  1.   AssignFile(F,'skullwall.dat');     // beim Zweiten steht hier eine andere Datei
  2.   Reset(F) ;
  3.   i:=0;
  4.   try
  5.    while not Eof(F) do begin
  6.     Read (F, p)

Ich würde mir überlegen mit TStream zu arbeiten, ich habe festgestellt, das dies um einiges schneller geht als mit Read();.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Sa Jun 27, 2015 07:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Zitat:
Das ARB sollte eigentlich nicht mehr nötig sein.

Das stimmt - man sollte nicht immer beim nachmachen von Tuts einfach Copy-Pasten aber die Funktion ist die selbe.
Zitat:
glEnableClientStat ist mir unbekannt, versuche es mal wegzulassen.

http://wiki.delphigl.com/index.php/glEnableClientState

Zitat:
Ich würde mir überlegen mit TStream zu arbeiten, ich habe festgestellt, das dies um einiges schneller geht als mit Read();.

Ich komme aus der Zeit als man noch die 8-bit Computer in Assembler quälte und man nutze halt die Dinge welche man kennt. Und auf 0,7 ms beim Start eines Testprogramms kommt es mir auch nicht an.
Zitat:
Deine Scene sieht schon recht komplex aus.

Es sind nur 2 Objekte ein mal ein viertel Kreuzgang 84 mal benutzt und eine Wand mit dem Totenkopf. Weil es mir zu nackt aussah habe ich schnell noch ein Boden per (gl_begin ... gl_end) gezeichnet.

Aber warum beeinflusst der eine VBO den anderen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VOB will nicht
BeitragVerfasst: Sa Jun 27, 2015 08:38 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Ich komme aus der Zeit als man noch die 8-bit Computer in Assembler quälte und man nutze halt die Dinge welche man kennt. Und auf 0,7 ms beim Start eines Testprogramms kommt es mir auch nicht an

Bei mir war der Unterschied viel grösser, 5s oder 0.5 sind welten. Die Handhabung ist auch viel einfacher.
Ich hatte früher auch asm. programmiert.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO will nicht
BeitragVerfasst: Sa Jun 27, 2015 10:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Zitat:
Bei mir war der Unterschied viel grösser, 5s oder 0.5 sind welten

Ich würde spontan sagen Du nutzt ,bei diesen Zeiten, noch Disketten oder mehrere MB große Dateien. Eine 50 KB Datei einzuladen oder nicht merkt man nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO will nicht
BeitragVerfasst: Sa Jun 27, 2015 12:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Habe meinen Fehler gefunden. Der steckte nicht beim Füllen des VBO mit Daten sondern beim Zeichnen. Ich hatte bei glDrawArrays anstatt die Anzahl der Vertices die size des VBO angegeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [gelöst] VBO will nicht
BeitragVerfasst: Sa Jun 27, 2015 20:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Ich würde spontan sagen Du nutzt ,bei diesen Zeiten, noch Disketten oder mehrere MB große Dateien. Eine 50 KB Datei einzuladen oder nicht merkt man nicht.

Nein, ich bin im Zeitalter von modernen SSD-Platten.

Dann probiere mal folgenden Code aus, und du wirst sehen, das ich sogar noch stark untertrieben habe.
Die Datei ist ca. 4MB

Code:
  1. type
  2.   TArray = array of single;
  3.  
  4. var
  5.   SingleArray: TArray;
  6.  
  7. procedure TForm1.mit_WriteClick(Sender: TObject);
  8. var
  9.   startTime: cardinal;
  10.   f: file of single;
  11.   i: integer;
  12.  
  13. begin
  14.   startTime := GetTickCount;
  15.   AssignFile(f, 'c:\test\test1.dat');
  16.   Rewrite(f);
  17.   for i := 0 to Length(SingleArray) - 1 do begin
  18.     Write(f, SingleArray[i]);
  19.   end;
  20.   CloseFile(f);
  21.  
  22.   WriteLn('Writeln: ', GetTickCount - startTime);
  23. end;
  24.  
  25. procedure TForm1.mit_TFileStreamClick(Sender: TObject);
  26. var
  27.   startTime: cardinal;
  28.   stream: TFileStream;
  29. begin
  30.   stream := TFileStream.Create('c:\test\test2.dat', fmCreate);
  31.  
  32.   startTime := GetTickCount;
  33.   stream.Write(Pointer(SingleArray)^, SizeOf(single) * Length(SingleArray));
  34.   stream.Free;
  35.  
  36.   WriteLn('FileStream: ', GetTickCount - startTime);
  37. end;
  38.  
  39. procedure TForm1.FormCreate(Sender: TObject);
  40. begin
  41.   SetLength(SingleArray, 1000000);
  42. end;  


Ergebnisse auf SSD:
Code:
  1. FileStream: 0
  2. Writeln: 1342
  3. FileStream: 0
  4. Writeln: 1342
  5. FileStream: 15
  6. Writeln: 1326
  7. FileStream: 0
  8. Writeln: 1341
  9.  


Auf NAS:
Code:
  1. FileStream: 31
  2. Writeln: 239633


Dies ist etwa gleich schnell wie TFileStream, geht aber nicht mit dynamischer Array:

Code:
  1. type
  2.   TArray = array[0..1000000 - 1] of single;
  3.  
  4. var
  5.   SingleArray: TArray;    
  6. ....
  7.   AssignFile(f, 'c:\test\test3.dat');
  8.   Rewrite(f);
  9.   Write(f, SingleArray);
  10.   CloseFile(f);  

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [gelöst] VBO will nicht
BeitragVerfasst: Sa Jun 27, 2015 21:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Du liest pro Schleifendurchlauf ein single ein. Jedesmal Kopf positionieren (wenn es sein muß) und warten bis die paar Bits am Kopf vorbeifahren. Ich habe 8 singles auf einmal eingelesen das verkürzt enorm die Warterei der mechanischen Festplatte. Auch eine SSD hat eine Latenzzeit zwischen einzelnen Zugriffen und profitiert von großen Datenmengen (Burst Modus).
Und 4 MB ist ca. 100 mal so groß wie meine kleine Datei.
Der Stream liest halt alles in einem Rutsch das ist schon schneller.

Die krassen Zeitunterschiede hätte ich aber nicht vermutet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [gelöst] VBO will nicht
BeitragVerfasst: So Jun 28, 2015 15:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Jedesmal Kopf positionieren (wenn es sein muß) und warten bis die paar Bits am Kopf vorbeifahren.

Was mich am meisten verwundert, ich dachte Windows puffert die Daten, bevor sie geschrieben werden.
Und endgültig werden sie erst bei Close() geschrieben.

Übrigens, wen ich beim Stream die Single einzeln schreibe, geht es etwa gleich lang wie bei einzeln Read(f, Single);

Code:
  1.   stream := TFileStream.Create('c:\test\test2.dat', fmCreate);
  2.   for i := 0 to Length(SingleArray) - 1 do begin
  3.     stream.Write(SingleArray[i], SizeOf(single));
  4.   end; 
  5.   stream.Free;


Was mich bei Java für Android verwundert, obwohl jedes Bytes via for-to-Schleife einzeln eingelesen wird, läuft es sehr schnell.
Gelesem mit InputStream.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.103s | 17 Queries | GZIP : On ]