Bug vermutung in B3D

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Suco-X

Betreff: Bug vermutung in B3D

BeitragMi, Jan 14, 2004 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute. Ich hatte vor in eine textur mit den normalen Grafikbefehlen wie Oval und rect und sowas zu malen. Klappen tuts auch, nur die schwarzen stellen sind dann nicht mehr unsichtbar. Daraufhin habe ich mal versucht ein image zu erstellen, darauf zu zeichnen und dann via CopyRect das gezeichnete auf die Textur zu bekommen. Dann ist aber alles unsichtbar, nur das schwarze nicht. Ist das nun ein Bug oder kann ich das doch noch irgendwie umgehen? Hier mal Code zum testen.
Code: [AUSKLAPPEN]

Graphics3D 1024,768,16,2



camera = CreateCamera()
PositionEntity camera,0,0,-5
CameraClsColor camera,200,200,200

textur = CreateTexture(100,100,4)


image = CreateImage(100,100)

SetBuffer ImageBuffer(image)
Color 200,0,0
Oval 0,0,100,100

CopyRect(0,0,100,100, 12,12, ImageBuffer(image), TextureBuffer(textur))

FreeImage image

cube = CreateCube()

EntityTexture cube, textur





SetBuffer BackBuffer()

Repeat

TurnEntity cube,0,.5,.5

RenderWorld
UpdateWorld



Flip
Until KeyHit(1)


bye
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

BigSnake

BeitragMi, Jan 14, 2004 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Sobald du mit irgendwelchen Zeichenbefehlen auf eine Textur malst geht deren Transparenz Information verloren. Der Bug ist bekannt und auf Direct 3d zurückzuführen

TheShadow

Moderator

BeitragMi, Jan 14, 2004 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ist kein bug
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

furbolg

BeitragMi, Jan 14, 2004 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
und auf Direct 3d zurückzuführen


Genau, und wenn du nen Bluescreen verursachst is Microsoft auch dran schuld weil du nich richtig gecodet hast. ...

Cornelius

BeitragMi, Jan 14, 2004 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit WritePixel(Fast) kann man auch die Alpha-Informationen verändern.
Du kannst z.B. am Anfang alles Tranzparent malen (Farbwert=0), und dann darauf mit Oval und Rect Sichtbares.

Suco-X

Betreff: ......

BeitragMi, Jan 14, 2004 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Die informationen dürfen doch nicht einfach flöten gehen, was ist den das für ne schlamperrei? Naja, wens an Direct3D liegt und bekannt ist, wieso ist es dann noch nicht behoben? So abwägig ist die idee doch garnicht das man auf eine textur zeichnen will.
bye
edit
oh, sehe gerade deinen Thread Cornelius. Ich teste das mal
Edit Nr.2
Ok, klappt so. Danke Cornelius. Thema erledigt.
byr
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

TheShadow

Moderator

BeitragMi, Jan 14, 2004 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
RECT/Oval usw - setzen Alpha auf 255 - warum sollen diese Befehle alpha-setzung ignorrieren?
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Suco-X

Betreff: ...

BeitragMi, Jan 14, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm...Folgender code klappt :
Code: [AUSKLAPPEN]

Graphics3D 1024,768,16,2



camera = CreateCamera()
PositionEntity camera,0,0,-5
CameraClsColor camera,110,110,110

textur = CreateTexture(128,128,4)



LockBuffer TextureBuffer(textur)

For x = 0 To 127
For y = 0 To 127
   WritePixelFast x,y, CombineRGB(0,0,0), TextureBuffer(textur)
Next
Next

UnlockBuffer TextureBuffer(textur)


SetBuffer TextureBuffer(textur)
Color 255,0,0
Oval 0,0,128,128


cube = CreateCube()
EntityTexture cube, textur

EntityFX cube,16




SetBuffer BackBuffer()

Repeat

TurnEntity cube,0,.5,.5

RenderWorld


Flip
Until KeyHit(1)



Function CombineRGB(r,g,b)
   Return a*$1000000 + r*$10000 + g*$100 + b
End Function


Das sieht mir aber doch nach nem Bug aus. Den ich zeichne ja nachdem ich mit Alpha über die textur schreibe mit Oval auf die Textur. Also scheint so als wen B3D bei CreateTexture keine Alpha informationen erstellt. Aber wofür ist dann Flag 4 gut?
bye
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

TheShadow

Moderator

BeitragMi, Jan 14, 2004 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
NOCHMAL unterschied zw. Alpha und Masked-Flag:

bei Alpha-Flag habt ihr 256-Alpha-Abstufungen
bei masked habt ihr nur 2 abstufungen (sichtbar/unsichtbar) - dabei werden 0-127 als o und 128-255 als 255 angesehen

Ich hatte früher ein problem das sprite mit textur und runden ecken sehr picelig bei masked war - hat mich 2 tage gekostet um herauszufinden, dass maked nur 2 zustände kennt - erst mit alpha sah es "antialiased" und perfekt aus (alpha-werte musste ich aber manuell setzen)
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Jan_

Ehemaliger Admin

BeitragDo, Jan 15, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
B3D hat auch einen Bug mit dem Laden von BSP und Camera, ist mir aber nur bei einem größeren Proj. aufgefallen, habe es gelösst, indem ich 2 Cameras erstellt habe und die 1. wieder gelöscht!
between angels and insects

TheShadow

Moderator

BeitragDo, Jan 15, 2004 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit BSP kann ein bug sein - aber wenn es keiner meldet....
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group