void CRBX_ModelViewCtrl::SetFitModel() { if(!m_pEntity) return; m_fFovV = hkvMathHelpers::getFovY(m_fFovH, GetSize().x / GetSize().y); VisRenderContext_cl::GetMainRenderContext()->SetFOV(m_fFovH,m_fFovV); hkvAlignedBBox modelbox; m_pEntity->GetMesh()->GetVisibilityBoundingBox(modelbox); float fAngleH,fAngleV; VisRenderContext_cl::GetMainRenderContext()->GetFOV(fAngleH,fAngleV); float dx = hkvMath::Max(modelbox.getSizeX(),modelbox.getSizeY()); float zx = 0.5f*dx / hkvMath::tanDeg (fAngleH*0.5f); float zy = 0.5f*modelbox.getSizeZ() / hkvMath::tanDeg (fAngleV*0.5f); float Dist = (hkvMath::Max(zx,zy) + dx*0.5f); VisContextCamera_cl* pMainCamera = Vision::Camera.GetMainCamera(); hkvMat3 vMat; vMat.setFromEulerAngles(0,20,180); m_vCamPos.Set(Dist,0,modelbox.GetSizeZ()); pMainCamera->Set(vMat,m_vCamPos); if( m_pLight == NULL ) { m_pLight = new VisLightSource_cl( VisLightSourceType_e::VIS_LIGHT_DIRECTED , 10.0f ); } m_pLight->SetPosition(pMainCamera->GetPosition()); m_pLight->AttachToParent(pMainCamera); m_pLight->SetDirection(pMainCamera->GetDirection()); m_pLight->SetIntensity(50.0f); /// << 빛의 강도를 조절함. 나중에콜백이나 업데이트 함수에서 조절하시면됩니다. UpdateWorldAxisSystem(); }