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의 파일들을 내 리소스에 복사를 하였더니 그제서야 제대로 된 효과가 나오긴 하던데... 이 효과를 위해서 어떤 파일들이 필요한지는 아직 확실히 모르겠다.