• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ ogl::CObject类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中ogl::CObject的典型用法代码示例。如果您正苦于以下问题:C++ CObject类的具体用法?C++ CObject怎么用?C++ CObject使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了CObject类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: init_objects

 void init_objects()
 {
   { // plane
     ogl::CPlaneObjectBuilder* pObjectBuilder = new ogl::CPlaneObjectBuilder;
     pObjectBuilder->setWidth(10.0f);
     pObjectBuilder->setHeight(10.0f);
     pObjectBuilder->setSubdivisions(10);
     //pObjectBuilder->addOption(ogl::CPlaneObjectBuilder::REPEAT_UV);
     pObjectBuilder->addOption(ogl::CPlaneObjectBuilder::TANGENTS);
     //pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
     pObjectP = pObjectBuilder->build();
     
     ogl::CDdsTextureBuilder* pTextureBuilder = new ogl::CDdsTextureBuilder;
     pTextureBuilder->setFile("ground/rocks_d.dds");
     pObjectP->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::DIFFUSE, pTextureBuilder->build());
     pTextureBuilder->setFile("ground/rocks_h.dds");
     pObjectP->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::HEIGHT, pTextureBuilder->build()); // displacement
     
     delete pObjectBuilder;
   }
   {
     ogl::CAssimpObjectBuilder* pObjectBuilder = new ogl::CAssimpObjectBuilder;
     pObjectBuilder->setFile("monkey/monkey.obj");
     pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
     pObject0 = pObjectBuilder->build();
     pObject0->setM(math::translate(0.0f, 2.0f, 0.0f) * math::rotate(-90.0f, math::X));
     delete pObjectBuilder;
   }
 }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:29,代码来源:COGLDev10TessellationApp.hpp


示例2: init_objects

    void init_objects()
    {
      { // plane
        ogl::CPlaneObjectBuilder* pObjectBuilder = new ogl::CPlaneObjectBuilder;
        pObjectBuilder->setWidth(20.0f);
        pObjectBuilder->setHeight(20.0f);
        pObjectBuilder->setSubdivisions(1);
        // pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
        pObjectP = pObjectBuilder->build();
        delete pObjectBuilder;
      }
      { // box from box-builder
//        ogl::CBoxObjectBuilder* pObjectBuilder = new ogl::CBoxObjectBuilder;
//        pObjectBuilder->setWidth(1.0f);
//        pObjectBuilder->setHeight(1.0f);
//        pObjectBuilder->setDepth(1.0f);
//        pObject = pObjectBuilder->build();
//        pObject->setM(math::translate(0.0f, -1.0f, 5.0f) * math::scale(10.0f));
//        delete pObjectBuilder;
      }
      { // random mesh
        ogl::CAssimpObjectBuilder* pObjectBuilder = new ogl::CAssimpObjectBuilder;
        pObjectBuilder->setFile("box/box.obj");
        pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
        pObject1 = pObjectBuilder->build();
        pObject1->setM(math::translate(0.0f, 0.0f, 2.0f));
        delete pObjectBuilder;
      }
      { // skybox
        ogl::CAssimpObjectBuilder* pObjectBuilder = new ogl::CAssimpObjectBuilder;
        pObjectBuilder->setFile("skybox/skydome.obj");
        pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
        pObjectS = pObjectBuilder->build();
        pObjectS->setM(math::scale(20.0f));
        delete pObjectBuilder;
      }
      { // billboarding
        ogl::CPlaneObjectBuilder* pObjectBuilder = new ogl::CPlaneObjectBuilder;
        pObjectBuilder->setWidth(18.0f);
        pObjectBuilder->setHeight(18.0f);
        pObjectBuilder->setSubdivisions(6);
        // pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
        pObjectB = pObjectBuilder->build();
        delete pObjectBuilder;
        
        ogl::CPngTextureBuilder* pTextureBuilder = new ogl::CPngTextureBuilder;
        pTextureBuilder->setFile("monster.png");
        ogl::CTexture* pTexture = pTextureBuilder->build();
        pTexture->setWrapping(ogl::CTexture::EWrapping::CLAMP_TO_BORDER);
        delete pTextureBuilder;
        
        ogl::CMaterial* pMaterial = new ogl::CMaterial;
        pMaterial->setTexture(ogl::CTexture::EScope::DIFFUSE, pTexture);
        
        pObjectB->setMode(GL_POINTS);
        pObjectB->getShape(0)->setMaterial(pMaterial);
      }
    }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:58,代码来源:COGLDev07BillboardingApp.hpp


