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

11

23.10.2011, 19:58

Es sieht genauso aus nur nicht durchsichtig. Was die Texturcoordinaten angeht -> Ich lade ja das Modell genau so wie die andern auch.

Irgendwie muss es am Modell liegen. Alle anderen Modelle haben keinerlei Transparenz deswegen habe ich angenommen das es daran liegt.

habe im Quellcode jetzt das Modell mal ausgetauscht und das andere Modell wird normal angezeigt.

Nur das Grass will er mir nicht anzeigen :(

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

23.10.2011, 20:03

Es sieht genauso aus nur nicht durchsichtig. Was die Texturcoordinaten angeht -> Ich lade ja das Modell genau so wie die andern auch.

Trotzdem kann dein Modell defekt oder dein Ladecode fehlerhaft sein ;)

Irgendwie muss es am Modell liegen. Alle anderen Modelle haben keinerlei Transparenz deswegen habe ich angenommen das es daran liegt.

Aber offenbar liegts nicht daran, immerhin schauts ohne Transparenz ja gleich aus ;)
Und da der Wireframe ja offenbar richtig aussieht, würd ich mal auf die Texturkoordinaten tippen. Es kann natürlich auch an der Textur liegen. Wie lädst du die denn?

13

23.10.2011, 20:20

Also ich lade die Texturen und das Model genauso wie es im DX SDK ist (Quellcode fast zu 100% übernommen)

Edit: Habe jetzt auch mehrere Modelle mit Transperenz getestet überall dasselbe. Alle Modelle ohne funktionieren Problemlos

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Coldsoul« (23.10.2011, 20:58)


14

24.10.2011, 12:30

Ich habe nochmal ein Screenshot von einem Simpleren 3d Modell gemacht (das Model besteht nur aus einer einzigen Fläche mit einer Textur darauf).

Alpha Blending ist deaktiviert. Alles andere ist wie gehabt:

Bild

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

24.10.2011, 12:34

Naja, das sieht ja eigentlich richtig aus, oder?

16

24.10.2011, 12:40

Ich denke eher das ohne Alphablending die Zwischenräume weiß sein sollten und nicht Verwaschen Grün. Mit Alphablending dasselbe resultat nur Halb durchsichtig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

24.10.2011, 12:51

Wie schaut denn deine Textur aus?

18

24.10.2011, 12:55

Folgendermaßen sieht die Textur aus:

Edit: Textur entfernt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Coldsoul« (25.10.2011, 19:07)


19

25.10.2011, 17:26

Also ich habe die Renderstates jetzt folgendermaßen (Funktioniert leider immernoch nicht)


C-/C++-Quelltext

1
2
3
4
5
6
7
D3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); 
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); 
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);               

D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); 
D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); 
D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);



Folgendes habe ich auch zwischendurch getestet (auch ohne erfolg):

C-/C++-Quelltext

1
2
3
D3DDevice->SetRenderState(D3DRS_ALPHAREF, 0 );
D3DDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
D3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

25.10.2011, 17:32


C-/C++-Quelltext

1
2
3
4
5
6
7
D3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); 
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); 
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);               

D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); 
D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); 
D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);

Das schaut mir jetzt eigentlich nicht so falsch aus. Wie sieht denn das Ergebnis aus? Hat deine Textur D3DFMT_A8R8G8B8?

Werbeanzeige