Changeset 2953


Ignore:
Timestamp:
09/17/08 11:11:48 (16 years ago)
Author:
mattausch
Message:

started different stuff

Location:
GTP/trunk/App/Demos/Vis/FriendlyCulling
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/FriendlyCulling.vcproj

    r2951 r2953  
    276276                        </File> 
    277277                        <File 
     278                                RelativePath=".\src\ObjConverter.cpp" 
     279                                > 
     280                        </File> 
     281                        <File 
     282                                RelativePath=".\src\ObjConverter.h" 
     283                                > 
     284                        </File> 
     285                        <File 
    278286                                RelativePath=".\src\PerformanceGraph.cpp" 
    279287                                > 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/default.env

    r2952 r2953  
    1111camPosition=483.398f 242.364f 186.078f 
    1212camDirection=1 0 0 
    13 lightDir=-0.8f 1.0f -0.7f 
     13#lightDirection=-0.8f 1.0f -0.7f 
     14lightDirection=0.2f -1.0f -.5f 
    1415useFullScreen=0 
    1516useLODs=1 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Geometry.h

    r2951 r2953  
    1919 
    2020public: 
    21         /** Constructor taking an array of triangles. 
     21        /** Constructs a geometry from the given data.  
     22                The vertices are interpreted as triangles. 
     23 
    2224                If delData is true, the vertex / normal / texture is deleted when 
    2325                after it was transferred into a vbo 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Matrix4x4.cpp

    r2944 r2953  
    580580{ 
    581581        Vector3 ret; 
    582         float denom; 
    583  
     582         
    584583        ret.x = v.x * x[0][0] + v.y * x[1][0] + v.z * x[2][0] + h * x[3][0]; 
    585584        ret.y = v.x * x[0][1] + v.y * x[1][1] + v.z * x[2][1] + h * x[3][1]; 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/MotionPath.cpp

    r2951 r2953  
    1919Vector3 MotionPath::GetCurrentPosition() const 
    2020{ 
     21        return mT * mVertices[mCurrentVertexIdx] + (1.0f - mT) * mVertices[(mCurrentVertexIdx + 1) % mVertices.size()]; 
    2122} 
    2223 
     
    2425Vector3 MotionPath::GetCurrentDirection() const 
    2526{ 
     27        return Vector3(1, 0, 0); 
    2628} 
    2729 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderTraverser.cpp

    r2951 r2953  
    149149        mMaxVisibleDistance = .0f; 
    150150 
    151         glEnableClientState(GL_VERTEX_ARRAY); 
    152         if (!mUseDepthPass) glEnableClientState(GL_NORMAL_ARRAY); 
    153  
    154151        ++ mFrameId; 
    155152 
     
    158155        mStats.Reset(); 
    159156        mQueryHandler.ResetQueries(); 
     157 
    160158        // add root node to queue 
    161159        EnqueueNode(mBvh->GetRoot()); 
     
    172170        // reset the render state 
    173171        mRenderState->Reset(); 
    174  
    175         glDisableClientState(GL_VERTEX_ARRAY); 
    176         glDisableClientState(GL_NORMAL_ARRAY); 
    177  
    178         //cout << "rq overhead: " << 1e3f * mRenderQueue->rTimer.TotalTime() << " ms" << endl; 
    179172} 
    180173 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/ResourceManager.cpp

    r2889 r2953  
    6969                str.read(reinterpret_cast<char *>(&dist), sizeof(float)); 
    7070 
    71                 //if (i>=3) dist=2e20; 
    7271                int numShapes; 
    7372                str.read(reinterpret_cast<char *>(&numShapes), sizeof(int)); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneEntityConverter.cpp

    r2951 r2953  
    2121        box.Triangulate(triangles); 
    2222 
    23         Vector3 *vertices = new Vector3[12]; 
    24         Vector3 *normals = new Vector3[12]; 
     23        Vector3 *vertices = new Vector3[36]; 
     24        Vector3 *normals = new Vector3[36]; 
    2525 
    2626        for (size_t i = 0; i < triangles.size(); ++ i) 
     
    3939        } 
    4040 
     41        cout<<"number of triangles in box: " << triangles.size() << endl; 
    4142 
    42         Geometry *geom = new Geometry(vertices, normals, NULL, 12, true); 
     43        Geometry *geom = new Geometry(vertices, normals, NULL, 36, false); 
    4344 
    4445        Shape *shape = new Shape(geom, mat, ent); 
    4546        ent->AddShape(shape); 
     47 
     48        LODLevel *lodLevel = new LODLevel(0); 
     49 
     50        lodLevel->AddShape(shape); 
     51        ent->AddLODLevel(lodLevel); 
    4652 
    4753        return ent; 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneEntityConverter.h

    r2946 r2953  
    2222        /** Creates a scene entity. 
    2323        */ 
    24         SceneEntityConverter(); 
     24        SceneEntityConverter() {}; 
    2525         
    26         ~SceneEntityConverter(); 
     26        //~SceneEntityConverter(); 
    2727 
    2828        /** Converts this box to a scene entity 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneQuery.cpp

    r2899 r2953  
    179179        renderer->SetCamera(orthoCam); 
    180180 
     181        glEnableClientState(GL_VERTEX_ARRAY); 
     182        glEnableClientState(GL_NORMAL_ARRAY); 
     183 
    181184        renderer->RenderScene(); 
     185 
     186        glDisableClientState(GL_VERTEX_ARRAY); 
     187        glDisableClientState(GL_NORMAL_ARRAY); 
    182188 
    183189        renderer->SetCamera(oldCam); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/ShadowMapping.cpp

    r2952 r2953  
    700700 
    701701 
    702  
    703702        glMatrixMode(GL_PROJECTION); 
    704703        glPopMatrix(); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp

    r2952 r2953  
    3636#include "ShadowMapping.h" 
    3737#include "Light.h" 
     38#include "SceneEntityConverter.h" 
    3839 
    3940 
     
    187188DeferredRenderer *ssaoShader = NULL; 
    188189 
    189  
     190SceneEntity *cube = NULL; 
     191 
     192bool altKeyPressed = false; 
    190193 
    191194// function forward declarations 
     
    627630        else 
    628631                cout << "successfully created font" << endl; 
     632 
     633        Vector3 cubeCenter(470.398f, 240.364f, 182.5f); 
     634 
     635        AxisAlignedBox3 box(cubeCenter - Vector3(2.0f), cubeCenter + Vector3(2.0f)); 
     636 
     637        Material *mat = new Material(RgbaColor(1, 0.4, 0.4, 0)); 
     638        Transform3 *tf = new Transform3(NULL); 
     639        cube = SceneEntityConverter().ConvertBox(box, mat, tf); 
    629640} 
    630641 
     
    918929                renderType = RenderState::FIXED; 
    919930 
     931        glEnableClientState(GL_VERTEX_ARRAY); 
     932 
    920933 
    921934        // render with the specified method (forward rendering, forward + depth, deferred) 
     
    934947                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    935948 
     949                glEnableClientState(GL_NORMAL_ARRAY); 
     950 
    936951                break; 
    937952 
     
    957972                glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); 
    958973 
     974 
    959975                break; 
    960976 
     
    974990                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    975991                glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); 
     992 
    976993 
    977994                break; 
     
    9901007                glDrawBuffers(3, mrt); 
    9911008 
    992                 break; 
    993         } 
    994  
     1009                glEnableClientState(GL_NORMAL_ARRAY); 
     1010 
     1011                break; 
     1012        } 
    9951013 
    9961014        glDepthFunc(GL_LESS); 
     
    10231041        else 
    10241042        { 
     1043                //glEnable(GL_CULL_FACE); 
     1044                //cube->Render(&state); 
     1045 
    10251046                // actually render the scene geometry using the specified algorithm 
    10261047                traverser->RenderScene(); 
     
    10301051        ///////// 
    10311052        //-- do the rest of the rendering 
    1032  
    1033         glEnableClientState(GL_VERTEX_ARRAY); 
    1034         glEnableClientState(GL_NORMAL_ARRAY); 
    10351053 
    10361054         
     
    12821300                downKeyPressed = false; 
    12831301                break; 
     1302        case GLUT_ACTIVE_ALT: 
     1303                altKeyPressed = false; 
     1304                break; 
    12841305        default: 
    12851306                return; 
    12861307        } 
    1287         //glutPostRedisplay(); 
    12881308} 
    12891309 
     
    13851405                } 
    13861406                break; 
     1407        case GLUT_ACTIVE_ALT: 
     1408                altKeyPressed = true; 
     1409                break; 
    13871410        default: 
    13881411                return; 
     
    14201443void Mouse(int button, int state, int x, int y)  
    14211444{ 
     1445        int specialKey = glutGetModifiers(); 
     1446 
    14221447        if ((button == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN)) 
    14231448        { 
     
    18291854                        int i = 4; 
    18301855 
    1831                         sprintf(msg[i ++], "rendered: %s of %s objects, %s of %s triangles",  
    1832                                 objStr.c_str(), totalObjStr.c_str(), triStr.c_str(), totalTriStr.c_str());  
    1833  
    1834                         //sprintf(msg[i ++], "rendered: %6d of %6d nodes, %s of %s triangles",  
    1835                         //      renderedNodes, bvh->GetNumVirtualNodes(), triStr.c_str(), totalTriStr.c_str());  
     1856                        if (0) 
     1857                        { 
     1858                                sprintf(msg[i ++], "rendered: %s of %s objects, %s of %s triangles",  
     1859                                        objStr.c_str(), totalObjStr.c_str(), triStr.c_str(), totalTriStr.c_str());  
     1860                        } 
     1861                        else 
     1862                        { 
     1863                                sprintf(msg[i ++], "rendered: %6d of %6d nodes, %s of %s triangles",  
     1864                                        renderedNodes, bvh->GetNumVirtualNodes(), triStr.c_str(), totalTriStr.c_str());  
     1865                        } 
    18361866 
    18371867                        sprintf(msg[i ++], "traversed: %5d, frustum culled: %5d, query culled: %5d", 
     
    18881918                        float minVisibleDist = min(camera->GetFar(), traverser->GetMaxVisibleDistance()); 
    18891919                        RenderShadowMap(minVisibleDist); 
    1890                         //cout << "far: " << camera->GetFar() << " min: " << traverser->GetMaxVisibleDistance() << endl; 
    18911920                } 
    1892                 glEnableClientState(GL_VERTEX_ARRAY); 
    1893                 glEnableClientState(GL_NORMAL_ARRAY); 
    18941921 
    18951922                glDisable(GL_LIGHTING); 
     
    19101937        } 
    19111938 
     1939 
     1940        glEnableClientState(GL_NORMAL_ARRAY); 
     1941 
    19121942        // draw all objects that have exactly the same depth as the current sample 
    19131943        glDepthFunc(GL_LEQUAL); 
     
    19531983        cgGLDisableProfile(RenderState::sCgFragmentProfile); 
    19541984        cgGLDisableProfile(RenderState::sCgVertexProfile); 
     1985 
     1986        glDisableClientState(GL_NORMAL_ARRAY); 
    19551987 
    19561988        state.SetRenderType(RenderState::DEPTH_PASS); 
     
    19712003        state.SetUseAlphaToCoverage(true); 
    19722004 
     2005        glEnableClientState(GL_NORMAL_ARRAY); 
     2006 
    19732007        // change back state 
    19742008        BvhNode::SetCurrentState(0); 
Note: See TracChangeset for help on using the changeset viewer.