示例3: init_objects

    void init_objects()
    {
        {
            ogl::CPlaneObjectBuilder* pObjectBuilder = new ogl::CPlaneObjectBuilder;
            pObjectBuilder->setWidth(10.0f);
            pObjectBuilder->setHeight(10.0f);
            pObjectBuilder->setSubdivisions(1);
            // pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
            pObjectQ = pObjectBuilder->build();
            delete pObjectBuilder;
        }
        {
//        ogl::CBoxObjectBuilder* pObjectBuilder = new ogl::CBoxObjectBuilder;
//        pObjectBuilder->setWidth(1.0f);
//        pObjectBuilder->setHeight(1.0f);
//        pObjectBuilder->setDepth(1.0f);
//        pObject = pObjectBuilder->build();
//        pObject->setM(math::translate(0.0f, -1.0f, 5.0f) * math::scale(10.0f));
//        delete pObjectBuilder;
        }
        {
            ogl::CAssimpObjectBuilder* pObjectBuilder = new ogl::CAssimpObjectBuilder;
            pObjectBuilder->setFile("box/box.obj");
            pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
            pObject1 = pObjectBuilder->build();
            pObject1->setM(math::translate(0.0f, 0.0f, 2.0f));
            delete pObjectBuilder;
        }

        {
            ogl::CAssimpObjectBuilder* pObjectBuilder = new ogl::CAssimpObjectBuilder;
            pObjectBuilder->setFile("skybox/skydome.obj");
            pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
            pObjectS = pObjectBuilder->build();
            pObjectS->setM(math::scale(20.0f));
            delete pObjectBuilder;
        }
    }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:38,代码来源:COGLDev06NormalMapApp.hpp


示例4: init_objects

    void init_objects()
    {
      sys::info << "app::COGLDev42PCFShadowMapApp::init_objects()" << sys::endl;
      { // plane
        ogl::CPlaneObjectBuilder* pObjectBuilder = new ogl::CPlaneObjectBuilder;
        pObjectBuilder->setWidth(25.0f);
        pObjectBuilder->setHeight(25.0f);
        pObjectBuilder->setSubdivisions(10);
        pObjectBuilder->setTextureScale(0.5f);
        pObjectBuilder->addOption(ogl::CPlaneObjectBuilder::REPEAT_UV);
        pObjectBuilder->addOption(ogl::CObjectBuilder::TANGENTS);
        // pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
        pObjectP = pObjectBuilder->build();
        
        ogl::CTgaTextureBuilder* pTgaTextureBuilder = new ogl::CTgaTextureBuilder;
        ogl::CDdsTextureBuilder* pDdsTextureBuilder = new ogl::CDdsTextureBuilder;
        pTgaTextureBuilder->setFile("ground/concrete_d.tga");
        pObjectP->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::DIFFUSE, pTgaTextureBuilder->build());
        pTgaTextureBuilder->setFile("ground/concrete_n.tga");
        pObjectP->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::NORMALS, pTgaTextureBuilder->build()); // normals
        pDdsTextureBuilder->setFile("skybox/planet.dds");
        pObjectP->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::ENVIRONMENT, pDdsTextureBuilder->build());
        
        // pObjectP->translate(math::vec3(0.0f, -3.0f, 0.0f));
        
        // TODO: move this inside CObject or in a CObjectBuilder
        ogl::CTransformHistory::getInstance()->set(pObjectP, ogl::CTransform(pObjectP->mScale, pObjectP->mOrientation, pObjectP->mPosition));
        
        glExitIfError();
        
        delete pTgaTextureBuilder;
        delete pDdsTextureBuilder;
        delete pObjectBuilder;
      }
      { // box
        ogl::CBoxObjectBuilder* pObjectBuilder = new ogl::CBoxObjectBuilder;
        pObjectBuilder->setWidth(10.0f);
        pObjectBuilder->setHeight(10.0f);
        pObjectBuilder->setDepth(10.0f);
        pObjectBuilder->addOption(ogl::CObjectBuilder::INVERTED);
        pObjectBuilder->setTextureScale(0.5f);
        //pObjectBuilder->addOption(ogl::CObjectBuilder::FLATFACE);
        
        pObjectB = pObjectBuilder->build();
        
        ogl::CTgaTextureBuilder* pTgaTextureBuilder = new ogl::CTgaTextureBuilder;
        ogl::CDdsTextureBuilder* pDdsTextureBuilder = new ogl::CDdsTextureBuilder;
        pTgaTextureBuilder->setFile("tiles/pavers_d.tga");
        pObjectB->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::DIFFUSE, pTgaTextureBuilder->build());
        pTgaTextureBuilder->setFile("tiles/pavers_n.tga");
        pObjectB->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::NORMALS, pTgaTextureBuilder->build()); // normals
        pDdsTextureBuilder->setFile("skybox/skydome.dds");
        pObjectB->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::ENVIRONMENT, pDdsTextureBuilder->build());
        
        pObjectB->translate(math::vec3(0.0f, 5.0f, 0.0f));
        
        glExitIfError();

        delete pTgaTextureBuilder;
        delete pDdsTextureBuilder;
        delete pObjectBuilder;
      }
      { // boblampclean
        ogl::CMd5ObjectBuilder* pObjectBuilder = new ogl::CMd5ObjectBuilder;
        pObjectBuilder->setFile("boblampclean/boblampclean.md5mesh");
        pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
        //pObjectBuilder->addOption(ogl::CObjectBuilder::ADJACENCY); // TODO: unfuck up the MD5 parser
        pObject0 = pObjectBuilder->build();
        
        ogl::CTgaTextureBuilder* pTextureBuilder = new ogl::CTgaTextureBuilder;
        pTextureBuilder->setFile("boblampclean/guard1_body_n.tga");
        // sys::info << sys::tab << "set normal to shape: " << pObject0->getShape(0)->getName() << sys::endl;
        pObject0->getShape(0)->getMaterial()->setTexture(ogl::CTexture::EScope::NORMALS, pTextureBuilder->build());
        
        // TODO: need better normalization
        pObject0->scale(2.0f);
        pObject0->rotate(math::quat(-90.0f, math::X) * math::quat(180.0f, math::Z));
        
        // Remember previous transformation
        ogl::CTransformHistory::getInstance()->set(pObject0, ogl::CTransform(pObject0->mScale, pObject0->mOrientation, pObject0->mPosition));
        
        glExitIfError();
        
        delete pObjectBuilder;
        delete pTextureBuilder;
      }
      { // another box
        ogl::CMd5ObjectBuilder* pObjectBuilder = new ogl::CMd5ObjectBuilder;
        pObjectBuilder->setFile("cube.md5mesh");
        pObjectBuilder->addOption(ogl::CObjectBuilder::NORMALIZED);
        pObject1 = pObjectBuilder->build();
        
        pObject1->scale(0.5f);
        pObject1->translate(math::vec3(4.0f, 5.0f, 1.0f));
        
        ogl::CTransformHistory::getInstance()->set(pObject1, ogl::CTransform(pObject1->mScale, pObject1->mOrientation, pObject1->mPosition));
        
        delete pObjectBuilder;
      }
    }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:100,代码来源:COGLDev42PCFShadowMapApp.hpp


示例5: onDraw

    void onDraw(int nTime)
    {
      glBindFramebuffer(GL_FRAMEBUFFER, 0);
    
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
      math::mat4 mM;
      math::mat4 mV;
      math::mat4 mP;
      
      mM = pObject1->getM();
      mV = pCamera->getViewMatrix();
      mP = pCamera->getProjectionMatrix();
      
      pProgramRender->enable();    // ::enable() ::disable()
      pProgramRender->setUniform("u_mM",  mM);
      pProgramRender->setUniform("u_mMV", mV * mM);
      pProgramRender->setUniform("u_mP",  mP);
      pProgramRender->setUniform("u_oDirectLight.vColor",            pDirectLight->mColor);
      pProgramRender->setUniform("u_oDirectLight.vDirection",        math::normalize(pDirectLight->mDirection)); // left to rigth
      pProgramRender->setUniform("u_oDirectLight.fAmbientIntensity", pDirectLight->mAmbientIntensity);
      pProgramRender->setUniform("u_oDirectLight.fDiffuseIntensity", pDirectLight->mDiffuseIntensity);
      pProgramRender->setUniform("u_fSpecularIntensity",             0.0f);
      pProgramRender->setUniform("u_fSpecularPower",                 0.0f);
      pProgramRender->setUniform("u_fEyePosition",                   pCamera->getPosition());
      // pObjectP->draw(); // DEPRICATED
      
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
      pProgramBillboard->enable();
      pProgramBillboard->setUniform("u_mVP", pCamera->getProjectionMatrix() * pCamera->getViewMatrix());
      pProgramBillboard->setUniform("u_vCameraPosition", pCamera->getPosition());
      // pObjectB->draw(); // DEPRICATED
      
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
      GLint prevCullFace;
      glGetIntegerv(GL_CULL_FACE_MODE, &prevCullFace);
      GLint prevDepthFunc;
      glGetIntegerv(GL_DEPTH_FUNC, &prevDepthFunc);
      
      glCullFace(GL_FRONT);
      glDepthFunc(GL_LEQUAL);
      
      pProgramSkybox->enable();
      mM = math::translate(pCamera->getPosition()) * pObjectS->getM();
      mV = pCamera->getViewMatrix();
      mP = pCamera->getProjectionMatrix();
      pProgramSkybox->setUniform("u_mMVP", mP * mV * mM);
      // pObjectS->draw(); // DEPRICATED
      
      glCullFace(prevCullFace);
      glDepthFunc(prevDepthFunc);

      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
      //CApp::exit();
    }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:60,代码来源:COGLDev07BillboardingApp.hpp


示例6: load_objects

 void load_objects()
 {
   ogl::CBoxObjectBuilder* pObjectBuilder = new ogl::CBoxObjectBuilder;
   pObjectBuilder->setWidth(1.0f);
   pObjectBuilder->setHeight(1.0f);
   pObjectBuilder->setDepth(1.0f);
   pObject = pObjectBuilder->build();
   pObject->setM(math::rotate(45.0f, math::Z) * math::translate(0.0f, 0.0f, 4.0f));
   delete pObjectBuilder;
 }
开发者ID:raduionita,项目名称:project-morpheus,代码行数:10,代码来源:COGLDev02App.hpp


示例7: onDraw

    void onDraw(int nTime)
    {
      const float fTime = nTime / 1000.0f;
      sys::info << "app::COGLDev02App::onDraw(" << nTime << ") > " << fTime << sys::endl;
      
      static const GLfloat gray[]  = { 0.1f, 0.1f, 0.1f, 0.0f };
      static const GLfloat ones[]  = { 1.0f };
      glClearBufferfv(GL_COLOR, 0, gray);
      glClearBufferfv(GL_DEPTH, 0, ones);
      
      math::mat4 mM = pObject->getM() *
                      math::rotate(fTime * 13.25f, math::Y);
      math::mat4 mV = pCamera->getViewMatrix();
      math::mat4 mP = pCamera->getProjectionMatrix();
//      math::mat4 mV = math::lookat(math::vec3(0.0f, 1.0f, 0.0f), math::vec3(0.0f, 0.8f, 0.5f), math::Y);
//      math::mat4 mP = math::perspective(60.0f, mConfig.mRatio, 0.1f, 100.0f);
      
      //math::mat4 mMV = math::translate(0.0f, 0.0f, -5.0f) *
      //                 math::rotate(fTime * 13.75f, math::Y);
      
      glViewport(0, 0, mConfig.mWidth, mConfig.mHeight);
      
      pProgram->use();
      pProgram->setUniform("u_fTime", fTime);
      //pProgram->setUniform("u_mM", mM);
      //pProgram->setUniform("u_mMV", mMV);
      pProgram->setUniform("u_mMV", mV * mM);
      pProgram->setUniform("u_mP",  mP);
      pProgram->setUniform("u_bWireframe",  false);
      pProgram->setUniform("u_oDirectLight.vColor",     oDirectionalLight.vColor);
      pProgram->setUniform("u_oDirectLight.vDirection", math::normalize(oDirectionalLight.vDirection));
      pProgram->setUniform("u_oDirectLight.fAmbientIntensity", oDirectionalLight.fAmbientIntensity);
      pProgram->setUniform("u_vEyePos",            pCamera->getPosition());
      pProgram->setUniform("u_fSpecularIntensity", 1.0f);
      pProgram->setUniform("u_fSpecularPower",     64.0f);
      
      pTexture->bind(GL_TEXTURE0);
      
      glEnable(GL_POLYGON_OFFSET_FILL);
      glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
      // pObject->draw(); // DEPRICATED
      
//      pProgram->setUniform("u_bWireframe",  true);
      
      pTexture->unbind();
      
//      glEnable(GL_POLYGON_OFFSET_LINE);
//      glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
//      glLineWidth(1.0f);
//      pObject->draw();
//      glDisable(GL_POLYGON_OFFSET_LINE);
      
      pProgram->unuse();
    }  
开发者ID:raduionita,项目名称:project-morpheus,代码行数:54,代码来源:COGLDev02App.hpp



注:本文中的ogl::CObject类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ CUtlString类代码示例发布时间:2022-05-31
下一篇:
C++ AudioTrack类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap