void D3DPBRApp::DrawScene() { //DrawEnvironment ID3D11RenderTargetView* rendertargets[1]; md3dImmediateContext->RSSetViewports(1, &mCubeMapViewport); for (int i = 0; i < 6;i++) { md3dImmediateContext->ClearRenderTargetView(mDynamicCubeMapRTV[i], reinterpret_cast<const float*>(&Colors::Black)); md3dImmediateContext->ClearDepthStencilView(mDynamicCubeMapDSV, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); // Bind cube map face as render target. rendertargets[0] = mDynamicCubeMapRTV[i]; md3dImmediateContext->OMSetRenderTargets(1, rendertargets, mDynamicCubeMapDSV); DrawEnvironment(mCubeMapCamera[i]); } md3dImmediateContext->GenerateMips(mDynamicCubeMapSRV); md3dImmediateContext->ClearRenderTargetView(mRenderTargetView, reinterpret_cast<const float*>(&Colors::Black)); md3dImmediateContext->ClearDepthStencilView(mDepthStencilView, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); md3dImmediateContext->OMSetRenderTargets(1, &mRenderTargetView, mDepthStencilView); mCam.UpdateViewMatrix(); DrawScene(mCam); DrawLUT(); HR(mSwapChain->Present(0, 0)); }
void CChildView::OnGLDraw(CDC *pDC) { GLfloat gray = 0.3f; glClearColor(gray, gray, gray, 0.0f) ; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // // Set up the camera // int wid, hit; GetSize(wid, hit); m_camera.Apply(wid, hit); // // Some standard parameters // // Enable depth test glEnable(GL_DEPTH_TEST); // Cull backfacing polygons glCullFace(GL_BACK); glEnable(GL_CULL_FACE); // Enable lighting glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); GLfloat lightpos[] = {0.5, 2.0, 1.0, 0}; glLightfv(GL_LIGHT0, GL_POSITION, lightpos); glEnable(GL_LIGHT1); GLfloat secondlightcolor[] = {0.2f, 0.8f, 0.2f, 1.0f}; GLfloat secondlightpos[] = {-5.0f, -5.0f, 5.0f, 1.0f}; glLightfv(GL_LIGHT1, GL_DIFFUSE, secondlightcolor); glLightfv(GL_LIGHT1, GL_SPECULAR, secondlightcolor); glLightfv(GL_LIGHT1, GL_POSITION, secondlightpos); // Enable or disable the wireframe mode glPolygonMode(GL_FRONT, m_wireframe ? GL_LINE : GL_FILL); glPushMatrix(); DrawChisel(); glPopMatrix(); glPushMatrix(); DrawCylinder(); glPopMatrix(); glPushMatrix(); glTranslated(-10,-7, -15); DrawEnvironment(); glPopMatrix(); glFlush(); }
void CZone::DrawZone() { DrawTiles(); // draw the tiles (ground) first. DrawEnvironment(); // then the environment.. cliffs, trees, stones, water ... you name it. // DrawShadows(); // then draw the shadows (not shadows from environment objects but, cloudy areas, darker places etc). }
/*!**************************************************************************** @Function RenderScene @Return bool true if no error occured @Description Main rendering loop function of the program. The shell will call this function every frame. eglSwapBuffers() will be performed by PVRShell automatically. PVRShell will also manage important OS events. Will also manage relevent OS events. The user has access to these events through an abstraction layer provided by PVRShell. ******************************************************************************/ bool OGLESFur::RenderScene() { // Reset the states that print3D changes glDisable(GL_CULL_FACE); glEnable(GL_FOG); glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); glEnable(GL_DEPTH_TEST); // User input bool bNewPage = false; if(PVRShellIsKeyPressed(PVRShellKeyNameSELECT)) m_bPause = !m_bPause; if(PVRShellIsKeyPressed(PVRShellKeyNameLEFT)) { if(--m_i32WndPage < 0) m_i32WndPage = 5; bNewPage = true; } if(PVRShellIsKeyPressed(PVRShellKeyNameRIGHT)) { if(++m_i32WndPage > 5) m_i32WndPage = 0; bNewPage = true; } if(bNewPage) { switch(m_i32WndPage) { case 0: m_bViewMode = false; m_i32FurShellNo = 7; break; case 1: m_bViewMode = true; m_i32FurShellNo = 0; break; case 2: m_bViewMode = true; m_i32FurShellNo = 1; break; case 3: m_bViewMode = true; m_i32FurShellNo = 2; break; case 4: m_bViewMode = true; m_i32FurShellNo = 7; break; case 5: m_bViewMode = false; m_i32FurShellNo = 7; break; } // Since the number of fur shells has changed, update them UpdateFurShells(); } // Clear glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Animation DoAnimation(); // View matrix glMatrixMode(GL_MODELVIEW); glLoadMatrixf(m_mView.f); // Enable the vertex and normal arrays glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Begin Scene if(!m_bViewMode) DrawEnvironment(); // Draw the Duck DrawDuck(); // Display Paused if the app is paused if(m_bPause) m_Print3D.Print3D(78.0f, 2.0f, 1.0f, PVRTRGBA(255,255,255,255), "Paused"); // Disable the normals before our drawing of the print3D content glDisableClientState(GL_NORMAL_ARRAY); char szDesc[256]; snprintf(szDesc, 256, "Displaying %d shells", m_i32FurShellNo); // Display the IMG logo m_Print3D.DisplayDefaultTitle("Fur", szDesc, ePVRTPrint3DSDKLogo); m_Print3D.Flush(); return true; }