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

Aktuelle Zeit: Mi Jul 09, 2025 04:49

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



Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Tutorial 4 Texturen
BeitragVerfasst: Do Aug 03, 2006 09:06 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Hmm ^^ Ich weiss ich bin neu und ein Hoffnungsloser fall weil anscheinend alle anderen den Anfang von Lektion 4 gepackt haben .. ich leider nicht und was nicht warum :(

Code:
  1.  
  2. var
  3.   DC, RC: HDC;
  4.   TexID: GLuint;
  5.  
  6.  
  7.  
  8. procedure TForm1.FormCreate(Sender: TObject);
  9. begin
  10.   DC := GetDC(Handle);
  11.   if not InitOpenGL then Application.Terminate;
  12.   RC := CreateRenderingContext(DC, //Device Contest
  13.     [opDoubleBuffered], //Optionen
  14.     32, //ColorBits
  15.     24, //ZBits
  16.     0, //StencilBits
  17.     0, //AccumBits
  18.     0, //AuxBuffers
  19.     0); //Layer
  20.   ActivateRenderingContext(DC, RC);
  21.   glEnable(GL_TEXTURE_2D);
  22.  
  23.   Application.OnIdle := IdleHandler;
  24. end;
  25.  
  26. procedure TForm1.FormResize(Sender: TObject);
  27. begin
  28.   glViewport(0, 0, ClientWidth, ClientHeight);
  29.   glMatrixMode(GL_PROJECTION);
  30.   glLoadIdentity;
  31.   gluPerspective(60, ClientWidth / ClientHeight, 0.1, 100);
  32.   glMatrixMode(GL_MODELVIEW);
  33. end;
  34.  
  35. procedure TForm1.FormDestroy(Sender: TObject);
  36. begin
  37.   ReleaseDC(Handle, DC);
  38.   DestroyRenderingContext(RC);
  39. end;
  40.  
  41. procedure TForm1.Render;
  42. begin
  43.   glLoadIdentity();
  44.   glTranslatef(0, 0, -2);
  45.  
  46.   glBegin(GL_QUADS);
  47.   glTexCoord2f(0, 0); glVertex3f(-0.5, -0.5, 0);
  48.   glTexCoord2f(0, 1); glVertex3f(0.5, -0.5, 0);
  49.   glTexCoord2f(1, 1); glVertex3f(0.5, 0.5, 0);
  50.   glTexCoord2f(1, 0); glVertex3f(-0.5, 0.5, 0);
  51.   glEnd;
  52.  
  53.   SwapBuffers(DC);
  54. end;
  55.  
  56.  
  57. procedure TForm1.IdleHandler(Sender: TObject; var Done: Boolean);
  58. begin
  59.   Render;
  60.   sleep(5);
  61.   Done := false;
  62. end;
  63.  
  64. procedure TForm1.FormShow(Sender: TObject);
  65. var
  66.   tex : PSDL_Surface;
  67. begin
  68.   tex := IMG_Load('./Brickm.jpg');
  69.   if assigned(tex) then
  70.   begin
  71.     glGenTextures(1, @TexID);
  72.     glBindTexture(GL_TEXTURE_2D, TexID);
  73.  
  74.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  75.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  76.  
  77.     glTexImage2D(GL_TEXTURE_2D, 0, 3, tex^.w, tex^.h,0, GL_RGB, GL_UNSIGNED_BYTE, tex^.pixels);
  78.  
  79.     SDL_FreeSurface(tex);
  80.   end;
  81. end;
  82.  


Das ist mein Quellcode wäre nett wenn mich auf meine dummheit hinweisen könnte :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 09:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Was genau ist denn das Problem?
Siehst du nichts, oder ist das Quad weiss?

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 09:24 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Das Quad ist weiss


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 09:45 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Hmm nun gut ich habs hinbekommen .. es war zuviel das die Texture 768x512 pixel hatte ... mit 512x512 pixeln funktionierte es sofort .. naja ok sowas passiert wohl am anfang ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 10:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So etwas kann dir auch später noch passieren. ;-)

