8-bit Mode
Hi guys....
I''m having some problems with my equipment (Duron 950 Mhz, 128MB and 4MB of video memory (without support to OpenGL)), and I decided to try 8-bit color applications in OpenGL...
So, I would like to know, if this mode is really fastest than 16-bit and 32-bit, and if I can do things like Alpha Blend, etc in 8-bit mode.
I also would like to know 2 more things:
1) DO I have to use a pallete in 8-bit mode or I can program like i''m programming in 16-bit? like informing to glColor three values (R, G, B)?
2) How Do I Set a 8-bit mode application? I Tryied to change the values of PIXELFORMATDESCRIPTOR and ChangeDisplaySettings to 8 bits, but after the resolution was changed, nothing appeared on the screen.
THank you a lot guys.....
January 27, 2002 12:19 PM
Most modern 3D cards do not accelerate the 8 bit indexed mode at all, so it''s going to be extremely slow.
You can neither alpha blend, nor texture map in indexed mode, at least using OpenGL. 8 bit mode is a thing of the past, obsolete.
And yes, you need a palette for 8 bit mode. You could use a mode like
R2G3B2 (I don''t even know, if todays gfx card support such a mode, don''t think so), welcome back to old EGA times...
- AH
You can neither alpha blend, nor texture map in indexed mode, at least using OpenGL. 8 bit mode is a thing of the past, obsolete.
And yes, you need a palette for 8 bit mode. You could use a mode like
R2G3B2 (I don''t even know, if todays gfx card support such a mode, don''t think so), welcome back to old EGA times...

