Changeset 1492


Ignore:
Timestamp:
09/26/06 12:42:41 (18 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/GtpVisibility.sln

    r1489 r1492  
    3939                {80DECC17-BDDD-4412-8CF8-F7C1C17A7436} = {80DECC17-BDDD-4412-8CF8-F7C1C17A7436} 
    4040                {7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D} 
    41         EndProjectSection 
    42 EndProject 
    43 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gui", "Preprocessing\gui\gui.vcproj", "{8E28F667-63A7-4F41-81D0-233B971BF247}" 
    44         ProjectSection(ProjectDependencies) = postProject 
    45         EndProjectSection 
    46 EndProject 
    47 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fractal", "Preprocessing\fractal\fractal.vcproj", "{00ED6D39-0F68-405F-AE02-B8886BACA7E2}" 
    48         ProjectSection(ProjectDependencies) = postProject 
    4941        EndProjectSection 
    5042EndProject 
     
    393385                {17F2C6F9-6101-430E-ABF4-71383868EF24}.Universal Unicode Release.ActiveCfg = Release|Win32 
    394386                {17F2C6F9-6101-430E-ABF4-71383868EF24}.Universal Unicode Release.Build.0 = Release|Win32 
    395                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Debug.ActiveCfg = Debug|Win32 
    396                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Debug.Build.0 = Debug|Win32 
    397                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Debug Static.ActiveCfg = Debug|Win32 
    398                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Debug Static.Build.0 = Debug|Win32 
    399                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Debug.ActiveCfg = Debug|Win32 
    400                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Debug.Build.0 = Debug|Win32 
    401                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Release.ActiveCfg = Release|Win32 
    402                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Release.Build.0 = Release|Win32 
    403                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Unicode Debug.ActiveCfg = Debug|Win32 
    404                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Unicode Debug.Build.0 = Debug|Win32 
    405                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Unicode Release.ActiveCfg = Release|Win32 
    406                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Unicode Release.Build.0 = Release|Win32 
    407                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Debug.ActiveCfg = Debug|Win32 
    408                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Debug.Build.0 = Debug|Win32 
    409                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Release.ActiveCfg = Release|Win32 
    410                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Release.Build.0 = Release|Win32 
    411                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Unicode Debug.ActiveCfg = Debug|Win32 
    412                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Unicode Debug.Build.0 = Debug|Win32 
    413                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Unicode Release.ActiveCfg = Release|Win32 
    414                 {8E28F667-63A7-4F41-81D0-233B971BF247}.DLL Universal Unicode Release.Build.0 = Release|Win32 
    415                 {8E28F667-63A7-4F41-81D0-233B971BF247}.mlrt.ActiveCfg = Release|Win32 
    416                 {8E28F667-63A7-4F41-81D0-233B971BF247}.mlrt.Build.0 = Release|Win32 
    417                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release.ActiveCfg = Release|Win32 
    418                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release.Build.0 = Release|Win32 
    419                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release Internal.ActiveCfg = Release|Win32 
    420                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release Internal.Build.0 = Release|Win32 
    421                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release Static.ActiveCfg = Release|Win32 
    422                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Release Static.Build.0 = Release|Win32 
    423                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Unicode Debug.ActiveCfg = Debug|Win32 
    424                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Unicode Debug.Build.0 = Debug|Win32 
    425                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Unicode Release.ActiveCfg = Release|Win32 
    426                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Unicode Release.Build.0 = Release|Win32 
    427                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Debug.ActiveCfg = Debug|Win32 
    428                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Debug.Build.0 = Debug|Win32 
    429                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Release.ActiveCfg = Release|Win32 
    430                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Release.Build.0 = Release|Win32 
    431                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Unicode Debug.ActiveCfg = Debug|Win32 
    432                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Unicode Debug.Build.0 = Debug|Win32 
    433                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Unicode Release.ActiveCfg = Release|Win32 
    434                 {8E28F667-63A7-4F41-81D0-233B971BF247}.Universal Unicode Release.Build.0 = Release|Win32 
    435                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Debug.ActiveCfg = Debug|Win32 
    436                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Debug.Build.0 = Debug|Win32 
    437                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Debug Static.ActiveCfg = Debug|Win32 
    438                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Debug Static.Build.0 = Debug|Win32 
    439                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Debug.ActiveCfg = DLL Debug|Win32 
    440                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Debug.Build.0 = DLL Debug|Win32 
    441                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Release.ActiveCfg = DLL Release|Win32 
    442                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Release.Build.0 = DLL Release|Win32 
    443                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Unicode Debug.ActiveCfg = DLL Unicode Debug|Win32 
    444                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Unicode Debug.Build.0 = DLL Unicode Debug|Win32 
    445                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Unicode Release.ActiveCfg = DLL Unicode Release|Win32 
    446                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Unicode Release.Build.0 = DLL Unicode Release|Win32 
    447                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32 
    448                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32 
    449                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32 
    450                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Release.Build.0 = DLL Universal Release|Win32 
    451                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Unicode Debug.ActiveCfg = DLL Universal Unicode Debug|Win32 
    452                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Unicode Debug.Build.0 = DLL Universal Unicode Debug|Win32 
    453                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Unicode Release.ActiveCfg = DLL Universal Unicode Release|Win32 
    454                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.DLL Universal Unicode Release.Build.0 = DLL Universal Unicode Release|Win32 
    455                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.mlrt.ActiveCfg = DLL Universal Release|Win32 
    456                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.mlrt.Build.0 = DLL Universal Release|Win32 
    457                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release.ActiveCfg = Release|Win32 
    458                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release.Build.0 = Release|Win32 
    459                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release Internal.ActiveCfg = Release|Win32 
    460                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release Internal.Build.0 = Release|Win32 
    461                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release Static.ActiveCfg = Release|Win32 
    462                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Release Static.Build.0 = Release|Win32 
    463                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Unicode Debug.ActiveCfg = Unicode Debug|Win32 
    464                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Unicode Debug.Build.0 = Unicode Debug|Win32 
    465                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Unicode Release.ActiveCfg = Unicode Release|Win32 
    466                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Unicode Release.Build.0 = Unicode Release|Win32 
    467                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Debug.ActiveCfg = Universal Debug|Win32 
    468                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Debug.Build.0 = Universal Debug|Win32 
    469                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Release.ActiveCfg = Universal Release|Win32 
    470                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Release.Build.0 = Universal Release|Win32 
    471                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Unicode Debug.ActiveCfg = Universal Unicode Debug|Win32 
    472                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Unicode Debug.Build.0 = Universal Unicode Debug|Win32 
    473                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Unicode Release.ActiveCfg = Universal Unicode Release|Win32 
    474                 {00ED6D39-0F68-405F-AE02-B8886BACA7E2}.Universal Unicode Release.Build.0 = Universal Unicode Release|Win32 
    475387        EndGlobalSection 
    476388        GlobalSection(ExtensibilityGlobals) = postSolution 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/include/CoherentHierarchicalCullingManager.h

    r345 r1492  
    3636        bool DecideVisible(HierarchyNode *node) const; 
    3737 
    38         unsigned int mAssumedVisibility; 
    39          
     38 
    4039        /** Skip query for this node. 
    4140        */ 
    4241        void SkipQuery(HierarchyNode *node) const; 
    4342 
     43        /** number of steps the visibility is assumed to be valid. 
     44        */ 
     45        unsigned int mAssumedVisibility; 
    4446 
    4547        /** Threshold for rand function to return positive result with respect to 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp

    r1489 r1492  
    3232                                                                                           const VssRay &oldRay) const 
    3333{ 
     34        //|predicted(x)-xp|-|hit(x)-xp| > ?, 
    3435    //const Plane3 plane = tri->GetPlane(); 
    3536        return false; 
     
    5758        new sample points around a triangle in a eps environment 
    5859*/ 
    59 static void CreateNewSamples(VertexContainer &samples,  
    60                                                         const Triangle3 &hitTriangle, 
    61                                                         const VssRay &ray,  
    62                                                         const int index, 
    63                                                         const float eps) 
     60static void CreateNewRays(SimpleRayContainer &simpleRays,  
     61                                                  const Triangle3 &hitTriangle, 
     62                                                  const VssRay &ray,  
     63                                                  const int index, 
     64                                                  const float eps) 
    6465{ 
    6566        const int indexU = (index + 1) % 3; 
     
    6970        const Vector3 b = hitTriangle.mVertices[indexU] - hitTriangle.mVertices[index]; 
    7071        const Vector3 c = hitTriangle.mVertices[index] - hitTriangle.mVertices[indexL]; 
     72         
    7173        const float len = Magnitude(a); 
     74 
     75        const Vector3 dir1 = CrossProd(a, b); //N((pi-xp)×(pi+1- pi)); 
     76        const Vector3 dir2 = CrossProd(a, c); // N((pi-xp)×(pi- pi-1)) 
     77        const Vector3 dir3 = DotProd(dir1, dir2) > 0 ?  
     78                Normalize(dir2 + dir1) : Normalize(CrossProd(a, dir2) + CrossProd(dir1, a)); // N((pi-xp)×di,i-1+di,i+1×(pi-xp)) 
    7279 
    7380        // compute the new three hit points 
    7481        // pi, i + 1 
    75         const Vector3 dir1 = CrossProd(a, b); //N((pi-xp)×(pi+1- pi)); 
    7682        const Vector3 pt1 = hitTriangle.mVertices[index] + eps * len * dir1; //pi+ e·|pi-xp|·di, j 
    77         samples.push_back(pt1); 
    78  
    7983        // pi, i - 1 
    80     const Vector3 dir2 = CrossProd(a, c); // N((pi-xp)×(pi- pi-1)) 
    81         const Vector3 pt2 = hitTriangle.mVertices[index] + eps * len * dir2; //pi+ e·|pi-xp|·di, j 
    82         samples.push_back(pt2); 
    83  
     84    const Vector3 pt2 = hitTriangle.mVertices[index] + eps * len * dir2; //pi+ e·|pi-xp|·di, j 
    8485        // pi, i 
    85         const Vector3 dir3 = DotProd(dir1, dir2) > 0 ?  
    86                 Normalize(dir2 + dir1) : Normalize(CrossProd(a, dir2) + CrossProd(dir1, a)); // N((pi-xp)×di,i-1+di,i+1×(pi-xp)) 
    8786        const Vector3 pt3 = hitTriangle.mVertices[index] + eps * len * dir3; //pi+ e·|pi-xp|·di, j 
    88         samples.push_back(pt3); 
    89 } 
    90  
    91  
    92 /** Generate rays from sample points. 
    93 */ 
    94 static void CreateRays(VssRayContainer &rays, 
    95                                            const VertexContainer &samples) 
    96 { 
    97         VertexContainer::const_iterator vit, vit_end = samples.end(); 
    98          
    99         for (vit = samples.begin(); vit != vit_end; ++ vit) 
    100         { 
    101                 const Vector3 currentSample = *vit; 
    102                 VssRay *ray;// = new VssRay(ray->mOrigin, currentSample); 
    103         } 
    104 } 
     87         
     88        /// create simple rays and store them in container 
     89        Vector3 rayDir; 
     90        rayDir = Normalize(pt1 - ray.GetOrigin()); 
     91        simpleRays.push_back(SimpleRay(rayDir, ray.GetOrigin())); 
     92        rayDir = Normalize(pt2 - ray.GetOrigin()); 
     93        simpleRays.push_back(SimpleRay(rayDir, ray.GetOrigin())); 
     94        rayDir = Normalize(pt3 - ray.GetOrigin()); 
     95        simpleRays.push_back(SimpleRay(rayDir, ray.GetOrigin())); 
     96} 
     97 
    10598 
    10699 
     
    117110        } 
    118111 
    119         VertexContainer samples; 
    120         samples.reserve(9); 
    121  
    122         CreateNewSamples(samples, hitTriangle, prevRay, 0, mEps); 
    123         CreateNewSamples(samples, hitTriangle, prevRay, 1, mEps); 
    124         CreateNewSamples(samples, hitTriangle, prevRay, 2, mEps); 
     112        SimpleRayContainer simpleRays; 
     113        simpleRays.reserve(9); 
     114 
     115        CreateNewRays(simpleRays, hitTriangle, prevRay, 0, mEps); 
     116        CreateNewRays(simpleRays, hitTriangle, prevRay, 1, mEps); 
     117        CreateNewRays(simpleRays, hitTriangle, prevRay, 2, mEps); 
    125118 
    126119        VssRayContainer vssRays; 
    127         CreateRays(vssRays, samples); 
    128  
    129         VssRayContainer::const_iterator rit, rit_end = vssRays.end(); 
    130          
    131         for (rit = vssRays.begin(); rit != rit_end; ++ rit) 
    132         { 
    133                 VssRay *ray = *rit; 
    134  
    135                 // discontinuity found?  
    136                 // schedule for reverse sampling or adaptive border sampling 
    137                 const bool gap = DiscontinuityFound(*ray, prevRay); 
    138                 mRayQueue.push(GvsRayInfo(ray, gap)); 
    139         } 
    140  
    141         return 9; 
    142 } 
    143  
    144  
    145 int GvsPreprocessor::ReverseSampling(const VssRay &ray) 
     120         
     121        CastRays(simpleRays, vssRays); 
     122        // add to ray queue 
     123        EnqueueRays(vssRays); 
     124 
     125        return (int)vssRays.size(); 
     126} 
     127 
     128 
     129int GvsPreprocessor::ReverseSampling(const VssRay &oldRay) 
    146130{ 
    147131        cout << "r" << endl; 
     
    165149         
    166150        // add to ray queue 
    167         EnqueueSamples(samples); 
     151        EnqueueRays(samples); 
    168152 
    169153        Debug << "generated " <<  numSamples << " samples in " << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl; 
     
    173157 
    174158 
    175 void GvsPreprocessor::EnqueueSamples(VssRayContainer &samples, VssRay *oldRay) 
     159void GvsPreprocessor::EnqueueRays(VssRayContainer &samples, VssRay *oldRay) 
    176160{ 
    177161        // add samples to ray queue 
     
    183167                mRayQueue.push(GvsRayInfo(*vit, gap)); 
    184168        } 
    185  
    186169} 
    187170 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.h

    r1489 r1492  
    4040        }; 
    4141 
     42        typedef stack<GvsRayInfo> RayQueue; 
    4243 
    43         typedef stack<GvsRayInfo> RayQueue; 
     44        struct PendingRay 
     45        { 
     46                PendingRay(VssRay *ray, const bool d) 
     47                        : mRay(ray), mFoundDiscontinuity(d)  
     48                {} 
     49 
     50                VssRay *mRay; 
     51                bool mFoundDiscontinuity; 
     52        }; 
     53 
     54        typedef stack<PendingRay> PendingQueue; 
    4455 
    4556        /** Runs the adaptive sampling until the ray queue is empty.  
     
    92103                with respect to the previous ray. 
    93104        */ 
    94         void EnqueueSamples(VssRayContainer &samples, VssRay *prevRay = NULL); 
     105        void EnqueueRays(VssRayContainer &samples, VssRay *prevRay = NULL); 
    95106         
    96107        ////////////////////// 
  • GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp

    r1486 r1492  
    127127                exit(1); 
    128128        } 
    129  
    130129 
    131130        string externKdTree = ReplaceSuffix(filename, ".obj", ".kdf"); 
Note: See TracChangeset for help on using the changeset viewer.