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

1

22.10.2003, 15:13

Durchsichtige Dreiecke !?!

So das problem mit den Terrain nicht zeichnen hat sich erübrigt
(Mit den Normalvektoren und TexturUV hat was nicht gestimmt)

damit steht natürlich ein neues Problem an:
Ich hab das Terrain gezeichnet und zum Testen eine Höhe folgendermaßen berechnen

fHeight = sinf(vPosition.x) + cosf(vPosition.z)

vPosition sind die Positionen der Vertizes.

Wenn ich das ganze dann zeichne schaut das schon recht gut aus.
wenn ich von einer seite in die landschaft schaue sind die dreiecke durchsichtig auf der anderen nicht.
aber seht selbst

http://daclan.strikenet.at/Aurenvar/Screen2.jpg

Z-Buffer ist eingeschaltet!

was hab ich da falsch gemacht?
bzw hab ich was vergessen zum ein- bzw ausschalten......

mfg
da_oAsch

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

22.10.2003, 15:27

Vielleicht das Culling?
Setze mal D3DRS_CULLMODE auf D3DCULL_NONE. Nur zum Test.

3

22.10.2003, 15:35

Bestehen deine Vierecke aus zwei Dreiecken? Wenn ja ist sicherlich das eine Dreieck nicht richtig herrum erstellt.

Auf dem Screenshot kann man nicht wircklich viel sehen, was das Problem angeht. Aber das Terrain schaut schon recht gut aus. Noch ein Tipp. Du solltest dein Terrain noch eine Max. Höhe setzten. Dann kann man die höhe der Größe des Terrains anpassen und es ist nicht so Bergig.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

4

22.10.2003, 17:49

ich glaub ich hab das dreieck schon richtig herum gezeichnet:

// Indizes setzen
for(WORD x1 = 0; x1 < m_iResolution - 1; x1++)
{
for(WORD y1 = 0; y1 < m_iResolution - 1; y1++)
{
// Erstes Dreieck erzeugen, bei dem der Vertex (x, y) links oben ist
// (x,y) _______ (x+1,y)
// 1 | /| 2
// | / |
// | / |
// | / |
// | / |
// |/_____|
// (x,y+1) (x+1,y+1)
// 3

// Erstes Dreieck
wIndex = GetVertexIndex(x1, y1);
m_pIB->AddIndex(&wIndex);
wIndex = GetVertexIndex(x1 + 1, y1);
m_pIB->AddIndex(&wIndex);
wIndex = GetVertexIndex(x1, y1 + 1);
m_pIB->AddIndex(&wIndex);

// Zweites Dreieck
wIndex = GetVertexIndex(x1, y1 + 1);
m_pIB->AddIndex(&wIndex);
wIndex = GetVertexIndex(x1 + 1, y1);
m_pIB->AddIndex(&wIndex);
wIndex = GetVertexIndex(x1 + 1, y1 + 1);
m_pIB->AddIndex(&wIndex);
}
}

Wenn ich die Map in die andere richtung durchfliege dann schaut ja alles normal aus. Dreh ich mich aber um, sind die Berge nicht richtig gezeichnet. (culling auf none, Zenable auf true)

Mir kommts so vor als ob das mit der zeichenreihenfolge der dreiecke zu tun hat; die dreiecke weiter entfernt werden über die nahen gezeichnet.

Ich zeichne das terrain in folgender reihenfolge:

1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16

u.s.w.
wenn ich also (hier) von oben drauf schaue werden zuerst 1-8 und dann 9-16 darüber gezeichnet.
schaue ich umgekehrt darauf wird eh alles richtig gezeichnet....

???

da_oAsch

Werbeanzeige