There are lots of smart guys here, and your code is not too shabby either, that's for sure. I must admit some bias - I am considering taking a crack at adding 32-bit color to my home port, and, I'd like to be compatible with your implementation.
I'm more than joyed to be able to add something to paint(or rather r_draw) Doom's prolonged existence as joyful as possible.
Many of you are clever engineers so I'm more than willing to strain my ears and listen to the accumulated expertise on this very board.
I like the fact that you've taken it to the next step - Sure, you've got 32-bit color, which is impressive, but you've also got neat sector and thing coloring stuff going on. Awesome.
In my home port, I did a bunch of work with colormaps, and I came up with some options that I haven't seen in other ports yet. I'll list them below, since you are talking about coloring distinct areas, such as mids.
I came up with these distinct abilities:
* Colored light - lite goggles remove colored light effect, otherwise effect is always fullbright. Affects walls, flats, things, and player gun.
* Light filter - lite goggles DO NOT remove light filter effect, which is also always fullbright. Basically used for looking thru colored glass.
* Fog - lite goggles remove fog effect mostly, otherwise fog light is scaled differently than normal. Affects walls, flats, things, and player gun.
* Paint - Colormap is used to "paint" floor and/or ceiling and/or walls, without affecting things, or player gun. Lite goggles DO NOT remove colored light effect, but lower light darkens
* Glow effect: Flats, walls, and things. Certain pixel colors can be set fullbright, with a special colormap, with no performance loss normally associated with brightmap lookup implementations. Bright pixels follow the above lighting rules, so they are affected by light filter and fog, but not colored light, or painted areas.
* Wall Splats: Also follow color, filter, and fog rules, and can be made fullbright, colored, or with glowing pixels.
I think I went overboard, but it's kinda neat to see. I'll try to upload some screenshots soon. I mention these to give you something to think about when you are deciding how many fields you'll need. Making all of these methods work in 32-bit color has been a frightening idea, for me, for a while now, but your port is providing a lot of motivation! As always, good luck.
That will make the difference. Once there's tool support, people will start trying to use it! And, then there's some pressure for other source ports to join in, which is a win-win.
As far as I'm concerned, I'm okay with adding editing support of special lumps to SLADE 3 if the implementation of said lump is reasonable and straightforward. I do want to eventually make SLADE 3 a full-fledged Doom64 editor so I will have to look at proper support for LIGHTS lump one of these days.
I do not see color banding in that screenshot. In fact, the room is too bright to see shadowing at all, to me. Do you mean the different shades on the far wall? Those walls are angled differently. Arguably, a nice "smooth fake contrast" algorithm like ZDoom's *should* shade those walls a bit. But, banding? I'm not seeing it. The colors in the 32-bit image do look very rich - see the pinkies. They're pink!
I installed the latest stable Odamex, enabled 32-bit color and the color banding was real. I am disappoint.