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

12.05.2004, 14:38

ColorKey Farbe soll nicht 0x000000 sein

Ich hab jetzt mal ein kleiens 3D Programm gemacht das einen Wald mit Gras am Boden simuliert. Für das Gras hab ich eine kleine Textur in Paint erstellt, die ein einzelnes grasbüschel ziegt. Der hintergrund ist 0xffffffff also weiß. Jetzt lade ich diese textur und gebe als ColorKey weiß an.
Dann zeichne ich das ganze mit aktivierten Alphablending. Alphatesting hab ich auch an, damit Pixel mit Transparenz unter 100 nicht gezeichnet werden.
Weil die textur aber jetz an allen Stellen, wo sie vorher weiß war, transparent schwarz ist, und der Filter aktiviert ist, haben alle Grashalme einen schwarzen Rahmen, der aber transparent ist.
Aus der nähe, fällt das gar nicht so auf, aber ich habe ein ganzes Feld von Grashalmen, und durch eben diese Effekt, wird es weiter hinten ziemlich dunkel.
Das bedeutet also, das meine Szene im vordergrund heller als im Hintergrund wirkt.
Ein Beispielbild kann man sich hier anschauen:
http://www.8ung.at/c3-soft/Wald.PNG

Kann ich vieleicht einstellen, das er die Pixel des Colrokey in transparentes Grün umwandelt? Oder wie kann ich sonst am einfachsten diese Effekt umgehen? Oder mit welchen Programm soll ich sons am besten die texturen machen?Oder kann ich mit dem Direct X texture Tool einen Alphakanal in mein Bild einfügen und es dann als DDS speichern?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

12.05.2004, 16:14

Ich weiß garnicht was du hast ??? In natura wird es auch "dunkeler"/unschärfer je weiter es entfernt ist.

3

12.05.2004, 17:11

Aber wenns mir nicht gefällt? Es muss doch eine Lösung dafür geben.
Außerdem, in diesem Fall mag es ja auch so gehen, aber wenn ich z. B. ein Sprite von ner Explosion oder so hab würden da die schwarzen Ränder sicherlich nicht mehr gut aussehen.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

12.05.2004, 18:01

Hmm vielleicht kann man das Prob umgehen/entschärfen, indem man die Standardfarbe nimmt(pink).

5

12.05.2004, 20:22

Zitat von »"Nox"«

Ich weiß garnicht was du hast ??? In natura wird es auch "dunkeler"/unschärfer je weiter es entfernt ist.
Genau genommen wird es nur blauer ;D

Hast du deine Texturen mal geprüft? Sowas weist immer darauf hin das man einen leichten Farbüberlauf von den Farben des Objektes zu deiner ColorKey Farbe hat.

Prüfe es und bearbeite es am besten Manuell, so das man harte Kanten hat. Schalte vor allem das Glätten aus.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

6

12.05.2004, 20:22

Ne, also das glaub geht nun absolut nicht.
Wenn ich pink als Colorkeyfarbe verwende, heißt das doch das ich in meiner Textur in Paint alles Pink male, was hinterher transparent sein soll. Dann würde ich beim Laden der Textur Pink als Colorkey einstellen. Und DirectX würde dann aus allen Pinken Pixel transparentschwarze machen. Also kein Unterschied ob ich weiß als Colorkey nehme oder Pink. Beim laden wird in jedem Fall transparentes Schwarz draus.
Was ich bräuchte wäre dann also ein einfaches Grafikprogeamm, mit dem man den Alphawert jedes Pixels bestimmen kann. Die Texturen wollt ich als png speichern, also müsste ich auch den Alphawert festlegen können. In Paint geht das aber NICHT. Ich weiß, das auf der Buch CD Sharewareprogramme sind die das bestimmt irgendwie können, aber es wär doch viel einfacher, wenn ich ein einfaches Programm hätte, das sozusagen die Alphaeben der Textur bearbeiten kann. Die könnte ja z. B. so ähnlich aussehen wie eine Highmap. Gibt es da ein simples Freewareprogramm für?

7

12.05.2004, 20:24

OK, die textur ist in Paint gemalt und 64x64 Pixel groß. Sie verwendet genau 3 Farben, weiß als Hintergrund und hellgrün/dunkelgrün fürs gras. Übergänge ist also nicht. Diese entstehen denke ich mal beim laden und vergrößern der Textur.

8

12.05.2004, 20:27

So ein Programm gibt es bestimmt.

Aber hast du mal Gimp benutzt oder hier wurde noch ein anderes Prog vorgestellt. Weis jetzt aber nicht mehr wie das hieß. Schau einfach mal in die Fungrube.

PaintShop und Adobe Photoshop können dies auf jeden Fall irgendwie. Der Alphakanal ist jedenfalls Definiert.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

9

12.05.2004, 20:31

Ich hab gerad nochmal Alphatesting deaktiviert und weiß jetzt ziemlich gnweua was ich machen muss.
Ich sollte als Hintergrundfarbe der textur transparentes Grün nehmen. Denn wenn DX die textur dann streckt, ist die Übergangszone zwar auch da, aber sie ist grün und nicht schwarz. Somit kommt es dann nicht mehr zu Farbverfälschungen.
Oder ich deaktivierte die Texturfilterung, dann düfrte es ja eigentlich auch keine Übergänge geben. (aber ich werd sie garantiret nicht deaktvieren!). Abe mit welchen Freewareprogramm kann man schnell und schmerzlos den Alphakanal einer png Datei editiren?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

12.05.2004, 20:49

Warum errechnest du dir nicht erst den Alpha wert, speicherst ihn in der textur und streckst es erst dann?

Werbeanzeige