|
| | Omni said: |
So I'm aware that the VDP1 has several interesting modes for drawing primitives (ex, half-translucent, shadow, etc.). But nowhere in that list do I see a mode (at least that I recall) which enables you to control the _degree_ of translucency.
|
I wrote up nice description of how the transparent sprites are managed and realized at the very end there's one VDP2 register I don't understand which throws part of the explanation into doubt. Oh well... 
The VDP1 can't do variable levels of translucency, but the VDP2 can. As the VDP2 reads out data from the VDP1 framebuffer, it can enable transparency between that pixel and the VDP2 graphics.
This means the interaction between transparent objects is between the VDP1 and VDP2 only. You couldn't draw a semi translucent sprite over another sprite as they are both VDP1 objects. This is a huge disadvantage IMO. You can, however, have translucent sprites over a VDP2 background layer.
| |
But this bring up an interesting question: is there any other possible way to fade a sprite, for instance? Even, er...sprites aligned parallel to the drawing plane (completely flat and 2D) still only have the same set of drawing options as other 3D primitives, so I would assume this means that there are no additional lucency options for them either.
|
You could specify all sprites to be transparent and adjust the associated transparency ratio register for a fade-in/fade-out. There are only 32 levels of transparency so it would be sort of rough.
| |
And is it possible to blend background layers variable..y? I recall that Radiant Silvergun seemed to have cloud and "machine energy" type layers that would fade in and out of opaqueness. How could these be done?
|
Yes, the Saturn can normally combine two background layers with 32 levels of transparency, and it has a special mode where three layers can be combined. You can't do any more than that, though.
| |
And how in the world can you fade the screen out, ex., like how NiGHTS does a fade to white when the level ends?
|
The color offset registers allow you to saturate the colors from a particular layer (backgrounds, sprites) towards the RGB value they specify. Making all the layers fade to black or white could be accomplished through this.
| |
I'd say maybe some palette trickery might be involved, but that would only work for 8-bit primitives. I don't really know how to control fading/blending/lucency/whatever of the RGB sprites and shapes. Is there a way to do this at all?
|
There is, but I don't know how it's done through the SBL/SGL. If you want a headache, read chapter 9 in the VDP2 manual. It explains everything but like the rest of the Saturn docs leaves plenty out. 
I got stuck at the definition of the SPCCN bits. It sounds like there are eight associated transparency levels you can specify based on the 3-bit color calculation field from a designated sprite type, but I don't know where SPCCN fits in. Does it supply supplementary data when there aren't enough SC bits in the sprite type? Does it set the absolute value that the SC bits must match for transparency to be enabled? I guess I need to test this. |