- AH
quote:
Original post by Anonymous Poster
Most modern 3D cards do not accelerate the 8 bit indexed mode at all, so it's going to be extremely slow.
And yes, you need a palette for 8 bit mode. You could use a mode like
R2G3B2 (I don't even know, if todays gfx card support such a mode, don't think so), welcome back to old EGA times...
- AH
Are you sure? I got the same idea (programming in 8-bit mode) because I wanted my programs to run in computers that lacked 3D accelerator. Then I realized that Quake 2 does that! I played this game in software mode in my P166 and it ran very well at low resolution (I don't remember if it was 320*200 or 320*240). Think WinQuake too.
If you set a lower resolution and use smaller textures, I don't think that your program will be slowish.
BTW, this is just my opinion

Edited by - azdo on January 27, 2002 3:25:04 PM
January 27, 2002 03:46 PM
Well, I don''t know 100%, I never actually bothered trying it.
I know, that all new nVidia and ATI cards do not support accelerated indexed modes. Minimum is 16bit. The MS OpenGL software renderer supports it, AFAIK, but I really doubt you can use textures and blending.
The official OpenGL specs say (concerning texturing in 8bit mode): ''Texturing is specified only for RGBA mode; its use in color index mode is undefined.'' And concerning blending it says: ''Blending applies only in RGBA mode; in color index mode it is bypassed.''
So, after all, even if got it working in 8bit, it would be pretty much useless, who wants an OGL without textures and blending nowadays ?
I''m not very much into Quake, but didn''t Q1 & Q2 use a proprietary software renderer, if hardware acceleration is not available ? I know that Unreal & co run very smoothly on lowres 8bit modi, but this is no OpenGL, it''s a self-made software renderer.
- AH
I know, that all new nVidia and ATI cards do not support accelerated indexed modes. Minimum is 16bit. The MS OpenGL software renderer supports it, AFAIK, but I really doubt you can use textures and blending.
The official OpenGL specs say (concerning texturing in 8bit mode): ''Texturing is specified only for RGBA mode; its use in color index mode is undefined.'' And concerning blending it says: ''Blending applies only in RGBA mode; in color index mode it is bypassed.''
So, after all, even if got it working in 8bit, it would be pretty much useless, who wants an OGL without textures and blending nowadays ?
I''m not very much into Quake, but didn''t Q1 & Q2 use a proprietary software renderer, if hardware acceleration is not available ? I know that Unreal & co run very smoothly on lowres 8bit modi, but this is no OpenGL, it''s a self-made software renderer.
- AH
how they set software mode? i will save you some trouble in searching through the source. quake AND quake2 use a 100% software engine that is not based in opengl at ALL! in fact they use directdraw and do ALL the rendering themselves.
unreal and ut both run in 16bit mode. they support colored lighting. hl also (while based on qaukeworld) use a 16bit software engine as well.
if you want non accelerated 3d, you will have to write the engine yourself, or you could learn to use d3d and go that route. though you will have to use older version of d3d since dx8 has removed software rendering (since it really is useless unless you customize and optimize it for your particular needs in rendering).
8bit mode is the fastest mode due to half the ram usage and memory moves compared to 16bit and a quarter of 32bit. you also dont need to deal with shifts to get color components sinc you are only dealing with indexs. creating a good pallete is difficult though.
NO video card supports a non palleted 8bit mode. when i say NO, i mean not in windows using directdraw or windows in general. you could use the older video modes (you will need to be in DOS for most of them to work) which must be accessed via some assembly (which you should get comfortable with anyway since that is the only way you will get a faster triangler rastirizer). besides the 8bit pallete mode is much more useful due to more varied colors then any mode that splits up the 8bits for component colors since you have very few bits to work with greatly reducing your colors.
as to alphablending, forget it. while quake2 did alpha blending, it was quite crappy looking. you will not get varied colors at all which is why quake1/quake2 are very brownish. you may consider stipple alpha blendng which is basically drawing every other pixel of the poly.
texturing, can be done. though you will NOT want to do any filtering because it will seriously impact your performance. also dont expect to get anywhere near the performance that quake2 got, it was optimixed in hand coded assmebly by coders that know 3d quite well and know assmebly quite well.
you should get a new video card. a duron 950mhz with a 4mb video card that does not support opengl (i find that hard to believe since the ati rage pro supports hardware opengl as does the intel chipset, and dont forget the nvidia cards) is quite pathetic, especially when the geforce2mx is VERY cheap now. if you got a motherboard video card, they you got taken big time, look into getting a pci video card and disabling your onboard agp card via the device maneger (no garuntees though). because that would mean my old 266 with 12mb voodoo2 would run games better then your system which is quite silly. though the agp ati rage pro in the system (4mb) did run opengl apps, though slow and buggy, they worked.
i suggest looking into using d3d for 3d since the older version support softare modes. also d3d is supported better on older cards. just dont expect blazing framerates or to be able to do many of the swooby effects that are possible with a slightly newer card (even a 12mb voodoo2 would be better and probally only cost $20 if you found one, though i bet you could get a 32-64mb voodoo5 for about double (maybe triple) that price).
though the real problame is that you NEED a new video card.
as to the ap, he most likly is just coding the stuff for himself to learn and will not realse it. otherwise he would not make such a ridiculous claim as to want to use 8bit modes because his hardware does not support gl. truly anything done in 8bit mode must be done well and use the pallete to its full potential to even be considered for release. most things are done in 16bit mode thanks to agp and faster cpus. a duron 950 with an agp video card (even a pci) shoudl be able to pull of at least 400x300x16 in a 3d game done software (assuming you did a sem decent job optimizing). though the graphics will be blocky due to no filtering, and you will have to create the entire engine plus api yourself. you will learn a lot and will appreciate d3d and gl much more. look on the bright side, you wont need to add all the whiz bang effects that the video cards can do in hardware. nor everythign that opengl/d3d have to offer when probally accelerated. this greatly reduces work load.
if you really want to do a software 3d engine i suggest only implemneting the following features:
1. texturing, (no filtering)
2. flat vertex lighting (later do gouard lighting, which is just cross fading the colors at the vertices)
3. alpha blending (only full poly, later you can look into using gourd style blending or per texel alpha values)
4. z buffer (a must since it can really help speed things up)
5. back face culling
EDIT:
you could look into mesa opengl since it has a software mode that may be faster then ms software renderer. though i think you will want to stick with 16bit mode for that and keep resolution low and flitering OFF.
Edited by - a person on January 27, 2002 5:37:10 PM
unreal and ut both run in 16bit mode. they support colored lighting. hl also (while based on qaukeworld) use a 16bit software engine as well.
if you want non accelerated 3d, you will have to write the engine yourself, or you could learn to use d3d and go that route. though you will have to use older version of d3d since dx8 has removed software rendering (since it really is useless unless you customize and optimize it for your particular needs in rendering).
8bit mode is the fastest mode due to half the ram usage and memory moves compared to 16bit and a quarter of 32bit. you also dont need to deal with shifts to get color components sinc you are only dealing with indexs. creating a good pallete is difficult though.
NO video card supports a non palleted 8bit mode. when i say NO, i mean not in windows using directdraw or windows in general. you could use the older video modes (you will need to be in DOS for most of them to work) which must be accessed via some assembly (which you should get comfortable with anyway since that is the only way you will get a faster triangler rastirizer). besides the 8bit pallete mode is much more useful due to more varied colors then any mode that splits up the 8bits for component colors since you have very few bits to work with greatly reducing your colors.
as to alphablending, forget it. while quake2 did alpha blending, it was quite crappy looking. you will not get varied colors at all which is why quake1/quake2 are very brownish. you may consider stipple alpha blendng which is basically drawing every other pixel of the poly.
texturing, can be done. though you will NOT want to do any filtering because it will seriously impact your performance. also dont expect to get anywhere near the performance that quake2 got, it was optimixed in hand coded assmebly by coders that know 3d quite well and know assmebly quite well.
you should get a new video card. a duron 950mhz with a 4mb video card that does not support opengl (i find that hard to believe since the ati rage pro supports hardware opengl as does the intel chipset, and dont forget the nvidia cards) is quite pathetic, especially when the geforce2mx is VERY cheap now. if you got a motherboard video card, they you got taken big time, look into getting a pci video card and disabling your onboard agp card via the device maneger (no garuntees though). because that would mean my old 266 with 12mb voodoo2 would run games better then your system which is quite silly. though the agp ati rage pro in the system (4mb) did run opengl apps, though slow and buggy, they worked.
i suggest looking into using d3d for 3d since the older version support softare modes. also d3d is supported better on older cards. just dont expect blazing framerates or to be able to do many of the swooby effects that are possible with a slightly newer card (even a 12mb voodoo2 would be better and probally only cost $20 if you found one, though i bet you could get a 32-64mb voodoo5 for about double (maybe triple) that price).
though the real problame is that you NEED a new video card.
as to the ap, he most likly is just coding the stuff for himself to learn and will not realse it. otherwise he would not make such a ridiculous claim as to want to use 8bit modes because his hardware does not support gl. truly anything done in 8bit mode must be done well and use the pallete to its full potential to even be considered for release. most things are done in 16bit mode thanks to agp and faster cpus. a duron 950 with an agp video card (even a pci) shoudl be able to pull of at least 400x300x16 in a 3d game done software (assuming you did a sem decent job optimizing). though the graphics will be blocky due to no filtering, and you will have to create the entire engine plus api yourself. you will learn a lot and will appreciate d3d and gl much more. look on the bright side, you wont need to add all the whiz bang effects that the video cards can do in hardware. nor everythign that opengl/d3d have to offer when probally accelerated. this greatly reduces work load.
if you really want to do a software 3d engine i suggest only implemneting the following features:
1. texturing, (no filtering)
2. flat vertex lighting (later do gouard lighting, which is just cross fading the colors at the vertices)
3. alpha blending (only full poly, later you can look into using gourd style blending or per texel alpha values)
4. z buffer (a must since it can really help speed things up)
5. back face culling
EDIT:
you could look into mesa opengl since it has a software mode that may be faster then ms software renderer. though i think you will want to stick with 16bit mode for that and keep resolution low and flitering OFF.
Edited by - a person on January 27, 2002 5:37:10 PM
Firstly ... FYI - quake 2 used openGL - NOT D3D. before making snotty posts, please get your facts right. To Clarify that - id used function pointers to the actual functions within the MCD, supporting GLIDE. But that is effectively OpenGL - not quite - but nowhere near D3D!
Secondly - a lot of people come here to find out about playing with OpenGL ... they don''t intend to release anything. Knocking them doesn''t do anyone any favours.
Thirdly - The reason I looked at OpenGL to start with was because I had to do medical data aquasition/visualisation, using NON OpenGL hardware. But OpenGL in software is still much better than straight GDI stuff.
Fourthly, and most importantly - Knocking others who are trying to learn about something they enjoy isn''y very clever at all, is it? You made some valid point''s ... but your attitude lets you down.
Chill out lad ... If you have a valid point then make it - if you only want to knock people like Fernando ... then bite your tongue.
Making sarcastic comments is one thing ... but you were downright rude. I personally think you owe him an apology.
Secondly - a lot of people come here to find out about playing with OpenGL ... they don''t intend to release anything. Knocking them doesn''t do anyone any favours.
Thirdly - The reason I looked at OpenGL to start with was because I had to do medical data aquasition/visualisation, using NON OpenGL hardware. But OpenGL in software is still much better than straight GDI stuff.
Fourthly, and most importantly - Knocking others who are trying to learn about something they enjoy isn''y very clever at all, is it? You made some valid point''s ... but your attitude lets you down.
Chill out lad ... If you have a valid point then make it - if you only want to knock people like Fernando ... then bite your tongue.
Making sarcastic comments is one thing ... but you were downright rude. I personally think you owe him an apology.
quote:
Original post by Shag
Firstly ... FYI - quake 2 used openGL - NOT D3D. before making snotty posts, please get your facts right. To Clarify that - id used function pointers to the actual functions within the MCD, supporting GLIDE. But that is effectively OpenGL - not quite - but nowhere near D3D!
He never said Quake 2 used D3D, he said they used DirectDraw, and he''s right (for the software rasterizer). I agree his attitude was a bit aggressive, but he did make many many valid points and all in all I think his was a helpful post.
http://www.deakin.edu.au/~bradleyj/unsanity/
I can''t dispute the D3d thing ... because I deleted the source code a while back.
BUT - I still don''t think the id ever used DD ... but I may be wrong. I just remember all the posts that Carmack did against DX.
But who cares anyway! lol
BUT - I still don''t think the id ever used DD ... but I may be wrong. I just remember all the posts that Carmack did against DX.
But who cares anyway! lol
Huumm... now I''m getting confused....
Thanks for all your posts guys, but Each one of you wrote oposing ideas...
The ''Anonymous Poster'' said I can''t use Texture Mapping and Alpha Blending in Color Indexed Mode, and after, ''a person'' said I can do texturing on it.
1) Can I do or can''t do Texture Mapping and Alpha Blending in Color-Indexed Modes?
I think in the RED BOOK, there''s a page that tells that We can DO these, but it''ll not be good like in RGBA mode.
2) Forgetting 8-bit mode, and talking about 16-bit color-indexed mode, DO you think this mode will run faster than 16-bit RGBA mode?
thank you again guys.!!!
Thanks for all your posts guys, but Each one of you wrote oposing ideas...
The ''Anonymous Poster'' said I can''t use Texture Mapping and Alpha Blending in Color Indexed Mode, and after, ''a person'' said I can do texturing on it.
1) Can I do or can''t do Texture Mapping and Alpha Blending in Color-Indexed Modes?
I think in the RED BOOK, there''s a page that tells that We can DO these, but it''ll not be good like in RGBA mode.
2) Forgetting 8-bit mode, and talking about 16-bit color-indexed mode, DO you think this mode will run faster than 16-bit RGBA mode?
thank you again guys.!!!
I think all these posts have thoroughly confused you, but I''ll try and help you.
You can use an 8bit screen mode in any OpenGL environment, but most companies don''t bother wasting time and money to have their hardware support it, so if you are running in 8bit mode chances are you are running in the OpenGL software implementation. You can still do all/most of what OpenGL offers in the other color modes, it just won''t look pretty. It''s also gonna be slow, since you''re not using the hardware to rasterize your primatives.
If you want to do 3D in an 8bit color mode, then write your own software rasterizer. It will be faster, and that''s what Quake2 does when you run it with their software rasterizer. Yes it does use DDraw in the end, but it doesn''t use it for blitting for very much, if anything at all, just for direct access to the hardware and VRAM.
Doing that is somewhat of a big undertaking, so make sure your linear algebra at least is up to par.
------------
- outRider -
You can use an 8bit screen mode in any OpenGL environment, but most companies don''t bother wasting time and money to have their hardware support it, so if you are running in 8bit mode chances are you are running in the OpenGL software implementation. You can still do all/most of what OpenGL offers in the other color modes, it just won''t look pretty. It''s also gonna be slow, since you''re not using the hardware to rasterize your primatives.
If you want to do 3D in an 8bit color mode, then write your own software rasterizer. It will be faster, and that''s what Quake2 does when you run it with their software rasterizer. Yes it does use DDraw in the end, but it doesn''t use it for blitting for very much, if anything at all, just for direct access to the hardware and VRAM.
Doing that is somewhat of a big undertaking, so make sure your linear algebra at least is up to par.
------------
- outRider -
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement