Yair Kurzion (yair++at++polygon.engr.sgi.com)
Thu, 18 Nov 1999 13:25:34 -0800 (PST)
> I need some help with paging ASDs and query geosets/triangles. Just as a
> refresher: I'm trying to move a textured tile over a paging ASD - the tile is
> tethered to the projection of the eye point on to the ASD. (The texture on the
> tile is being driven by a pfImageCache but this is irrelevant for the purposes
> of this discussion because the same behaviour occurs with a simple static texture)
>
> A week or so ago I asked whether query geosets/triangles actually work with
> paging ASDs. I've since found that they do work (sort of) if you add the query
> geosets/triangles to the ASD after the first evaluation cycle and frame sequence
> - seems as though there isnt any ASD data to align/project and tesselate until
> then. Can somebody tell me if this is the correct behaviour?
You got it right. Some things happen late in paging ASD's. It is an open bug
and we plan to address it in the next major release of Performer.
> Anyway, after having overcome this hurdle I find that the tile moves nicely for
> a short distance. Then triangle shaped holes start appearing in the tile, the
> edges become ragged and the tile disappears. Why?
I am not sure I understand what you are seeing. I can think of two potential
problems:
1. You are querying a polygon and request to receive the results in an array.
If the number of polygon fragments on the terrain is more that the array
can hold, pfASD will ignore the remaining fragments.
If you use a geoset to store the results, this will not happen.
The sample code pguide/libpf/C/ASD_decal.c uses fixed-size arrays to store
polygon query results.
The sample code pguide/libpf/C/ASD_decal2.c uses geosets to store query
results.
2. You may be seeing z-buffer fighting of the decal polygon and the ASD
polygons. When polygons z-fight you see fragments of one polygon appear
on top of fragments of another. This changes rapidly we your eyepoint
moves.
If this is the problem, you should add a DECAL state to the geostate of the
overlay polygons (The ones on top of the ASD geometry). The call:
pfGStateMode(gstate, PFSTATE_DECAL,
PFDECAL_LAYER_DISPLACE | PFDECAL_LAYER_7 | PFDECAL_LAYER_OFFSET);
should do the trick.
If none of the above work for you, can you send me a screen snapshot of the
problem ?
-yair
--
\_________ \_____ \__ \__ \_____ Yair Kurzion
\_________ \_____ \__ \__ \_____ yair++at++sgi.com
\__ \__ \____\__ \__ http://reality.sgi.com/yair
\__ \__ \__ Work: (650) 933-6502
\__ \__ \__ Home: (408) 226-9771
\__ \__ \__
This archive was generated by hypermail 2.0b2 on Thu Nov 18 1999 - 13:25:40 PST