Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CraftPlorer

Frischling

  • »CraftPlorer« ist der Autor dieses Themas

Beiträge: 39

Wohnort: Elsfleth

Beruf: Schüler

  • Private Nachricht senden

1

02.06.2012, 17:38

[C++] Würfel wird komisch gezeichnet

Hallo,
ich bin neu in diesen Forum und habe mich vor wenigen Tagen mit den Thema OpenGl/SDL angefangen zu beschäftigen. Ich möchte jetzt einen Würfel zeichnen bloß leider wird dieser komisch angezeigt das eine Fächen unsichbar sind und wieder sichbar. Der Code und Bilder in Anhang.



mfG Craftplorer
»CraftPlorer« hat folgendes Bild angehängt:
  • Unbenannt.png
»CraftPlorer« hat folgende Datei angehängt:
  • SDl.rar (136,73 kB - 35 mal heruntergeladen - zuletzt: 20.04.2024, 17:25)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

02.06.2012, 17:47

Hast du einen Depth Buffer, clearest du ihn und ist Depth Buffering aktiviert?

CraftPlorer

Frischling

  • »CraftPlorer« ist der Autor dieses Themas

Beiträge: 39

Wohnort: Elsfleth

Beruf: Schüler

  • Private Nachricht senden

3

02.06.2012, 19:26

Nein ich habe keinen und er ist auch nicht aktiviert ich cleane ihn aber da ich den Code aus mehreren Tutorials geschrieben habe. Du hättest aber auch einfach die SDl.rar downloaden können dann hast du den Quellcode. Wie bekomme ich eigentlich den Depth buffer bzw. brauch ich den. Wie ich den Cleane und Enable weiß ich bloß ich mach das erst seit kurzen. Hoffe ihr könnt mir helfen.



mfG Craftplorer

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

02.06.2012, 19:30

Nein ich habe keinen und er ist auch nicht aktiviert ich cleane ihn aber da ich den Code aus mehreren Tutorials geschrieben habe.

Cleanen und aktivieren wird nicht viel helfen wenn er nicht vorhanden ist ;)

Wie bekomme ich eigentlich den Depth buffer bzw. brauch ich den.

Das hängt davon ab. Du verwendest offenbar die SDL. Ich hab keine Erfahrung mit der SDL, aber es wird wohl einen Weg geben, der SDL zu sagen dass sie einen Depth Buffer erzeugen soll...

Das wird sicher weiterhelfen...

CraftPlorer

Frischling

  • »CraftPlorer« ist der Autor dieses Themas

Beiträge: 39

Wohnort: Elsfleth

Beruf: Schüler

  • Private Nachricht senden

5

02.06.2012, 19:37

Ich hab mal eben bei Google gesucht und jetzt bin ich mir nicht sicher ob ich ihn doch schon benutze.
Ich mach ja einmal:

C-/C++-Quelltext

1
SDL_Init(SDL_INIT_EVERYTHING);

und

C-/C++-Quelltext

1
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);


Kann ich das denn irgendwie überprüfen?
Oder liegt es denn an Depth_Buffer?


EDIT: Bin jetzt ziemlich sicher das ich ihn benutze und bin jetzt am verzweifeln.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CraftPlorer« (02.06.2012, 19:46)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

02.06.2012, 19:46

Wo genau machst du das SDL_GL_SetAttribute()? SDL_Init ist was anderes. In dem Code aus deinem .rar da oben seh ich auf den ersten Blick nichts von wegen Depth Buffer...

CraftPlorer

Frischling

  • »CraftPlorer« ist der Autor dieses Themas

Beiträge: 39

Wohnort: Elsfleth

Beruf: Schüler

  • Private Nachricht senden

7

02.06.2012, 19:59

Mach ich in der Main hab ich aber auch erst gemacht dach dem du was von Depthbuffer geschrieben hast. Bringt aber immer noch keine Änderung...
Was kann ich sonst noch machen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

02.06.2012, 20:06

Und wo in der main() machst du das? Am besten den relevanten Codeausschnitt gleich hier im Forum posten...

CraftPlorer

Frischling

  • »CraftPlorer« ist der Autor dieses Themas

Beiträge: 39

Wohnort: Elsfleth

Beruf: Schüler

  • Private Nachricht senden

9

02.06.2012, 20:09

Achso.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
    OpenGL_Init OpenGL_Start;
    const SDL_VideoInfo* info = NULL;
    int bpp = 0;  //Depth Buffer Bits


    SDL_Init(SDL_INIT_EVERYTHING);
    info = SDL_GetVideoInfo( );
    bpp = info->vfmt->BitsPerPixel;
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);

    SDL_Surface* screen;
    screen = SDL_SetVideoMode(640, 480, bpp, SDL_SWSURFACE | SDL_OPENGL);


Das ist der Teil den ich geändert habe das mit der bpp ist aber nicht wichtig da er es jetzt ausliest und vorher hab ich einfach selber 32 zugewiesen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

02.06.2012, 20:14

Ok, das schaut eigentlich so falsch nicht aus. Das SDL_SWSURFACE würd ich wohl weglassen oder durch ein SDL_HWSURFACE ersetzen.

Pack vorsichtshalber mal ein

C-/C++-Quelltext

1
glEnable(GL_DEPTH_TEST);

vor dein glClear()...

Werbeanzeige