wertebereich von SHR?
Übersicht

hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Draw3D kommt leider nicht in frage.(wobei es bb3d voraussetzt, was wiederum ja eh shr hat, grins)
also dein code sozusagen prüft einfach nur auf transparenz und fertig, richtig? und farbcode wäre in meinem fall das das readpixel gebilde bis zum shr eben, was ich weglassen soll. nun ich habe einmal ein bild mit halber transparent darstellen lassen, sieht überhaupt nicht transparent aus. dies steht in der readme... Parameter alphaLevel is used ONLY for verification of picture with taking into account transparency, can be equal to values from 0 to 255. By default alphaLevel% is equal to zero and verification for transparency is not made. At checking for transparency (value of alphaLevel% >0 ) function is executed some slower because there is reading from the buffer of texture of picture. Parameter Local% is used ( is equal to 1 ), if it is needed to verificate point in local system of coordinates, by default is equal to zero. nun weiß ich nicht ob bei der funktion der wert des alphalevels ausschlaggeben ist oder egal ob 1 oder 255, es wird nur true oder false unterschieden. weil dann müßte man tatsächlich nur auf alpha ja oder nein unterscheiden. mir stellte sich eben dieses auslesen des alphakanals als problem dar. wie dieser gekennzeichnet wird. du hast oben die abfrage eines bestimmten wertes angedeutet. gibt es denn verschiedene werte. also die werte 0-1 der transparenz. die frage ist jedoch wie ich diese werte auch bildlich darstelle. hab ein .png gemacht mit photoshop, un nur bisschen transparenz eingefügt. also ein teil zu 60% sichtbar, wurde aber richtig dargestellt, kann aber auch sein, weil nix drunter zu sehen war, lol. da zieht die true false berechnung natürlich nicht. ich würde praktisch zwischen tranparent und sichtbar in stufen von 0-255 unterscheiden müssen. und dazu ist wahrscheinlich dieses shr notwendig, oder wie kann man den alphakanel so auslesen, dass die abstufungen mit angabe des alphawertes bei xTestrendered auch eine bedeutung haben und dementsprechenend bei bestimmzten werten springen. ist dies immer noch ohne shr möglich? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, Du kannst Alpha auch ohne shr isolieren. Langsam werd ich allerdings ein wenig stinkig hier, wir sind hier das BlitzBasicForum, und Blitzbasic hat SHR.
Da deine Frage Gl-Basic betrifft hat sie eigentlich im BB-Bereich nix verloren sondern bestenfalls im Smalltalk, und noch besser im passenden Gl-Basic Forum. Noch dazu dreht sich die Problematik bei der ganzen Fragerei weniger um den Befehl als solches sondern mir scheint Du hättest noch ein paar generelle Verständnisprobleme was diverse Zahlensysteme und deren Anwendung in der Praxis angeht, und da muss ich mich fragen ob Du nicht erst noch ein wenig üben und lernen willst bevor Du Codes übersetzt die Du augenscheinlich noch nicht verstehst. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nun es handelt sich im großen ganzen um fastimage das sehr wohl mit bb funktioniert.
gern kann ein mod dies auch verschieben. der xReadpixel befehl ist jedoch dem in bb gleichzusetzen, also würde es wieder sogut wie eine bb frage sein. wenn mir jemand sagen kann wie ich nun mittels readpixel oder in meinem fall xreadpixel, alpha isolieren kann, ohne shr zu benutzen(aber wohlgemerkt mit vorgabe des parameters alphalevel 0-255), dann wäre das thema auch schon erledigt. und sorry, daß ich hier so einigen mit meiner fragerei so auf den wecker geh, aber ich brauch diese zahlendreherei sonst im moment nicht. |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/help/ReadPixel
Beispiel ansehen, überlegen wie es wohl für Alpha aussehen würde, und gut ist. |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich müsste das erste byte des rückgabewertes mit dem alphalevel vergleichen, richtig?
verschieben kann ichs ja wohl nicht. zudem kommen bei Code: [AUSKLAPPEN] xReadPixel( FI_Test\TextureX, FI_Test\TextureY, xTextureBuffer(FI_Test\Texture,FI_Test\Frame) ) werte wie z.b. -4023397 raus.
und erst nach dem blitz shr verschiebungsteil werte zwischen 0-255 bzw. 00-FF also wäre Code: [AUSKLAPPEN] alpha = (xReadPixel( FI_Test\TextureX, FI_Test\TextureY, xTextureBuffer(FI_Test\Texture,FI_Test\Frame) ) AND $FF000000)/$1000000
richtig? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man ohne Shr auskommen muß, und es über ''Umwege'' einer Division machen muß, es aber aus irgendwelchen Gründen dennoch nicht kann, dann muß halt nicht der eingehende Wert dividiert, sondern der vorgegebene Wert addiert werden.
Das heisst: Statt: If ((ReadPixel And $FF000000)/$1000000) > Alpha Then Dann: If (ReadPixel And $FF000000) > (Alpha*1000000) Then Und wenn das auch nicht geht, dann vergiss einfach die Programmiersprache und suche dir eine andere. Wenn du es aber trotz allen Umständen auch weiterhin versuchen willst, dann wird dir sicherlich ein GL-Basic-Forum da besser helfen können. Die meisten von uns - wie auch ich - können dann nur raten wie oder was an GL-Basic anders ist, was du dann testest und sagst ''es geht nicht....'', und wir dann weiter grübeln müssen. In einem GL-Forum wissen dann die Leute auch bescheid, so wie es die Leute hier über BlitzBasic wissen. Das einzige Problem bei einem GL-Forum ist, dass es da anscheinend (so wie ich es mal vor Jahren überprüft habe) mehrere von gibt, die alle kaum Besucher haben. Anders als dieses Forum, wo es im grunde nur eines gibt, da sich aber die meisten Leute eben aufhalten. Edit1: Achja, es ist gut möglich, dass GL-Basic das $ als Vorzeichen einer Zahl nicht die nachkommende Zahl im hexadezimalen Zahlensystem ansieht. Dann müssen halt die Zahlen in dezimal ausgeschrieben werden. Das hiesse statt $FF000000 dann 4278190080, und statt $1000000 dann 16777216 ausschreiben. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein, das putzige ist daß AND ja wieder auch mit negativen werten umgehen muss.
Ich habs zumindest jetzt schon soweit gelöst, daß alpha überhaupt erkannt wird, nur die abstufung muss ich noch hinbekommen. momentan hab ich nur alpha true oder false. wird schon noch irgendwie edit $ ist bei glb einfach 0x wie in c++ halt |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
AND ist es per se Sch...egal ob du damit das Vorzeichenbit beeinflusst oder nicht.
Oder anders formuliert: Der Fehler liegt hier nicht beim Befehl ![]() Ich hab keine Ahnung ob glBasic AND anders implementiert hat als BB, aber ich kann hier ohne weiteres sämtliche Bits eines Integers auslesen und manipulieren, ob positive Zahl oder nicht, und kann mir auch alle Bis shiften wohin ich will, und das auch ohne shr (auch wenns unnötig ist, denn dafür hab ich den Befehl ja). Ich unterstelle also dass entweder die Implementation von glBasic oder dein Umgang damit fehlerhaft ist. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ha ich habs.
and gibts in glb nun zweierlei einmal als AND normal für IF etc. und einmal bAND für diese binär geschichte. ich habs nun anders gelöst, hab so nun den alphawert seperat ausgelesen. problem war, daß der alphawert auf -1 fällt wenn kein alpha mehr da ist, aber bei teilweise alpha werte zwischen 0-255 hat. ich hab jetzt den schwellwert für true wenn unterhalb von alphaLevel AND > -1 AND und bAND funktionieren also vollkommen gleich. nur das SHR mit vorzeichen haut wohl so richtig noch nicht hin. Abschliessend bedanke ich ich mich nun für eure geduld und hilfe, da ich so die richtige lösung finden konnte. danke sehr. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group