Changeset 1524


Ignore:
Timestamp:
09/28/06 09:35:15 (18 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/Preprocessing/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp

    r1523 r1524  
    7171        mViewCellsManager->ComputeSampleContribution(*vssRay, true, false); 
    7272 
    73         if ((vssRay->mPvsContribution - oldContri) > 0) // new contribution 
     73         // some pvs contribution for this ray? 
     74        if ((vssRay->mPvsContribution - oldContri) > 0) 
    7475        { 
    7576                //cout << "h"; 
     
    9495        const int indexL = (index == 0) ? 2 : index - 1; 
    9596 
    96         const Vector3 a = hitTriangle.mVertices[index] - ray.GetDir(); 
     97        const Vector3 a = hitTriangle.mVertices[index] - ray.GetOrigin(); 
    9798        const Vector3 b = hitTriangle.mVertices[indexU] - hitTriangle.mVertices[index]; 
    9899        const Vector3 c = hitTriangle.mVertices[index] - hitTriangle.mVertices[indexL]; 
     
    102103        const Vector3 dir1 = Normalize(CrossProd(a, b)); //N((pi-xp)×(pi+1- pi)); 
    103104        const Vector3 dir2 = Normalize(CrossProd(a, c)); // N((pi-xp)×(pi- pi-1)) 
    104         const Vector3 dir3 = DotProd(dir1, dir2) > 0 ? // N((pi-xp)×di,i-1+di,i+1×(pi-xp)) 
    105                 Normalize(dir2 + dir1) : Normalize(CrossProd(a, dir2) + CrossProd(dir1, a));  
     105        const Vector3 dir3 = DotProd(dir2, dir1) > 0 ? // N((pi-xp)×di,i-1+di,i+1×(pi-xp)) 
     106                Normalize(dir2 + dir1) : Normalize(CrossProd(a, dir1) + CrossProd(dir2, a));  
    106107 
    107108        // compute the new three hit points 
     
    113114        const Vector3 pt3 = hitTriangle.mVertices[index] + eps * len * dir3; 
    114115         
     116        vertices.push_back(pt2); 
     117        vertices.push_back(pt3); 
    115118        vertices.push_back(pt1); 
    116         //vertices.push_back(pt2); 
    117         vertices.push_back(pt3); 
    118119} 
    119120 
     
    196197        { 
    197198                hitTriangle = dynamic_cast<TriangleIntersectable *>(tObj)->GetItem(); 
    198                 cout << "t: " << hitTriangle << endl << endl; 
    199199        } 
    200200        else 
     
    217217        { 
    218218                const Vector3 rayDir = (*vit) - currentRay.GetOrigin(); 
    219                 simpleRays.push_back(SimpleRay(*vit, rayDir)); 
     219                simpleRays.push_back(SimpleRay(currentRay.GetOrigin(), rayDir)); 
    220220        } 
    221221 
     
    226226        vizContainer.push_back(dummy); 
    227227 
    228         // establish visibility 
     228        // cast rays to triangle vertices and determine visibility 
    229229        VssRayContainer vssRays; 
    230230        CastRays(simpleRays, vssRays, false); 
    231  
     231cout << "here211 " << simpleRays.size() << " " << vssRays.size() << endl; 
    232232        // add to ray queue 
    233233        EnqueueRays(vssRays); 
    234 #if 0 
     234        const int n = (int)enlargedTriangle.size(); 
     235         
     236#if 1 
    235237    // recursivly subdivide each edge 
    236         for (int i = 0; i < 9; ++ i) 
     238        for (int i = 0; i < n; ++ i) 
    237239        { 
    238240                SubdivideEdge( 
    239241                        hitTriangle, 
    240242                        enlargedTriangle[i],  
    241                         enlargedTriangle[(i + 1) % 9],  
     243                        enlargedTriangle[(i + 1) % n],  
    242244                        *vssRays[i],  
    243                         *vssRays[(i + 1) % 9], 
     245                        *vssRays[(i + 1) % n], 
    244246                        currentRay); 
    245247        } 
     
    343345                castSamples += mInitialSamples; 
    344346#endif 
    345                 //cout << "\ncast " << castSamples << " of " << mSamplesPerPass << endl; 
     347                cout << "\nround finished, cast " << castSamples << " of " << mSamplesPerPass << endl; 
    346348        } 
    347349 
     
    417419        for (vit = vizContainer.begin(); vit != vit_end; ++ vit) 
    418420        { 
    419                 cout << "v"; 
     421                exporter->SetWireframe(); 
    420422                exporter->ExportPolygon((*vit).enlargedTriangle); 
    421423                //Material m; 
    422                 //Polygon3 poly = Polygon3((*vit).originalTriangle); 
    423 //              exporter->ExportPolygon(&poly); 
     424                exporter->SetFilled(); 
     425                Polygon3 poly = Polygon3((*vit).originalTriangle); 
     426                exporter->ExportPolygon(&poly); 
    424427        } 
    425428 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Plane3.cpp

    r1500 r1524  
    7575        dir = CrossProd(plane1.mNormal, plane2.mNormal); 
    7676     
    77         float abs; 
    7877        const int index = dir.DrivingAxis(); 
    7978    
     
    9897 
    9998        Normalize(dir); 
    100  
    10199        return SimpleRay(point, dir); 
    102100} 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp

    r1523 r1524  
    832832        else 
    833833        { 
     834#ifdef GTP_INTERNAL 
    834835                mRayCaster = new IntelRayCaster(*this, externKdTree); 
    835836                cout << "ray cast method: intel" << endl; 
     837#endif 
    836838        } 
    837839 
     
    847849                                           ) 
    848850{ 
    849         long t1 = GetTime(); 
     851        const long t1 = GetTime(); 
     852 
     853        for (int i = 0; i < (int)rays.size();) 
     854        { 
     855                if (i + 16 < (int)rays.size())  
     856                { 
     857                        mRayCaster->CastRays16( 
     858                                i, 
     859                                rays,                            
     860                                vssRays, 
     861                                mViewCellsManager->GetViewSpaceBox(), 
     862                                castDoubleRays); 
     863                        i += 16; 
     864                } 
     865                else  
     866                { 
     867                        mRayCaster->CastRay( 
     868                                rays[i].mOrigin, 
     869                                rays[i].mDirection, 
     870                                rays[i].mPdf, 
     871                                vssRays, 
     872                                mViewCellsManager->GetViewSpaceBox(), 
     873                                castDoubleRays); 
     874                        i ++; 
     875                } 
     876        } 
     877 
     878#if DEBUB_RAYCAST 
     879        long t2 = GetTime(); 
     880        if (i % 10000 == 0) 
     881                cout<<"."; 
    850882 
    851883        if (castDoubleRays) 
    852         { 
    853                 for (int i = 0; i < (int)rays.size(); )  
    854                 { 
    855                         if (i + 16 < (int)rays.size())  
    856                         { 
    857                                 mRayCaster->CastRays16( 
    858                                         i, 
    859                                         rays,                            
    860                                         vssRays, 
    861                                         mViewCellsManager->GetViewSpaceBox(), 
    862                                         castDoubleRays); 
    863                                 i += 16; 
    864                         }  
    865                         else  
    866                         { 
    867                                 mRayCaster->CastRay( 
    868                                         rays[i].mOrigin, 
    869                                         rays[i].mDirection, 
    870                                         rays[i].mPdf, 
    871                                         vssRays, 
    872                                         mViewCellsManager->GetViewSpaceBox(), 
    873                                         castDoubleRays); 
    874                                 i++; 
    875                         } 
    876                          
    877                         if (i % 10000 == 0) 
    878                                 cout<<"."; 
    879                 } 
    880  
    881                 long t2 = GetTime(); 
    882  
    883                 if (castDoubleRays) 
    884                         cout << 2 * rays.size() / (1e3f * TimeDiff(t1, t2)) << "M rays/s" << endl; 
    885                 else 
    886                         cout << rays.size() / (1e3f * TimeDiff(t1, t2)) << "M rays/s" << endl; 
    887         } 
    888          
     884                cout << 2 * rays.size() / (1e3f * TimeDiff(t1, t2)) << "M rays/s" << endl; 
     885        else 
     886                cout << rays.size() / (1e3f * TimeDiff(t1, t2)) << "M rays/s" << endl; 
     887#endif   
    889888} 
    890889 
Note: See TracChangeset for help on using the changeset viewer.