when i was coding my new,awsome multipass triangle filling pipeline (with usage of multitexturing ofcourse) :D ,i''ve noticed some stupid artifacts.
the main algo is something like this:
set_blend_mode; (depends on previous pass, but usaly it''s "add" )
pop n textures from pipeline (where n is the # of texture units in gfx card, n<=#of_textures_in_pieline)
1st texture in the pipeline lies at the top of stack.
While the opengl api defines the way how output pixel is generated is quite simple to "emulate" that algorith using screen buffer as a temporary value. It works quite good, it''s fast, but the entire algo crashes when this "temporary value" is
not 0 at the beginning (0 + 1st_texture=1st_texture ,that''s why blend mode is initialized with decal). what do i mean by that? when texture_surface (aka q3a: texture_shader) will be, lets say, added to the background , the overall effect of this loop will be a little inmathematic
is there any way to omit that aritifact?
(a fast one would be great!! i don''t want to create another screen buffer , play with stencil , etc)