But i wonder if there is a way to trigger compiler errors in this case?
Here my fixed code:
- Code: Select all
class ModelNotify : public ndModelNotify
{
//...
void Update (/*ndWorld* const world, */ndFloat32 timestep)
{
model->Update(GetModel()->GetWorld(), timestep);
}
};
Would i get an error if i would add some 'virtual' in front of the void, or something like that?
I should not really ask such C++ beginner questions here, but feel free to help an OOP noob out

I think there really should be a way to make clear that i want to provide an implementation of a certain virtual function. It's not the first time simple signature changes break my stuff, and ther should be at least compiler warnings.
Regarding depth bias, i have never learned to use it. Reading the specs left me with confusion on what those API features exactly do. But iirc, there are two different forms of bias, both with their own related tools on the API side. Maybe one for a slope bias (acne) and the other for a constant offset (peter panning), but idk.
Personally i could fix acne by creating a plane from the shading normal and projecting my samples to that plane. So that's a form of slope bias i guess. The fix creates a discontinuity due to plane flipping cases, but it's in shadow and thus not visible. But i use a crazy expensive 4x4 region of samples. Only this way i could hide visible SM texels and fix all artifacts (acne, panning, and VSM leaks).
Yes, i did it! My shadows are practically free of all those known artifacts! It's possible! \:D/
But by getting there, i have also discovered new artifacts. They really are not bad, and i could call them 'high end artifacts'.

For the sky i want a procedural model, like this for example: https://www.shadertoy.com/view/slSXRW
But i hope there are simpler models to find.