Wie picke ich das?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

EPS

Betreff: Wie picke ich das?

BeitragDi, März 28, 2006 8:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, doofe Frage, aber was besseres viel mir grad nicht ein.

Folgendes Problem:

Ich habe ein einfaches Mesh (2 Tris) welches als Sprite dient. Dieser "Sprite" ist mit einer transparenten Textur belegt. Beispiel: Die Grafik auf dem Mesh, also die Textur ist zwar 128x128 Pixel aber die farbigen Pixel sind nur 100x100 Pixel, der Rest ist transparent.

Nun möchte ich gerne erfassen wann sich die Maus ÜBER DER SICHTBAREN TEXTUR befindet. Mit CameraPick() kann ich zwar erfassen das die Maus über dem Mesh ist, jedoch nicht wann sie über einer Farbe der Textur ist, oder doch - irgendwie?

Ich hoffe ich hab mich halbwegs verständlich ausgedrückt. Geht das irgendwie? Vielen Dank schonmal.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

antome

!!! gesperrt !!!

BeitragDi, März 28, 2006 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest mal probieren mit ReadPixel(Fast) den Texturbuffer des Meshes auszulesen und je nachdem welche Farbe gepickt wird oder auch nicht
wird die Bedingung erfüllt.
antome

EPS

BeitragDi, März 28, 2006 9:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, der Gedanke ist mir auch schon gekommen und so würde das sicher gehen.

Ich dachte nur es gäbe noch einen Pick Befehl der das direkt kann - schade, naja, kann man nix machen.

Trotzdem danke.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

Klaas

BeitragDi, März 28, 2006 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbasic.com/code...p?code=515

damit bekommst du die uv Koordinaten. die mußt du dann umrechnen und mit readpixel bzw readpixelfast die Farbe aus der Textur auslesen.

Markus2

BeitragDi, März 28, 2006 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn nur der Rand transparent ist kannst du auch direkt mit den UVs
arbeiten .

U=0=0
V=0=0

U=1=128
V=1=128

EPS

BeitragDi, März 28, 2006 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für die Ideen.

Ich hab nun eine Lösung für das Problem gefunden.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

Klaas

BeitragDi, März 28, 2006 14:35
Antworten mit Zitat
Benutzer-Profile anzeigen
<my two cents>
Es ist übrigens immer eine nette Sache die Lösungen auch vorzustellen um andere Forenbesucher die gleiche Frage zu ersparen. Zudem ist es nur fair wenn man durch andere auf eine Lösung gebracht wurde diese dann weiterzugeben.
</my two cents>

EPS

BeitragDi, März 28, 2006 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine gestellte Frage sollte nur klären ob es einen direkten Befehl gibt um die oben beschriebene Aufgabe zu lösen. BlitzBasic hat aber anscheinend keinen solchen Befehl.

Also habe ich das eigentliche Problem umgangen und gar nicht behandelt. Ich löse das Problem nun mit einer anderen Methode.

Das klingt jetzt etwas doof, ist aber so. Die Lösung an sich hat jedoch mit der Aufgabe nix zu tun, von daher würde das an dieser Stelle gar nichts bringen.

Als Beispiel, ich werd einfach auf einen 2. Buffer ein RECT zeichnen um dort den Pixel auszulesen. Ich kann es leider nicht anders erklären - sorry.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group