Problem: createtexture() erstellt eine textur mit alpha
Übersicht

![]() |
Xaymarehemals "Cgamer"Betreff: Problem: createtexture() erstellt eine textur mit alpha |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Leider ist mir schon öfters vorgekommen das createtexture() mir eine textur zurücklieferte mit ![]() hat jmd dafür ne lösung? Mich ärgert das ganz schön, da ich mir rect/line/plot neuschreiben musste(um auf 32bit auch alpha zu haben) Mfg |
||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit mir bekannt sind Texturen immer 32 Bit, da das so in der Hardware fest verankert ist. Selbst ''16'' Bit Texturen werden erst im letzten Schritt bei der Darstellung umgerechnet. Das ist so, weil so grundlegende Sachen fest in der Hardware verankert diese eben am schnellsten rechnen lässt. Würde man so grundlegende Sachen auch noch variabel machen, so würde es ein unnütz erhöhten Rechenaufwand bedeuten. Das ist auch der Grund, warum 24 Bit Farbtiefe bereits seit mehreren Jahren keine Grafikkarte mehr unterstützt.
Im übrigen ist ein manuelles Umrechnen unter Blitz doch wirklich sehr einfach. Um den Alphachannel zu füllen, muß als Farbe einfach +$FF000000 hinzuaddiert werden. Bedenke aber, dass CreateTexture im Mode 2 und andere, bei manchen Grafikkarten nicht richtig funktionieren. Es gibt dazu Hier was zu lesen. Als Workaround kann man aber leere Texturen laden und diese dann nach belieben bemalen. Was beudetet, dass alle Größen dann aber auch so vorliegen müßen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
mmh... das erste weiß ich ja, aber der verdammte(kack) alpha channel stört mich... aber wird schon iwie hinhauen...
Mfg |
||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab grad mal ein paar Tests durchgeführt. Es scheint so zu sein, dass im 16 Bit Grafikmodus erstellte Texturen eine 5,6,5 Bit-Aufteilung haben, während geladene eine 4,4,4,4 Bit-Aufteilung zugeteilt bekommen ganz ungeachtet ihrer Quelle. Also auch BMP-Dateien die nur 24 Bit oder 12 Bit (4 Bit pro Farbkanal) gespeichert haben.
Hier mein erstes Testprogramm ohne Erzeugung eines Alphachannels: Code: [AUSKLAPPEN] Graphics3D 800,600,16,1
SetBuffer BackBuffer() Local Timer=CreateTimer(100) Local Camera=CreateCamera() Local Sprite=CreateSprite() Local Texture=CreateTexture(256,256,48) Local X,Y For Y=0 To 255 For X=0 To 255 WritePixel X,Y,X*$10000+X*$100+X,TextureBuffer(Texture) Next Next CameraClsColor Camera,255,0,0 EntityTexture Sprite,Texture PositionEntity Sprite,0,0,2 RenderWorld Flip WaitKey End |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group