Schranz0r hatte beim Schneegestöber empholen, den Hintergrund der angezeigten Grafik mit der Transparenzfarbe RGB(255, 0, 128) zu hinterlegen.
FILLRECT 0,0,10,10, RGB(0xff, 0x00, 0x80)
DRAWLINE 0, 5, 10, 5, RGB(RND(255), 255, 255)
GRABSPRITE 0, 0, 0, 10, 10
Nun habe ich jedoch das Problem, wenn ich das Sprite anzeigen will, die Transparenzfarbe alles andere als transparent ist. In einem Beispiel von Gernot hab ich mal gesehen, daß er die Grafik dann erst als BMP speichert und gleich wieder lädt.
Gehört das so? Warum funzt das nicht gleich mit GRABSPRITE?
Oder habe ich etwas Grundlegendes übersehen?
Doch das sollte so gehen...
Bei mir gehts:
FILLRECT 0,0,10,10, RGB(0xff, 0x00, 0x80)
DRAWLINE 0, 5, 10, 5, RGB(RND(255), 255, 255)
GRABSPRITE 0, 0, 0, 10, 10
SPRITE 0,100,100
SHOWSCREEN
MOUSEWAIT
Wenn's nicht geht: Welches Betriebssystem? Aktueller Grafikkartentreiber? Welche Farbiefe hat der Desktop?
jo genau so dachte ich mir das auch. Betriebssystem ist WinXP Pro. Graka muss ich heute abend mal nachsehen.
Aber Farbtiefe ist ein guter Hinweis. Da probier ich noch mal ein wenig aus und geb Laut.
Danke schon mal.
Der Hinweis mit der Farbtiefe war gut. Bei 16 Bit geht, bei 32 Bit nicht. Seltsam ist nur, daß, wenn ich z.B. die Transparenzfarbe in einer BMP-Datei verwende und als Sprite lade, es auch bei 32 Bit einwandfrei funktioniert.
Hat also vielleicht nur Grabsprite damit ein Problemchen?
Achja, Graka ist übrigens eine GeForce Go 7600
Bei mir ist es genau das gleiche. Mit 16 Bit hab ich bei GRABSPRITE transparenz
bei 32 Bit aber nicht mehr. Wenn ich ein Sprite lade geht's auch bei mir bei 32 bit.
Also dasselbe wie bei dir,Quentin.
Cheers
Bei mir gehts mit 32 Bit... komisch sind halt die scheiss GeForce Karten XD
Fein, dann stehe ich zumindest nicht alleine da ;)
Was heißt hier scheiß Geforce Karten. Sieht für mich nach einem eindeutigen Käfer in GRABSPRITE aus. Wobei es natürlich eine feine Sache wäre, wenn SETSCREEN einen Parameter für die Farbtiefe hätte.
Ach ach ach. Da passt was generell nicht. Ich hab's jetzt gelöst, aber das scheint mir komisch.
Könnt ihr bitte eine XML Datei posten, die mit http://www.realtech-vr.com/glview/ erstellt wurde für die Karten, auf denen es nicht läuft?
Danke.
Hi unter 32bit ist alles OK,
unter 16bit wird mir die Linie nicht angezeigt ???
-
-
Windows XP Professional
32-bit
ATI Technologies Inc.
2.0.6174 WinXP Release
1.10
RADEON 9600 XT x86/MMX/3DNow!/SSE
GL_ARB_multitexture GL_EXT_texture_env_add GL_EXT_compiled_vertex_array GL_S3_s3tc GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_multisample GL_ARB_occlusion_query GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ARB_draw_buffers GL_ATI_draw_buffers GL_ATI_element_array GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_map_object_buffer GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_ATI_vertex_array_object GL_ATI_vertex_attrib_array_object GL_ATI_vertex_streams GL_ATIX_texture_env_combine3 GL_ATIX_texture_env_route GL_ATIX_vertex_shader_output_point_size GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_object GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array GL_EXT_vertex_shader GL_HP_occlusion_test GL_NV_blend_square GL_NV_occlusion_query GL_NV_texgen_reflection GL_SGI_color_matrix GL_SGIS_generate_mipmap GL_SGIS_multitexture GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_extensions_string WGL_EXT_swap_control WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_extensions_string WGL_EXT_swap_control WGL_ATI_render_texture_rectangle
128
-
-
4096
4096
4
-
16
128
32
10
16
10
-
1.000000
64.000000
0.125000
1.000000
64.000000
0.125000
1.000000
128.000000
1.000000
1024.000000
6
8
65536
2048
30
-
16
8
2048
4
-
83f0
83f1
83f2
83f3
4
2048
32
-
65535
256
65535
32
256
256
32
16
1
1
256
256
32
32
16
-
4
2048
-
10
32
160
32
16
64
10
32
32
4
32
96
32
46
0
0
31
32
8
16
-
4096
44
16
0
-
4096
-
2
4
6
8
2
8
16
3
3
-
2048
-
atioglxx.dll
ATI Technologies Inc.
6.14.10.6174
ATI OpenGL driver
-
-
Hi
Windows XP Home Edition
32-bit
NVIDIA Corporation
2.0.3
1.10 NVIDIA via Cg 1.3 compiler
GeForce FX 5200/AGP/SSE/3DNOW!
GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_half_float_pixel GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shadow GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_object GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_pixels GL_EXT_paletted_texture GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_shared_texture_palette GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_object GL_EXT_texture_sRGB GL_EXT_timer_query GL_EXT_vertex_array GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_copy_depth_to_color GL_NV_depth_clamp GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_texgen_reflection GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control WGL_ARB_buffer_region WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_render_texture WGL_EXT_extensions_string WGL_EXT_swap_control WGL_NV_float_buffer WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle
128
4096
4096
12
16
128
32
4
16
10
0.500000
10.000000
0.125000
1.000000
63.375000
0.125000
1.000000
10.000000
1.000000
63.000000
6
8
65536
4096
8
8
4
4096
3
83f0
83f2
83f3
0
512
32
256
256
16
16
256
256
16
16
2
2
256
256
16
8
1
2
11
11
4
4096
16
256
1024
256
1
1024
16
1024
32
1024
1024
1024
1024
32
0
0
1024
1024
8
16
1024
32
16
0
256
1048575
1024
1024
40968
nvoglnt
NVIDIA Corporation
6.14.10.9371
NVIDIA Compatible OpenGL ICD
Cheers
Hmmm, irgendwas passt nach dem update immer noch nicht??
Hier mal screens, zu erst in 16bit dan 32bit.
Fenster oder vollbild spielen keine rolle.
(http://www.deuteriumoxid.com/glbasic/16.jpg)
(http://www.deuteriumoxid.com/glbasic/32.jpg)
Hä!? Bei 32 bit wird gar nichts ausgeschnitten??
Mach mal FILLRECT 0,0,32,32,RGB(255,255,0) vor der Linie.
He, jetzt hab ich auch Trabsparenz bei GrabSprite !
War dann wohl doch nicht der Treiber.
bestätigt, geht jetzt auch bei 32 Bit Farbtiefe.
Jetzt ist mir allerdings was anderes aufgefallen und zwar im Zusammenhang mit ZOOMSPRITE und ROTOZOOMSPRITE.
In diesem Beispiel http://www.glbasic.com/forum/viewtopic.php?id=905 wird ein einzelnes Objekt 1000 mal dargestellt und sollte eigentlich immer gleich aussehen (zumindest die Farbe). Die korrekte Farbe wird jedoch nur gezeigt, wenn das Objekt in Originalgröße gezeigt wird. Wird es mit ZOOMSPRITE oder ROTOZOOMSPRITE um einen bestimmten Faktor verkleinert, ist die Farbe anders. Sieht mir dann fast nach der Transparenzfarbe aus.
also so
FILLRECT 0, 0, 10, 10, RGB(255, 0, 128)
DRAWLINE 0, 5, 10, 5, RGB(RND(255), 255, 255)
DRAWLINE 5, 0, 5, 10, RGB(RND(255), 255, 255)
DRAWLINE 1, 1, 9, 9, RGB(RND(255), 255, 255)
DRAWLINE 9, 1, 1, 9, RGB(RND(255), 255, 255)
gibts bei Verkleinerungen andere Farben. Sollte doch auch nicht sein denke ich.
Ohne FILLRECT sehen alle Objekte gleichfarbig aus.
*kopfkratz* hoffe ich habe nicht schon Halos
Hmm, die linie wir in 16bit nicht angezeigt??
Zu erst in 16bit dann 32bit.
Fenster oder vollbild spielen keine rolle.
(http://www.deuteriumoxid.com/glbasic/16a.jpg)
(http://www.deuteriumoxid.com/glbasic/32a.jpg)
Könnte da ein Befehl SETTRANSPARENTY nicht abhilfe schaffen?
ZOOMSPRITE:
Gaaahrgh!
OK, dann wird's ein Problem. Jetzt muss ich immer den langsamen weg gehen, wenn Transparenz vorhanden ist. Ich werde GRABSPRITE um einen Parameter erweitern, der angibt, ob man Transparenz haben will, damit's bei solids schneller gehen kann.
Ach, ach, ach.... ist das ärgerlich.
Hoppala,
X_SETTRANSPARENTY,
der befehl wird bei mir nicht gehighlitet(?), noch in der Hilfe angezeigt,
aber in der Autovervollständigung ist der drin.
Kleiner Bug??
Der befehl ist doch für den 3D Modus??
Nein, den gibt's überhaupts net.
Wenn's einen Befehl gibt: SETTRANSPARENCY, der angibt welche Farbe transparent ist - soll der auch für Fonts gelten?
Oder 2 Farbwerte (SPRITE und FONT)? Bitte um Hilfe.
bin dafür ... ich meine gleiche Transparenzfarbe für Fonts und Sprites. Sehe im Moment keinen Grund warum das anders sein sollte. Gibt aber sicherlich auch andere Meinungen dazu ;)
...weil standardmäßig bei FONT RGB(0,0,0) und Srite RGB(255,0,128) ist. Ist aber kein Problem, oder?
noch mal zurück zum Thema GRABSPRITE und Transparenz:
Habe jetzt mal eine Animation in 10 Bildern in einer BMP-Datei untergebracht und per Grabsprite in einzelne Sprites zerlegt. Die Anzeige funktioniert auch soweit. Die Transparenzfarbe wird ausgeblendet. Wenn ich jedoch eines dieser Sprites darstelle und ein anderes Sprite wird teilweise verdeckt, erkennt man deutlich, daß der Bereich, der transparent sein sollte, schwarz ist.
Stelle ich die einzelnen Bilder der Animation mit Einzelbildern dar, funktioniert es korrekt. Also irgendetwas stimmt immer noch nicht so ganz mit GRABSPRITE.
Mein Vorschlag @ Gernot:
Transparenz "standart" dieses "255, 0, 128"
Wenn man dann eine andere will
SETTRANSPARENCY RGB(255,0,0) // <-- z.B
LOADSPRITE "AUTO.BMP",1
Und dieser Befehl sollte nur für die nächste Bildatei gelten, alle darauffolgenden
sollten wieder das "rosa-pink" haben.
SETTRANSPARENCY RGB(255,0,0) // <-- z.B
LOADSPRITE "AUTO.BMP",1 // Rot als Transparentfarbe
LOADSPRITE "BALL.BMP",2 // wieder "rosa-pink"
Dieser befehl sollte auf Fonts und Sprites verfügbar sein, am besten.
Es soll doch vorkommen, das man mal eine schwarze Font braucht :)
(Ja ich weis, man kaknn Tricksen, mit einen Farbwert eins runter :) )
Was hällst du von dieser Idee?
EDIT:
@ Quentin:
Oweia jetzt verlangen wir aber was ab von Gernot..... UFF
@ Gernot:
Lass dir Zeit, muss ja nicht alles auf einmal sein ;)
Also ich arbeite nur nur mit PNG Bildern, die sind immer Transparent und schön klein.
Die meist verwendete Transfarbe ist doch eigentlich RGB(255,0,255) Fuchsia.
Nemmt PNG und gut ist, kann man z.B PaintNet kostenfrei bearbeiten.
@Schranzor
mag sein, aber wie du schon sagtest, das ist ja nicht so furchtbar eilig, da man sich ja mit anderen Mitteln behelfen kann ;)
Bitte nicht per Befehl nur ein einzelnes nachfolgendes Bild mit einer anderen Transparenzfarbe setzten. Das bringt nur Chaos. Wenn, dann bitte solange, bis der Befehl mit einer anderen Farbe aufgerufen wird, oder, was ich besser finde, das es als optionalen Parameter bei jeder Grafik- und Font-Lade Routine mit angegeben werden kann.
Sinnvoll ist es auf jeden Fall, das man pro Grafik/Font die Transparenzfarbe setzen kann. Damit hat man eventuelle zukünftige Wünsche gleiche mit erschlagen und muss nicht noch einmal diese Funktionalität anfassen.
Ich werd's so einbauen, dass man das setzen kann wie man will -> dann gilt's für Fonts UND Sprites. Und auch so lange bis man es wieder umstellt. I.d.R. macht man ja immer die gleiche Farbe als Transparent.
JA auch OK :D
Grabsprite hat derzeit einen fehler, und zwar wird es nicht Transparrent die Farbe 255,0,128 sondern nur schwarz!
Hatte aber glaub ich schon einer gesagt, vor dem Update gings noch einwandfrei!
Bei mir ist es endlich mit der aktuellen Version Transparent.
OK, SETTRANSPARENCY gibt's jetzt - damit ist das jetzt gelöst, oder?
bin mir noch nicht ganz sicher, hab jetzt die Grafik alle auf schwarzen Hintergrund gesetzt und sieht alles prima aus, zumindest bei BMP's. Bei der Verwendung von PNG-Grafiken klappts nicht so ganz, Hintergrund ist auch schwarz, das hab ich geprüft, also nicht sowas wie RG(0,0,1) oder sowas. Wie muss denn bei PNG der Alphakanal gesetzt sein beim Speichern?
Wenn das PNG einen Alphakanal hat, wird nur der verwendet. Die Farbe nur, wenn z.B. mit MSPaint als PNG gespeichert - weil das nur RGB speichert.
Bearbeite die Grafiken mit Paint.Net. Bei Alpha steht 255. Probier das heute abend mal aus, ob es dann hinhaut. So ganz steig ich bei diesem Alpha-Wirsing nämlich nicht durch.
Was dein Fireworks ist kaputt gegangen.....
Kannste ja neu die Trail runterladen :D *Hust*