본문 바로가기

OGRE 엔진활용

[Ogre]Bloom 효과 적용


BLOOM 효과 넣기 | 스크린샷
전체공개 2007.08.30 15:45

간단한 추가법은, 랜더원도와 뷰포트 생성후에 컴포지터를 등록해주면 됩니다.

 

 String compositorName = "Bloom";
 //compositorName = "HDR";
 Viewport *vp = mWindow->getViewport(0);  //mWindow: RenderWindow*
    Ogre::CompositorInstance *instance = Ogre::CompositorManager::getSingleton().addCompositor(
  vp, compositorName, 0);
    Ogre::CompositorManager::getSingleton().setCompositorEnabled(vp, compositorName, true);

 

효과를 조절하는 방법은 bloom.material 을 열어서

diffuse 의 알파값을 조절하고, scene_blend alpha_blend 를 주석 처리(//)하면 어느정도 흐려지는지 알수있습니다.

 

material Ogre/Compositor/BloomBlend

{

   pass

  {

    ...

    diffuse 0.0 0.0 0.0 0.6

   scene_blend alpha_blend

  } 

}

----------------------------------------------------------------------------------------------
우선 Bloom 효과를 적용하는데는 성공했으나, SDK에서 제공하는 리소스를 사용하지 않는 경우에는 쉽게 적용하기가 어려웠다. 위의 코드는 OgreSDK 에서 제공되는 기능중 Compositor 를 이용한 예인데, SDK에 포함된 데모에 보면 compositor 를 이용한 각종 셰이더 효과를 위해 Material 파일들과 compositor 파일들을 만들어 놓았다.

*.compositor 파일역시, *.particle, *.material 파일과 같이 리소스 초기화 과정에서 엔진에서 파싱하여 필요할때 사용되어 지는것으로 보인다. 효과를 사용하기 위해 SDK의 media\materials에 위치한 programs 폴더와 scripts의 파일들을 내 리소스에 복사를 하였더니 그제서야 제대로 된 효과가 나오긴 하던데... 이 효과를 위해서 어떤 파일들이 필요한지는 아직 확실히 모르겠다.