![]() | ||
![]() | Patches: Problems When Creating Patches | ![]() |
![]() |
One of the most common problems encountered when creating patches is that, after the seed has been placed, the wrong boundary is traced (see Figure 103). If this happens to you, hit the <Enter> key to abort the patch creation, make some adjustments to the seed or curves (see below), and try again.
![]() |
![]() |
![]() |
![]() |
![]() |
Figure 103. Wrong Boundary Traced |
![]() |
CySlice searches out from the seed point, in no particular direction, trying to find a piece of curve. When a curve is found, it is traced around to find an enclosed region. If the first piece of curve found is somehow part of a neighboring region, then the wrong boundary will be traced.
And why would the wrong curve be found? If some of the curves aren't fitting the polymesh closely enough, then sometimes the "searching out" process slips under the real boundary and finds the wrong one next door.
Imagine a paddock surrounded by a chain-link fence. If you drop a rabbit somewhere in the middle, it'll pick a direction and keep on running that way until it hits the fence. If the ground is particularly rugged, then it might be lucky enough to find a section of fence that doesn't quite reach all the way to the ground, maybe halfway between two posts, and it slips through.
One solution, if you are fencing a paddock, is to use more posts so that the fence hugs the ground undulations more closely. And if you are creating a patch, increase the curve precision so it hugs the polymesh more closely. Or you could move the seed point, and try again. The rabbit will run in a different direction, and almost always finds a section of fence it can't get through.
![]() | ![]() |
The boundary search problem occurs much less frequently
when the optional
|
Other patch creation problems are usually caused by unclosed
boundaries or overlapping curves, as described in the
"Seed Points and Enclosed Regions" section above.
![]() |
Problems When Fitting Patches |
![]() |
After a seed point is placed, and the boundary is traced, the patch is fitted to the polymesh in a three stage process. First a grid is constructed just from the shape of the boundary curves, next it is snapped to the polymesh, and finally the grid points are moved over the polymesh to equalize the spacing between the UV grid lines.
Under normal circumstances you would always want patches fitted
right through to the equalization stage as this produces the best results.
But if the fitting fails for some reason, it can be handy to step
through the process one stage at a time to see where the problem
might be.
![]() |
![]() |
![]() |
![]() |
![]() |
Figure 105. Single Patch Over Complex Shape |
![]() |
Figure 105 shows a single patch fitted to a relatively complex piece of polymesh. In the above case the fitting has worked perfectly. But if the patch UV dimensions are increased, then there's a chance that the fitting will fail (see Figure 106). The patch turns red to indicate that there's been a fitting problem.
![]() |
![]() |
![]() |
![]() |
![]() |
Figure 106. Fitting Failed When UV Dimensions Increased |
![]() |
If you step through the three fitting stages, its most likely failing at the second stage, when the initial grid points are snapped to the polymesh. This is because the outer boundary shape of the patch is quite flat, so the initial grid is quite flat, but the internal polymesh is very convoluted. The difference between the initial grid and the polymesh is quite high, so there is a greater chance that the point snapping will fail.
![]() |
![]() |
![]() |
![]() |
![]() |
Figure 107. Use More Patches |
![]() |
Figure 107 shows the solution to this fitting problem; use more patches in complex areas.
![]() | ![]() | However, in some situations you may not be able to change the network to fix the fitting problem (e.g. when creating matched morph targets). And so, in those cases, the patch fit points can be used to force some sort of output. |
![]() | ![]() | ![]() |