 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 25.07.2003, 11:26 Titel: 3D-Objekt halbdurchsichtig |
|
|
Hallo,
hat jemand von euch eine Idee, wie ich einen einfachen Zylinder mit einer blauen TExtur in D3D halbdurchsichtig kriege? Also so, dass die Farbe der Textur sich mit dem Hintergrund ueberschneidet?
Gut ich denke, das wird harschweinlich mit dem Alphakanal funktionieren. Aber wie muss denn mein Ausgangsobjekt aussehen, damit das funktioniert und wie wird das eingebunden, damit der erkannt wird?
Danke... |
|
Nach oben |
|
 |
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 25.07.2003, 11:38 Titel: |
|
|
ich hab schon lange nicht mehr mit DX programmiert und auch nur mit DX7 bzw. 8 aber ich denke man wird es so machen können wie in OpenGL. Schau dir mal in der MSDN was an zu Alphablending (kann auch Sourceblending oder so heißen) da solltest du was finden! _________________ Es geht auch ohne  |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 25.07.2003, 13:33 Titel: Hmm |
|
|
Hallo,
danke fuer den Link. Hat mir direkt jetzt zwar nicht weitergeholfen, aber die Links, die dranstanden waren an sich sehr interessant
Mein Problem liegt da, wo die Texturen geladen werden. Nehmen wir an, ich lade alle Texturen aller Objekte in eine Liste (oder wie Christian es macht in eine Map-Liste), stelle dann ja recht einfach per Infostruktur fest welches Format diese Texturen haben (brauch ja A8R8G8B8) und will mich dann dran machen die Texturen per Alphablending zu bearbeiten?
Dadurch dass ich aber ALLE Texturen in einem Container habe, aber meinetwegen nur EINIGE mit Alphablending versehen will, habe ich ja ein Problem? Wie kann ich die denn Unterscheiden? Wenn ich eine Funktion habe, wie jetzt, die alle Texturen durchgeht, werden ja auch alle Farben entsprechend auf allen Texturen tranpsarent gemacht (also wenn ich was angegeben habe). Oder nicht?
NACHTRAG:
Ok vergesst die Frage!! Ich war zu faul die 300MB RAM fuer MAX zu eruebrigen und festzustellen, dass sich in Maya und MAX Surfaces bereits fuer D3D als transparent definieren lassen
Damit hat sich das Problem auf RenderStates minimiert und gut is ) |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 25.07.2003, 15:01 Titel: |
|
|
@X-FILE
Versuch mal
D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, 1
Dann musst du einfach vorher die VertexColor mit D3DColor ARGB setzen.
Wobei A für den Transparenzgrad steht.
Vielleicht musst du vor dem zeichnen der Primitives noch das machen:
D3DDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_BOTHINVSRCALPHA
D3DDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_BOTHINVSRCALPHA
Eventuell können folgende Codezeilen auch zum Erfolg führen
D3DDevice.SetTextureStageState 0, D3DTSS_ALPHAOP, 10
D3DDevice.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA
D3DDevice.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR
Dann probier mal schön
P.s. Es ist VB Code aus DX8, aber ich denke er word sich kaum vom C++ Code von DX9 unterscheiden. Hoffe du kannst etwas damit anfangen.  |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 25.07.2003, 22:24 Titel: Hmmm |
|
|
Abend,
danke dir Leonardo, oder Raffael? Wer war die Kroete mit dem blauen Teil
Naja egal. KI eben
Hab bei mir das ja dank der guten X-Files schnell einbinden koennen. Hab dann noch etwas weitergesucht in den RenderStates usw. Funzt auf jeden Fall perfekt! Ach ja:
D3DBLEND_INVSRCALPHA funktioniert bei mir besser als alle anderen Optionen, nur falls jemand das hier noch als Wissensquelle nutzt
Danke ... |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|