Wie picke ich das?
Übersicht

![]() |
EPSBetreff: Wie picke ich das? |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
<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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group