|
|
In case the POV team hates sifting through all of those RTFMs to
find the real bugs, I've consolidated the bugs that I feel are
'real' here, along with pointers to any fixes that have been
suggested by people in this group. I also have a few new (and
not yet well tested) fixes to some old bugs here.
I have tested all of these bug fixes and they have fixed the
problem. Of course, side effects have not yet been thoroughly
investigated.
-Nathan Kopp
P.S. If the POV-Team has fixed these or plans to, I aggree with
Nieminen that we'd appreciate some feedback. ;)
=========================
double sided illumination
=========================
thread: "simple incorrect shading of bicubic patch example"
bug: Bicubic patches and smooth triangles are double-illuminated
by default (and this cannot be turned off). Not really a
'bug', but it is not consistent.
fix: new "double_illuminate" keyword
see http://nathan.kopp.com/patched.htm - not well tested
=========================
image map interpolation
=========================
thread: "interpolate wraparound & once"
bug: Interpolation assumes wrap-around even when the once keyword
is used.
fix: not done yet.. shouldn't be too hard
=============================
symbol table & infinite macro
=============================
thread: "POV 3.1 Infinite Recursion Bug-Fix"
bug: When the maximum number of symbol tables is reached, POV
calls Destroy_Table with an incorrect index, causing a
crash
fix: See the thread. Nigel Stewart provides a good fix.
=========================
Prism bug
=========================
thread: "Potential render bug in POV"
bug: Ghost line appears sometimes when rendering a prism. The
cause has not been determined. Note, the example given
is not very good, but all objects except the prism can be
removed from the scene and the bug remains.
fix: unknown
========================================
Renderer lockup (affects Win95 at least)
========================================
thread: "Bug: divide by zero in scene file causes renderer to hang"
bug: The line "rotate <0,0,360/clock>" supposedly causes the renderer
to lock up. I have not tried to confirm this bug.
fix: unknown
=========================
Another prism bug
=========================
thread: "prism, linear spline, conic sweep bug"
bug: Incorrect rendering of a conic sweep prism
fix: See the thread. Darius Davis provides a fix.
=========================================
Large EPSILON value in Windows CONFIG.INI
=========================================
thread: -
bug: CONFIG.INI in DOS and Windows sets EPSILON to 10e-5, which
causes all sorts of problems when rendering very small or very
large objects.
fix: Change EPSILON to something smaller, like 10e-12
=========================
4d vector bug
=========================
thread: "Can't define 4d vectors"
bug: 4D & 5D vectors can't be defined as the documentation says
they can be.
fix: Change the documentation. Only 3d vectors can be defined.
4D and 5D COLORS can be defined, but not vectors.
=========================
2d vector bug
=========================
thread: "2-d vector components (uv) bug"
bug: When 2d vectors are defined, the number of components is not
set properly in EXPRESS.C, so the components cannot be accessed
using the dot operators (e.g. a.x works but a.y does not)
fix: This requires two changes, both in EXPRESS.C:
1) In Parse_Num_Factor(), around line 624, add the line
shown below (with surrounding lines included):
---------------
CASE (LEFT_ANGLE_TOKEN)
*Terms=2; /* NK 1998 - added this line (suggested by Thomas Willhalm)*/
Express[X] = Parse_Float(); Parse_Comma();
Express[Y] = Parse_Float(); Parse_Comma();
---------------
2) In Parse_Vector_Float(), right before the line
"Have_Vector=(Terms==3);", add:
---------------
/* NK 1998 - promote all 2-component vectors to 3-component vectors...
this fixes various 2-component vector bugs */
if (Terms==2)
Terms++;
/* NK ---- */
---------------
=========================
normal average bug
=========================
thread: "Is the average normal bug fixed yet?"
bug: Error with average normals (and other normals, too), caused
by flipping the surface normal after perturbing it.
fix: This is fixed by the changes made to "compute_lighted_texture()"
made when fixing the reflection bug.
It basically consists of moving the code that flips the
direction of the RawNormal to the very top of the function so
that it always executes. The normal-flipping code in the
normal-perturbing loop then must be removed.
=========================
Reflection bug
=========================
thread: "Reflection Bug?"
bug: You can see through reflective surfaces when perturbed normals
are used. For an explanation, see the thread.
fix: See the thread. I (Nathan) provide a fix which also fixes the
normal average bug.
=========================
#local 'bug'
=========================
thread: "#local 'bug' cripples usefulness"
bug: Actually, it's a limitation. Basically, when you have a local
variable, it must be of the same type as the non-local variable
if a variable of that name already exists. The title of the
thread says it all. I'm going to put a personal gripe here:
I really hate the error "Attempted to redefine float identifier
as vector". I should be able to redefine anything as anything
else whenever I want to (with a warning, of course).
fix: I've got an educated guess here:
Change Test_Redefine() (in PARSE.C) to look like this:
--------
void Test_Redefine(TOKEN Previous, TOKEN *NumberPtr, void *Data)
{
char *oldt, *newt;
if ((Previous == IDENTIFIER_TOKEN) || (Previous == EMPTY_ARRAY_TOKEN))
{
return;
}
Destroy_Ident_Data(Data,Previous);
}
----------
Note: This gets rid of ALL redefine errors, not just ones
associated with local variables.
Warning: This may have some problems, but I just tried
it and it seemed to work. First, I could easily re-define
a float as a vector or even a texture as a float. The I put
it to a great test: I made a macro that used a local variable
that had the same name as a normal in my scene (and declared
it to be a vector). Then I called the macro between the
normal's declaration and it's use. In the official POV, it
failed. In my compile, everything worked.
Post a reply to this message
|
|