[ODE] Proposal: Change Heightfield Origin

Martijn Buijs buijs512 at planet.nl
Thu Jul 13 09:01:20 MST 2006


Jason Perkins wrote:
 > Can you elaborate on why you think centering the origin complicates things?

When rendering a terrain, you usually start at [0,0] and loop through the vertices. Of course you 
can offset those as well, but at its simplest, the origin lies at [0,0]. If we'd offset the origin 
to the center, you need to take that in account in all your non ODE terrain calculations (quick 
height tests for AI etc).

I think in general it is easier to let the user to decide whether to offset it or not, rather than 
let some users correct it to get it back at [0,0]. However I agree that it just depends on what the 
user may find intuitive...

 > Yes, it is easy to apply an offset to change the origin, but I think
 > that's just another reason to make heightmaps behave like the other
 > primitives. You can always apply an offset to get the old behavior.

True, but it will be slightly less efficient if you don't want the offset.

David Walters wrote:
 > I've had a chance at changing this functionality now and it didn't go
 > very well. It's less efficient to do it naively and too significant a
 > change to totally redo for a different origin. I'm also getting
 > paranoid about offseting by half_width and half_depth which sounds
 > like a good way of introducing precision errors. I'm thinking that it
 > should be left as it is now...

That was sort of what I meant, but not sure if the precision loss is that significant.

 > If the geom was going to be used as a dynamic object then i'd push
 > hard to change this

In that case, I would have to agree with the both of you.

 > but as it's a collision oriented type I think
 > that it's not such an important issue.

Agreed.

 > For those of us running with real world data (eg derived from USGS
 > terrain datasets), double precision is actually very useful. What is
 > annoying is that there has to be two different compiled versions of the
 > codebase with either float or double precision. I work in a mixed world
 > where we have some of both contributing to models, so we really need to
 > have that mode where both paths are available simultaneously. Someone
 > said they were starting work on that, but not sure where that's got to
 > now. If nobody has started it after late august, I'll probably chip in
 > and do it. However, like several others on here, we have Siggraph to
 > deal with first so no immediate cycles.

Actually I've worked with USGS datasets before, and have never come across double precision data, I 
assume they exist but are probably rare. But I agree we should a 'double' path, if only for the sake 
of completeness.

I'd say:
1) we change the current 'float' data path from dReal to true 32-bit floats.
2) add additional 'double' 64-bit float path


Martijn


More information about the ODE mailing list