Mailing List
Home
Forum Home
Softimage
Carrara
trueSpace
Dir3d-l
Maya - a powerful 3D animation and visual effects software
Macromedia Flash Development
Subjects
Subject: Cameras
Subject: scaleDown command
Subject: black out solved
Subject: Aircraft Tutorial
Subject: Mathematical XYZ ?
Subject: Re: Its done This vs That
Subject: Re: Its done first week
recommendations for screen video captures?
Subject: 3DExplorer "Oddity "
Subject: Re: New Director
Subject: ProTeam renewals
Fuel 's new websites (X post)
Blue peter create a make toy
targeting groups question
XPost: Shockwave 3D game ( sort of )
Subject: RES: RES: RES: Fish Modeling
Emitting particles from object intersection
Fuel 's new websites (X post)
Subject: Re: Texturing
Big Break Contest Videos
Subject: New Plugins
Models and Texture on my updated site
Error Installing Patch tS6 6
Subject: Plasma?
Looking for Inspiration
Subject: Weird EMail Q
Subject: Re: It 's done first week ?
Subject: Cherry not cranberry
Subject: Re: New game
Camera Animation Problem
Subject: Particle plugins?
 
Generating a heightmap

Generating a heightmap

2004-02-24       - By Ian Thomas

 Back
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

They're not all flat to the floor, sadly. :) Which I _think_ (and am
willing to be corrected) means I still have to run through a lot of
clipping.

Thanks,
  Ian

> -- --Original Message-- --
> From: dir3d-l-bounces@(protected)
> [mailto:dir3d-l-bounces@(protected)] On Behalf Of
> Danny Kodicek
> Sent: 24 February 2004 13:34
> To: dir3d-l@(protected)
> Subject: Re: [Dir3d-l] Generating a heightmap
>
>
> It sounds like you're overworking it, really. If they're just
> boxes, then determining which tiles each box overlaps is
> fairly trivial, and then it's simply a matter of calculating
> the maximum height of each box that overlaps a particular
> tile. I assume they're flat to the floor - if they could be
> tilted then it's a bit more complicated (but not obscenely so)
>
> I'd probably do it as you build the level: each time you
> place a box, calculate which tiles it overlaps and adjust
> their max_height property accordingly.
>
> Danny
>
> -- -- Original Message -- --
> From: "Ian Thomas" <ian@(protected)>
> To: <dir3d-l@(protected)>
> Sent: Tuesday, February 24, 2004 1:17 PM
> Subject: [Dir3d-l] Generating a heightmap
>
>
> > Hi guys,
> >
> > I've been wrestling with this one for a while, and wondered
> if anyone
> > had any inspiration.
> >
> > The setup: I've got a finite plane (the 'floor') of 240x240 at y=0,
> > scattered around which may be an arbitrary number of solids (the
> > contents of the room). The solids are just #box primitives, scaled,
> > rotated and translated but still essentially boxes.
> >
> > I've divided the room into tiles of 12x12 for pathfinding purposes.
> >
> > Basically I need to establish what the highest point is
> within in each
> > tile. (Note this may not be a vertex, as objects could
> cheerfully span
> > tiles without having a vertex within a tile.)
> >
> > The routine I'm building is for precalcing the heightmap,
> so doesn't
> > need to be blistering - however, I'd like it to be pretty
> fast as my
> > room editing utility needs to rebuild on a regular basis. :)
> >
> > Approaches I've tried:
> >
> > Brute force:
> > -- ---- ----
> > - Apply a meshdeform to each object.
> > - For each tile:
> >   - Discard objects whose bounding sphere is nowhere near.
> >   - For each valid object, use Sutherland-Hodgeman clipping on each
> > face. If any of the face is inside, use the clipped
> vertices and take
> > the max height.
> >
> > This seems to work very well, but is exceedingly slow; add
> to that I
> > get occasional anomalies and wonder if my S-H clipping
> implementation
> > has holes in (if anyone can point me at a good bit of sourcecode in
> > whatever language then I'd appreciate it).
> >
> > Collision:
> > -- ---- --
> > - Turn on collision detection for the relevant objects
> > - For each tile:
> > - Move a tile-shaped solid upwards from y=0 upwards until it stops
> > colliding. That's the max height.
> >
> > This works okay, is slow, requires updatestages and sleeps
> to make the
> > collision callback work, and the collision doesn't seem to be 100%
> > accurate.
> >
> > Raycasting:
> > -- ---- ---
> > - For each tile
> > -     Cast a network of angled rays downwards towards the
> floor (within
> > the volume of the tile) - the heighest point hit by a ray
> is the max
> > height for the tile.
> >
> > This lacks precision - sometimes very thin blocks escape
> the net. :(
> > To catch those, you need more rays. The more rays, the slower it is.
> >
> > Things I thought of but haven't tried:
> >
> > Additive:
> > -- ------
> > - Reverse the process, and actually build the heightmap as
> I build the
> > map - for each object, work out which tiles it lies in and
> set heights
> > appropriately.
> >
> > To be honest, I gave up on the maths for this in favour of
> trying the
> > other things. It sounds plausible but I still need to do lots of
> > clipping. :(
> >
> > Any blindingly obvious solutions that I've missed? If not, I think
> > next step is to look at the additive solution using
> > Sutherland-Hodgeman
> > *sigh* but it ain't pretty. :)
> >
> > TIA,
> > Ian
> >
> > __ ____ ____ ____ ____ ____ ____ ____ ____ ____
> > Dir3d-l mailing list
> > Dir3d-l@(protected)
> > http://nuttybar.drama.uga.edu/mailman/listinfo/dir3d-l
>
> __ ____ ____ ____ ____ ____ ____ ____ ____ ____
> Dir3d-l mailing list
> Dir3d-l@(protected)
> http://nuttybar.drama.uga.edu/mailman/listinfo> /dir3d-l
>

__ ____ ____ ____ ____ ____ ____ ____ ____ ____
Dir3d-l mailing list
Dir3d-l@(protected)
http://nuttybar.drama.uga.edu/mailman/listinfo/dir3d-l