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

Mind

Treue Seele

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

1

17.03.2004, 19:47

AlphaBlending

Hi,

folgendes ich hab einen Baum und will dazu jetzt Blätter rendern.
Dazu mal ich an Ästen einfach eine Texture eines Blattes.

Die Texture ist weiß mit einen Blatt darauf.
Jetzt möchte alle Blätter render bei den das weiß völlg transparenz ist und das Blatt nicht.
Wie schaffe ich das?

Ich habe jetzt einiges ausprobiert mit den renderstates.
Entweder malt er das weiß mit und übermalt alles oder es ist alles transparenz auch das Blatt.

Am besten eine Lösung ohne das ich die Texturen ändern muss da ich einige habe...

Weiß jemand wie oder bzw ob das geht?

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

2

17.03.2004, 20:27

Re: AlphaBlending

Du musst das weiß als ColorKey benutzen. (Besser wäre dazu Pink, was meistens benutzt wird, wahrscheinlich weil die Farbe sonst kaum benutzt wird 0xFFFF00FF)
Die Farbe, die du als ColorKey angibst, wird in transparentes Schwarz umgewandelt.
Dazu findest du in den FAQ sicher auch was.
Mozilla Firefox
The Browser - reloaded

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

17.03.2004, 20:40

... und dnann musst du nich Alpha Testing aktivieren

Quellcode

1
2
3
    GetD3DDevice()->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
    GetD3DDevice()->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_EQUAL);
    GetD3DDevice()->SetRenderState(D3DRS_ALPHAREF, 255);


zum Beispiel so, so werden alle Farben mit einem Gamma - Wert gleich 255 ausgeblendet. Pink (D3DCOLOR_ARGB(255, 255, 0, 255)) gehört dann mit dazu

Mind

Treue Seele

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

4

18.03.2004, 08:41

mit pink hab ichs hinbekommen auch wenn ich dann all meine Texturen ändern muss :crying:
Danke für eure Hilfe!

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

18.03.2004, 08:45

naja, wenn de Weis hast, darfste nicht D3DCOLOR_ARGB(255, 255, 0, 255) benutzen, sondern

D3DCOLOR_ARGB(255, 255, 255, 255)

Mind

Treue Seele

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

6

18.03.2004, 10:15

naja das Problem ist in der nähe vom blatt ist kein 255,255,255 weiß mehr sonder vielleicht ein 253,252,254 weiß also bischen ungünstig.
Am rand ist sogar ne Farbe 150,150,150 oder in dem dreh, die auch transparent machen will sonst sieht man nen rand.

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

7

18.03.2004, 11:13

Zitat von »"Mind"«

naja das Problem ist in der nähe vom blatt ist kein 255,255,255 weiß mehr sonder vielleicht ein 253,252,254 weiß also bischen ungünstig.
Am rand ist sogar ne Farbe 150,150,150 oder in dem dreh, die auch transparent machen will sonst sieht man nen rand.



Ich hab mich auch ne Weile mit dem Problem rumgeschlagen, da ich beim Ausschneiden meiner schönen Helikopter für so n kleines Spiel völlig vergessen hatte, das Anti-Aliasing auszuschalten!
Du brauchst ganz harte Kanten. Das weiß (oder pink) muss also immer ganz rein sein, sonst wird es nicht als ColorKey-Farbe erkannt und bleibt beim Rendern auf deiner Textur drauf. Das is natürlich hässlich.
Also bloß keine Kantenglättung!
Mozilla Firefox
The Browser - reloaded

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

18.03.2004, 15:42

Ja Klaus sagt es, wenn du eine Textur erstellst, nimm am besten den Hintergrund ganz Pink (oder Weiß). Dann zeichne deine Textr drüber, wenn doch Mischafreben entstanden sind, übermale die, das Harte Kanten entstehen

Mind

Treue Seele

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

9

18.03.2004, 18:03

ja klar würd ich ja auch machen wenn sie ich erstellen würde aber die texturen hab ich ausm netz gezogen ;D

naja egal muss halt ändern is net so schlimm danke

Mind

Treue Seele

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

10

18.03.2004, 19:46

ahhhhhhhhh

so hab mir jetzt ein Programm geschrieben das meine texturen liest und ich abfrage das falls kein grün anteil hat mach ich die farbe pink und speicher es wieder ab wenn ich die texture dann anschaue hat ers wirklich perfetkt gemacht keine ränder mehr auch wenn ich bis pixelebene zoome nix alles schön grün und der rest pink so wenn ich jetzt aber die texture render sieht man immer noch einen kleinen weißen rand WOHER KOMMT DER?

Werbeanzeige