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

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

22.02.2007, 19:42

Alphablending

hi,
ich arbeite in meinem projekt mit alphablending. jetzt ist mir aufgefallen dass objekte ohne texturen vor dem objekt mit alphablending gezeichnet werden, obwohl sie eigentlich dahinter sind. objekte mit texturen werden ganz normal gezeichnet. wenn sie davor sind werden sie zuerst gezeichnet und wenn sie dahinter sind, werden erst die objekte mit alphablending gezeichnet. man kann dann die modelle dadruch sehen.
weiß einer woran das liegt? ist das vielleicht immer so? ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

22.02.2007, 20:34

zeig mal einen screenshot von dem prolem.
ich tippe drauf, dass das es sich um das standard problem handelt und die renderreihenfolge schuld ist. alphatesting wird bis zu einem gewissen grad helfen, ansonsten wird es vermutlich notwendig sein, die objekte zu sortieren...

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

3

22.02.2007, 20:39

hier mal das bild

(Link)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

22.02.2007, 20:41

^^ wo genau ist das problem ;)

ich kanns mir nur ungefähr vorstellen.
was ist das grüne genau? wie wird es gezeichnet (D3DFVF_XYZRHW?)

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

22.02.2007, 20:48

sollteich vielleicht erklären^^

das grüne da ist ein quader(der zweck ist erst mal egal). er sollte normaler weiße komplett hinter den modellen sein. ist aber, wie zu sehen vor den modellen.

so wird das ganze gerendert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    Pass P1
    {
        CullMode            = CW;
        Zenable             = False;
        AlphaBlendEnable    = True;
        SrcBlend            = one;
        DestBlend           = invsrcColor;
        
        VertexShader = compile vs_1_1 VertexShaderWood();
        PixelShader  = NULL;
    }

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

22.02.2007, 20:52

Na überleg mal.
Du hast den Z-Buffer abgeschaltet.
Wie soll er da hinter irgendwas gezeichnet werden können??!

Bei transparenten Objekten solltest du nur das Schreiben in den Z-Buffer abschalten, nicht den Z-Test!
Also ZWriteEnable = false, ZEnable auf true lassen!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

22.02.2007, 20:52

Zitat

Zenable = False;


?

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

8

22.02.2007, 21:02

das war mein fehler.
habe aber noch einen anderen. wenn ich jetzt den ganzen kasten vor den modellen rendere, werden erst die anderen modelle gezeichnet, danach erst der grüne kasten

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

22.02.2007, 21:04

weil er nichts in den zbuffer schreibt und daher vom rest überzeichnet wird!?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

22.02.2007, 21:06

Transparente Objekte zuletzt zeichnen.
Und ein bisschen nachdenken, bevor du wieder hier reinpostest.

Werbeanzeige