Revision 2546,
1.4 KB
checked in by mattausch, 17 years ago
(diff) |
added new sampling strategies
|
Line | |
---|
1 | #ifndef _DifferenceSampling_H__
|
---|
2 | #define _DifferenceSampling_H__
|
---|
3 |
|
---|
4 | #include <vector>
|
---|
5 | //
|
---|
6 |
|
---|
7 | #include "common.h"
|
---|
8 | #include "Halton.h"
|
---|
9 |
|
---|
10 | namespace GtpVisibilityPreprocessor {
|
---|
11 |
|
---|
12 |
|
---|
13 |
|
---|
14 | /** This sampling strategy utilizes the spatial filter to find
|
---|
15 | areas that are likely to be visible.
|
---|
16 |
|
---|
17 | First the filter is applied. The difference set of objects (filtered pvs - unfiltered pvs) gives you the objects
|
---|
18 | which are not found visible yet but have a good probability that they are in fact visible, based on the current
|
---|
19 | state of the sampling and the size of the filter. In fact the difference set is a probably visible set.
|
---|
20 |
|
---|
21 | Idea:
|
---|
22 | We apply the filter for n times, each time with a higher filter radius. The difference set gives you the probable visible set.
|
---|
23 | Then we use a certain #random samples for sampling the view cell border + the object border.
|
---|
24 | We can use different filter sizes to estimate the probablility distribution. The objects shouldreceived samples
|
---|
25 | roughly according to their probability of becoming invisible.
|
---|
26 | */
|
---|
27 | class DifferenceSampling: public SamplingStrategy
|
---|
28 | {
|
---|
29 | public:
|
---|
30 | DifferenceSampling(Preprocessor &preprocessor);
|
---|
31 | /** Compute the difference set between filtered and unfiltered pvs.
|
---|
32 | */
|
---|
33 | void ComputeDifferenceSet(ViewCell *vc, ObjectContainer &differenceSet);
|
---|
34 |
|
---|
35 | private:
|
---|
36 |
|
---|
37 | virtual bool GenerateSample(SimpleRay &ray);
|
---|
38 |
|
---|
39 | };
|
---|
40 |
|
---|
41 |
|
---|
42 | }
|
---|
43 |
|
---|
44 | #endif
|
---|
45 |
|
---|
Note: See
TracBrowser
for help on using the repository browser.