Teiltransparenz im 2D-Modus mit B3D
Übersicht

GermannXBetreff: Teiltransparenz im 2D-Modus mit B3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun habe ich Google und die Forensuche bemüht, aber ich scheine einfach zu doof zu sein ![]() Zumindest finde ich einfach keine anständige Erklärung, die auf meinen Fall passt und die ich verstehe in der gesagt wird, ob und wie man im 2D-Modus von B3D (also "Graphics" Statt "Graphics3D") z.B. eine .tga-Bilddatei (oder auch ein anderes Format das Transparenz und Teiltransparenz unterstützt) verwendet und zwar so, dass die Teiltransparenz (also "Halbdurchsichtigkeit") auch im Spiel zur Geltung kommt. Es ist nicht dringlich, aber es wäre für mein derzeitiges Projekt eine ordentliche Bereicherung, wenn jemand so freundlich wäre, mir zu helfen ![]() Danke im Voraus! MfG GermannX |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht leider nicht so einfach du könntest aber mit den Befehlen
ReadPixel ![]() ![]() mfG |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am besten ist es, wenn die Transparenz bereits im Bild abgelegt ist. Das wär dann somit der Alphachannel. Um diese auch anzeigen zu lassen, kannst du z.B. die ein Quad erstellen. Das würde dann mit CreateMesh![]() ![]() ![]() ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber eben das wäre dann 3D. Dann würd ich dir gleich zu einer Lib wie z.B. Draw3D oder Sprite-Candy raten.
mfG |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achja, stimmt. Hatte den ersten Beitrag irgendwie falsch verstanden.
Unter reinem 2D-Modus gibt es keine Teiltransparenz bei Blitz3D. Zumindest keine, die echtzeittauglich ist. Das wäre dann die von Peacemaker1 genannte Methoe über ReadPixel die beiden Pixelwerte (transparentes Bild auf Untergrund) vergleichen und dann berechnet mit WritePixel wieder setzen. Man kann aber auch mit einem ''dithering'' artigem Muster eine Teilstreuung machen. Dann also mit MaskImage arbeiten. Das ist dann auch echtzeittauglich. Sieht nur nicht besonders schön aus, und für Flachbildschirmnutzer müßen alle Bewegungen in zweierschritten als Minimum haben. Sonst flackert es bei dennen sehr stark. Auch tun sind besonders alte Flachbildschirme mit so einem Muster recht schwer, da bei denen zum Teil eine komprimierte Datenleitung zusteht (oder so ähnlich). So ein Muster aber viel kompression einbüsst und der Bildschirm dann eine Aktualisierungsrate von 10 FPS hat. Kommt aber echt nur bei billigen und alten Flachbildschirmen vor. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es würde vielleicht auch mit der altbewehrten Methode gehen, jeden 2ten Pixel Schwarz und damit durchsichtig zu machen.
Das wäre dann 50% Transparenz >,< Ich weiß nicht, ob das das selbe ist, wie hectic mit "dithering" gemeint hat, aber wollte mal helfen ^.^ |
||
Twitter
Download Jewel Snake! Windows|Android |
GermannX |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank für die guten Antworten!
Nunja, wenn das so kompliziert ist (bzw. im 2D-Modus nicht echtzeittauglich verwendet werden kann), lasse ich das mal (vielleicht werde ich das bei einem späteren Projekt noch brauchen, dass ich dann gleich 3D machen werde). Danke auch dir hectic für dein freundliches Angebot, ich werde wohl zu gegebener zeit darauf zurückkommen. MfG GermannX |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
phil217 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
zufällig hab ich kürzlich eine Alpha Funktion für bb2d gesucht und eine aus dem englischen Forum meinen Bedürfnissen angepasst. (mit den bereits erwähnten Befehlen readpixel und writepixel) ich poste sie einfach mal, bei Bedarf erklär ich auch wie sie funktioniert Code: [AUSKLAPPEN] Function transparency(foreground,background,x_pos,y_pos,alpha#) image = CopyImage(foreground) w = ImageWidth(foreground) h = ImageHeight(foreground) LockBuffer ImageBuffer(foreground) LockBuffer ImageBuffer(background) LockBuffer ImageBuffer(image) For X = 0 To w - 1 For Y = 0 To h - 1 CI = ReadPixelFast(X,Y,ImageBuffer(foreground)) red_I = (CI And $FF0000)/$10000 green_I = (CI And $FF00)/$100 blue_I = CI And $FF CB = ReadPixelFast(x + x_pos,y + y_pos,ImageBuffer(background)) red_B = (CB And $FF0000)/$10000 green_B = (CB And $FF00)/$100 blue_B = CB And $FF red = (alpha * red_I + (1 - alpha) * red_b) green = (alpha * green_I + (1 - alpha) * green_b) blue = (alpha * blue_I + (1 - alpha) * blue_b) rgb = 255 * $1000000 + red * $10000 + green * $100 + blue WritePixelFast X,Y,rgb,ImageBuffer(image) Next Next UnlockBuffer ImageBuffer(foreground) UnlockBuffer ImageBuffer(background) UnlockBuffer ImageBuffer(image) Return image End Function aufpassen muss man nur wegen der standardmäßigen Maskierung der Bilder, das zurückgelieferte Bild muss man neu maskieren außerdem muss man nach jedem benutzen ein freeimage ![]() mfg phil |
||
![]() |
TritonBetreff: Re: Teiltransparenz im 2D-Modus mit B3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
GermannX hat Folgendes geschrieben: Nun habe ich Google und die Forensuche bemüht, aber ich scheine einfach zu doof zu sein
![]() Hm. Also ich finde ganz einfach mit "transparenz" als Suchbegriff im Codearchiv einige brauchbare Sachen: https://www.blitzforum.de/foru...php?t=6026 https://www.blitzforum.de/foru...hp?t=14366 https://www.blitzforum.de/foru...hp?t=23720 https://www.blitzforum.de/foru...hp?t=24323 |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group