Die Texturgröße sollte eine Potenz von 2 sein. also 1, 2, 4, 8, 16, 32, 64, 128 usw. Und 768 ist keine Potenz von 2. Ältere Systeme haben mit solchen Texturen Probleme und können diese nicht darstellen. Somit ist die Fläche dann weiß.

Neuere Grafikkarten können auch andere Texturen aber die unterstützung davon ist ... na ja sagen wir ... merkwürdig. Also lieber größen mit einer Potenz von 2.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 11:57 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Ah vielen dank für den Tip merk ich mir gleich mal !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 14:14 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
hmm und nun bin ich auf die nächste Problematik gestoßen ! :) In der Lektion 4 am ende ist ja das nette Beispiel mit quasi einer "Map" sagen wir mal. Nun gut nachdem ich erhaus gefunden habe wie ich die veriable "map" halbwegs zu händeln habe kommt bei mir ein sehr bescheidenes ergebnis raus. Ich denke es wird mit meinem "Map" zusammenhängen was ich folgendermaße generiere.
Code:
  1.  
  2.   Setlength(Map,XCount+1);
  3.   for X := 0 to XCount do begin
  4.    SetLength(Map[X],YCount+1);
  5.    For Y:=0 TO YCount do
  6.    Map[X,Y]:=random;
  7.   end;
  8.  

dabei kommt dann ein unglaubliches konstrukt mit quads raus ^^

P.S Wäre übrigens nett wenn generell in dem Tutorial auf die Variable "Map" eingegangen wird weil davon war nicht wirklich die rede :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 14:26 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hab diese Info mal im Tutorial ergänzt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 14:33 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Hmm tut mir leid aber ich finde es nicht .. hab auch cache geleert alles o_O


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 14:39 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Direkt über der "Rückkehr der Matrizen"

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 14:41 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
ach so davon redest ^^ ich rede gerade von einer anderen Problematik.
Und zwar weiss ich nicht wie ich weiter unten bei "Landschaft" die variable "Map" generiere das ne landschaft rauskommt kann mir wer helfen? Ist irgendwie nicht einfach zu lösen weil die entsprechenden eckpunkte ja alle stimmen müssen und dann noch dynamsich :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 15:45 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Im DGLSDK findest du ein Heightmapbeispiel, kannst es dir ja dort anschauen.
Pfad: DGLSDK\samples\easySDL\heightmap

Und für solche Landschaften gibt es auch ne Extra-Tutorialserie:
Tutorial_Terrain1
Tutorial_Terrain2
Tutorial_Terrain3
;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 16:00 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
ich möchte doch die tutorials durcharbeiten :( Und ich muss ja erstmal in der Lage sein das einfache aus Lektion 4 anzuwenden was ich nicht hinkriege .. und ich muss ja erstmal ne Grundlage haben ... ich mag doch nur wissen wie das doppel Array "map" aussieht damit so nen ergebnis rauskommt :( Ich möcht es doch nur verstehen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 16:12 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
In Map stehen doch nur die Koordinaten für das Gitter.
Deine Variante über das Random ist im Prinzip schon richtig.

Im Tutorial geht es aber nicht darum, wie man so eine Landschaft erzeugt, sondern wie man die Texturkoordinaten richtig erzeugt.
Und das sollte ja klar sein oder?

Das "wie man die Landschaft erzeugt" wird ja in den anderen Tutorials gezeigt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 03, 2006 16:17 
Offline
DGL Member

Registriert: Mi Aug 02, 2006 16:58
Beiträge: 22
Wohnort: Clausthal-Zellerfeld
Hmm ja ist schon recht .. wäre nur nett gewesen der vollständighalber das einfach mit zu integrieren damit man das auch nachbauen kann und es sich nicht nur in seinem traum vorstellen muss :) Naja sonst sind die tutorials echt gut! *Lob* Wäre nur nett wenn jemand aus Lektion1 bei
RC := CreateRenderingContext(DC <--- nen Komma setzen würde :). Naja ich mache jetzt seit 2 1/2 Wochen Delphi und seit 2 tagen mit opengl ist ganz schön hardcore find ich so :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.013s | 19 Queries | GZIP : On ]