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

sAm

Frischling

  • »sAm« ist der Autor dieses Themas
  • Private Nachricht senden

1

06.07.2008, 17:41

Falsche Darstellung trotz Z-Buffer

Hi!
Ich habe die Kugel aus der x-File vom Buch geladen. Diese rotiert und sobald der eine "Pol" der Kugel auf der Rückseite ist, scheint dieser "Pol" durch das Modell durch, was ja eigentlich nicht der Fall sein dürfte. Z-Buffer ist aktiviert (bzw es ist nichts daran geändert, da er ja glaube ich standardmäßig aktiviert ist)

Hier noch ein Bild:


(Link)


Auch wenn der eingekreiste Bereich so aussieht als würde er zur Textur gehören....in Bewegung ist der Fehler gut zu erkennen

Danke
Minh

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

06.07.2008, 18:01

Re: Falsche Darstellung trotz Z-Buffer

Zitat von »"sAm"«

Z-Buffer ist aktiviert (bzw es ist nichts daran geändert, da er ja glaube ich standardmäßig aktiviert ist)


was meinst du mit "standardmäßig" !?

Anonymous

unregistriert

3

06.07.2008, 18:08

Merke: glauben != wissen

Daher erst prüfen.

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

4

06.07.2008, 19:59

Zitat von »"Dot"«

was meinst du mit "standardmäßig" !?


Er meint wohl, dass ZBuffering in DX9 (?) normalerweise an ist nach dem erstellen des Devices.
Und er hat auch recht damit:

Zitat von »"DX9-Doku"«

The default value for this render state is D3DZB_TRUE if a depth stencil was created along....


Was natürlich das eigentliche Problem nicht löst ^^
Ich denke es liegt vllt am Mesh selbst.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

06.07.2008, 20:07

Zitat von »"Wümpftlbrümpftl"«

Er meint wohl, dass ZBuffering in DX9 (?) normalerweise an ist nach dem erstellen des Devices.
Und er hat auch recht damit:

Zitat von »"DX9-Doku"«

The default value for this render state is D3DZB_TRUE if a depth stencil was created along....


Er könnte aber auch meinen dass es genügt die entsprechenden member der D3DPRESENT_PARAMETERS auf 0 zu setzen. Dem ist wiederum nicht so...

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

6

06.07.2008, 20:16

Oke überzeugt ^^ .. sry hab nicht soweit gedacht

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

06.07.2008, 20:28

nene, so war das net gemeint ;)

noch wissen wir ja noch nicht was wirklich los is...

sAm

Frischling

  • »sAm« ist der Autor dieses Themas
  • Private Nachricht senden

8

06.07.2008, 23:13

Ich meine damit, dass ich an den Render States im nachhinein nichts geändert habe. So wie Wümpftlbrümpftl das verstanden hat ist das schon richtig. Und ja, es geht um DX9, sry für die Unklarheiten =)

Am Mesh selber liegts nicht, ich habe sowas weder in dem Beispiel aus dem Buch gesehen, noch im DirectX Viewer.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

06.07.2008, 23:16

hm, dann zeig mal wie du d3d initialisierst...

sAm

Frischling

  • »sAm« ist der Autor dieses Themas
  • Private Nachricht senden

10

06.07.2008, 23:18

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
D3DPRESENT_PARAMETERS params;
ZeroMemory(&params, sizeof(D3DPRESENT_PARAMETERS));
    params.BackBufferWidth = displayMode.Width;
    params.BackBufferHeight = displayMode.Height;
    params.BackBufferFormat = displayMode.Format;
    params.BackBufferCount = 1;
    params.MultiSampleType = D3DMULTISAMPLE_4_SAMPLES;
    params.SwapEffect = D3DSWAPEFFECT_DISCARD;
    params.hDeviceWindow = hWnd;
    params.Windowed = TRUE;
    params.EnableAutoDepthStencil = TRUE;
    params.AutoDepthStencilFormat = D3DFMT_D16;

    if(FAILED(pD3D->CreateDevice(
        0,
        D3DDEVTYPE_HAL,
        hWnd,
        D3DCREATE_HARDWARE_VERTEXPROCESSING,
        &params,
        &pD3DDevice)))
    {
        Error("Direct3DDevice konnte nicht erzeugt werden!");
        return FALSE;
    }

Werbeanzeige