Sega Rally 2 shadows.
Arcade PCB:
Supermodel:
In Model3 also, the windscreen seems "discarded" by the snow & dust streams when they overlap. Surely due to the mentioned depth test, but probably also by the different rendering priority
HarryTuttle wrote:I've got instead a theory about the polygon orientation: I think that the Real3D keeps dynamically their face normals toward the camera, this resolves some issues in oceanhunter (the transparent helmets in attract mode), the atmosphere halo around Endor in some open space scene in SWT, etc. Maybe that could be how "shadow-polys" are rendered without flicker, instead of implementing a co-planar check every time.
I'm also sure that transparent-not-textured poly are rendered in another, separate, pass in the render pipeline. Last year I've made a proof-of-concept patch on the old engine and it fixed, for example, the priority (visibility) between the snow and the shadows in Sega Rally 2, maybe there're other cases.
Bart wrote:I don't understand what you mean here. Let's say I have two triangles: one transparent and one non-transparent, side by side, with the polygon normal of each pointing toward the camera. Both are visible because we are looking at their front face. Now as we move the camera around them (e.g., walk behind them), what are you suggesting would happen?
If we view them from the backside, the normals will point away from the camera and they should be culled away, right?
Bart wrote:Interesting. So you are saying that textured polygons are rendered in one pass (both transparent and non-transparent ones) but that non-textured transparent polygons are rendered separately? Or only non-textured polygons with this "shadow" or "layered" bit set?
// Let's assume a "RenderScene" function like this one:
// RenderScene (int priority, bool alpha, bool textured, bool tex_alpha, bool poly_alpha)
RenderScene (pri, false, false, false, false); // opaque/base textures
RenderScene (pri, true, false, false, true); // i.e. Sega Rally 2 shadows
RenderScene (pri, true, true, true, false); // i.e. Sega Rally 2 headlights
RenderScene (pri, true, true, true, true); // i.e. Sega Rally 2 dirt/snow
RenderScene (pri, true, true, false, true); // i.e. Sega Rally 2 car glasses
HarryTuttle wrote:Anyway, I mean what you said but with an exception: with opaque polys the double-sided bit is respected, while IMHO is ignored for transparent/translucent ones and set to be always sigle-sided. But when, in your example, we view them from the backside the hardware will flip the normals and will not be culled.
In the case of ECA colored balloons (yes, they're my obsession), we should normally see the outer side and the inner side 'cause of translucency and double side, instead from the footage analyzed, it seems that that there's always only one side shown.
Ian wrote:See if you can fix this one ..
Users browsing this forum: No registered users and 1 guest