I was about to write this into the "[Patch] Sun Shading" topic, anyway...
Ian wrote:It might have been the hardware didn't do floating point math at that stage of the graphics pipeline for step 1.0
It seems that you're right about that hw level limitation, at least I did't find any link to GPU configuration bits. I believe that, regarding sunlight ceil clamping to "1", the current behavior could be summarized as below:
- Code: Select all
-----------------------------------------
HW step level | illuminated | luminous |
| polygons | polygons |
| clamping | clamping |
---------------+-------------+----------|
step 1.0 | YES | YES |
---------------+-------------+----------|
step 1.5 | | |
(sun shaded) | NO | NO(1) |
---------------+-------------+----------|
step 1.5 | | |
(fixed shaded) | NO | NO(1) |
---------------+-------------+----------|
step 2.x | | |
(sun shaded) | NO | YES |
---------------+-------------+----------|
step 2.x | | |
(fixed shaded) | NO | ???(2)|
-----------------------------------------
NOTES:
(1) The current formula for luminous polys, visually confirmed, seems to be:
- Code: Select all
// Pseudo-code
// Note the subtle difference for the "ambient" term
if (!fixedShaded) {
ambient = 0.5;
diffuse = 1.0;
}
else {
ambient += 0.5;
diffuse = 1.0;
}
(2) In this case I'm tempted to write "YES" it's clamped, some game needs that. However there're Virtua Striker 2 and its updated versions (98, 99, etc.) which are present also in step 1.5 "flavor". If I clamp the luminous fixed shaded value they will mismatch the lightness and saturation of the step 1.5 variant.
Look at the attract demo, for example, and pay attention to the billboard object displaying the team names along with game result, comparing to icuk7's video of Virtua Striker 2 it's clear that the value is unclamped. I wonder if he used the step 1.5 or 2.0 version, in the latter case it could be very probable that the game configures hardware clamping mode in real-time, but how?