void CWeapon::renderable_Render () { UpdateXForm (); //нарисовать подсветку RenderLight (); //если мы в режиме снайперки, то сам HUD рисовать не надо if(IsZoomed() && !IsRotatingToZoom() && ZoomTexture()) RenderHud (FALSE); else RenderHud (TRUE); inherited::renderable_Render (); }
// // 渲染光照 // VOID CRenderQuene::RenderLighting(const CEntityCamera *pCamera) { ASSERT(pCamera); // // 1. 查找场景渲染队列 // SceneRenderQueneMap::iterator itSceneRenderQuene = m_sceneRenderQuenes.find(pCamera); if (itSceneRenderQuene == m_sceneRenderQuenes.end()) return; // // 2. 设置相机 // Renderer()->SetPerspective(pCamera->GetFovy(), pCamera->GetAspect(), pCamera->GetZNear(), pCamera->GetZFar()); Renderer()->SetLookAt(*pCamera->GetPosition(), *pCamera->GetForwardDirection(), *pCamera->GetUpDirection()); // // 3. 渲染 // RenderLight(itSceneRenderQuene->second.lights, itSceneRenderQuene->second.bRenderQuery); }
void SceneManagerCMPlay::Render() { SceneManagerGameplay::Render(); Mtx44 perspective; perspective.SetToPerspective(45.0f, 4.0f / 3.0f, 0.1f, 10000.0f); //perspective.SetToOrtho(-80, 80, -60, 60, -1000, 1000); projectionStack.LoadMatrix(perspective); // Set up the view viewStack.LoadIdentity(); viewStack.LookAt(tpCamera.getPosition().x, tpCamera.getPosition().y, tpCamera.getPosition().z, tpCamera.getTarget().x, tpCamera.getTarget().y, tpCamera.getTarget().z, tpCamera.getUp().x, tpCamera.getUp().y, tpCamera.getUp().z); // Model matrix : an identity matrix (model will be at the origin) modelStack.LoadIdentity(); RenderLight(); RenderBG(); RenderStaticObject(); RenderMobileObject(); }
void CWeapon::render_hud_mode() { RenderLight(); }
void CWeaponStatMgun::renderable_Render () { inheritedPH::renderable_Render (); RenderLight(); }
void CLight::RenderGroup(int Group) { if (!g_Config.m_ClLighting) return; if(Client()->State() < IClient::STATE_ONLINE) return; Graphics()->RenderToTexture(RENDERBUFFER_LIGHT); Graphics()->BlendAdditive(); Graphics()->TextureSet(g_pData->m_aImages[IMAGE_LIGHTS].m_Id); Graphics()->QuadsBegin(); m_pClient->m_pParticles->RenderLights(); // render light sources to texture buffer /* for (int i = 0; i < m_Count; i++) { vec2 p = m_aLightsource[i].m_Pos; float Size = m_aLightsource[i].m_Size; Graphics()->SetColor(0.4f, 0.4f, 1, 1); IGraphics::CQuadItem QuadItem(p.x, p.y, Size, Size); Graphics()->QuadsDraw(&QuadItem, 1); } */ int Num = Client()->SnapNumItems(IClient::SNAP_CURRENT); for(int i = 0; i < Num; i++) { IClient::CSnapItem Item; const void *pData = Client()->SnapGetItem(IClient::SNAP_CURRENT, i, &Item); if (Item.m_Type == NETOBJTYPE_BUILDING) { const struct CNetObj_Building *pBuilding = (const CNetObj_Building *)pData; if (pBuilding->m_Type == BUILDING_SCREEN) { vec4 c; switch (int(pBuilding->m_X/32)%4) { case 0: c = vec4(0.5f, 0.7f, 1.0f, 1); break; case 1: c = vec4(0.4f, 1.0f, 0.4f, 1); break; case 2: c = vec4(1.0f, 0.5f, 0.5f, 1); break; case 3: c = vec4(0.2f, 1.0f, 1.0f, 1); break; default: c = vec4(0.5f, 0.7f, 1.0f, 1); break; } RenderLight(vec2(pBuilding->m_X, pBuilding->m_Y-96), vec2(500, 320), c); } else if (pBuilding->m_Type == BUILDING_REACTOR) { //float r = 1.0f + sin(CustomStuff()->m_SawbladeAngle*0.5f)*0.25f; RenderLight(vec2(pBuilding->m_X, pBuilding->m_Y-32), vec2(300, 420), vec4(0.25f, 0.75f, 1.0f, 1.0f)); //RenderLight(vec2(pBuilding->m_X, pBuilding->m_Y-32), vec2(300, 420)*r, vec4(0.75f, 1.0f, 1.0f, 1.0f)); } } /* if(Item.m_Type == NETOBJTYPE_PICKUP) { const void *pPrev = Client()->SnapFindItem(IClient::SNAP_PREV, Item.m_Type, Item.m_ID); if(pPrev) { const CNetObj_Pickup *pCurrent2 = (const CNetObj_Pickup *)pData; const CNetObj_Pickup *pPrev2= (const CNetObj_Pickup *)pPrev; const vec2 Pos = mix(vec2(pPrev2->m_X, pPrev2->m_Y), vec2(pCurrent2->m_X, pCurrent2->m_Y), Client()->IntraGameTick()); RenderLight(Pos, 140.0f, vec4(1, 1, 1, 0.4f)); } } */ } // camera RenderLight(m_pClient->m_pCamera->m_Center, vec2(900, 700), vec4(1, 1, 1, 0.4f)); Graphics()->QuadsEnd(); Graphics()->TextureSet(-1); Graphics()->QuadsBegin(); Num = Client()->SnapNumItems(IClient::SNAP_CURRENT); for(int i = 0; i < Num; i++) { IClient::CSnapItem Item; const void *pData = Client()->SnapGetItem(IClient::SNAP_CURRENT, i, &Item); if (Item.m_Type == NETOBJTYPE_BUILDING) { const struct CNetObj_Building *pBuilding = (const CNetObj_Building *)pData; if (pBuilding->m_Type == BUILDING_STAND) RenderLight(ivec2(pBuilding->m_X, pBuilding->m_Y)); } else if (Item.m_Type == NETOBJTYPE_POWERUPPER) { const struct CNetObj_Powerupper *pBuilding = (const CNetObj_Powerupper *)pData; //float r = 1.0f + sin(CustomStuff()->m_SawbladeAngle*0.5f)*0.25f; //RenderLight(vec2(pBuilding->m_X, pBuilding->m_Y-32), vec2(300, 420), vec4(0.25f, 0.75f, 1.0f, 1.0f)); const vec2 p = vec2(pBuilding->m_X, pBuilding->m_Y-22); RenderLight(p+vec2(-10, 0), p+vec2(+10, 0), p+vec2(-40, -70), p+vec2(+40, -70), vec4(0.25f, 1.0f, 0.5f, 1)); } } Graphics()->QuadsEnd(); Graphics()->RenderToScreen(); Graphics()->BlendLight(); // render buffer to screen using special blending Graphics()->MapScreen(0,0,Graphics()->ScreenWidth(),Graphics()->ScreenHeight()); Graphics()->TextureSet(-2, RENDERBUFFER_LIGHT); Graphics()->QuadsBegin(); Graphics()->QuadsSetRotation(0); Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); { IGraphics::CQuadItem QuadItem(Graphics()->ScreenWidth() / 2, Graphics()->ScreenHeight() / 2, Graphics()->ScreenWidth(), -Graphics()->ScreenHeight()); Graphics()->QuadsDraw(&QuadItem, 1); } Graphics()->QuadsEnd(); Graphics()->BlendNormal(); Graphics()->TextureSet(-1); }
void CCarWeapon::Render_internal() { RenderLight (); }