|
Author Topic:   Vertex Morphing: Docs sure are vague!
xarny
New Member
posted February 14, 2000 08:32 PM            
Any of you guys got vertex morphing implemented? The ROAM doc sure doesn't go into much detail on how to compute T (which is some number between 0 and 1)

I've been trying to do this for awhile, with no luck

I'd greatly appreciate any knowledge you peeps may have...


xarn

IP:

Cthulhu
Member
posted February 15, 2000 12:40 PM            
Start from 0 and increase T in some interval.

I mean something like this:

for each time unit:
T = T + 0.01
if T >= 1 then stop counting

OR something like this:

T = millisecondsFromMorphingStart / 1000
if T >= 1 then stop counting

IP:

xarny
New Member
posted February 16, 2000 09:32 PM            
Well, I dont really want to increase it over time.. I want to increase it over distance..

My implementation is split only, and my last try at vertex morphing was to use the triangles priority difference from the target priority. It sorta worked, and a few things morphed, but popping was STILL everywhere..... thanx for your help so far..
(I still need good advice )

IP:

henryj
New Member
posted February 17, 2000 03:42 PM            
Vertex morphing has nothing to do with distance. It is entirely a time based technique.
Popping , as you know, is when a part of your mesh suddenly changes (adds or removes a triangle or vertex in one frame). Vertex morphing means gradually adding a vertex over time. This is done by duplicating an existing vertex and sliding it along an edge over TIME to it's new position. Damn hard to explain. Go to Huges Hoppe's homepage he's got an excellent mpeg (60Mb!!) that shows Vertex morphing in action really well. He's got a pdf too but it's a bit heavy going.

Henry

IP:

Bryan T
Member
posted February 17, 2000 04:32 PM            
Xarny,

You are right, morphing can be done with distance and frame variance instead of time. This is what Seumas is doing with his engine. Search the site for a message about morphing, I think there's some explanation back there.

Basically, if the priority of a split triangle is less than a certain amount from the frame priority, create a T=0..1 and store it with the mesh node. When rendering, adjust the point up or down from the interpolated height to the actual height by the value of T.

This gets tricky when you've got several levels of T's to apply. My morph code is WAY too hacky to be correct, but it does work about 90% of the time.

--Bryan

IP: