Пример #1
0
PolycodeOVR::PolycodeOVR(Scene *parentScene) {
    
    this->parentScene = parentScene;
    
    cameraRoot = new Entity();
    
    leftCamera = new Camera(parentScene);
    rightCamera = new Camera(parentScene);
    
    leftCamera->setClippingPlanes(0.001, 100.0);
    leftCamera->frustumCulling = false;
    rightCamera->setClippingPlanes(0.001, 100.0);
    rightCamera->frustumCulling = false;
    
    cameraRoot->addChild(leftCamera);
    cameraRoot->addChild(rightCamera);
    
    initOVR();
}
Пример #2
0
void Renderer::init()
{
#ifdef OCULUSVR
    initOVR();
#endif

    SDL_GL_SetSwapInterval(1); // vsync
    glEnable(GL_DEPTH_TEST);
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1); // the default is 4
    glEnable(GL_PRIMITIVE_RESTART);
    glPrimitiveRestartIndex(0xFFFF);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    skyRenderer_.reset(new SkyRenderer());
    landRenderer_.reset(new LandRenderer());
    structureRenderer_.reset(new StructureRenderer());
    modelRenderer_.reset(new ModelRenderer());

    landRenderer_->setLightPosition(skyRenderer_->sunVector() * fp_t(1000.0));
}