본문 바로가기

OGRE 엔진활용

(17)
[Ogre] 졸업작품 프로젝트 - Project Gayami 올해 3월부터 실질적인 제작에 돌입하여, 약 9개월동안 열심히 만든 졸업작품 프로젝트다. 팀원은 기획 1, 서버 1, 클라 3, 배경, UI, 모델러 각 1 총 8명이다. 사용 엔진 : Ogre 1.6.2 외부 라이브러리: CEGUI, FMOD, MOC, Lua 등 게임소개: 가야미 는 개미의 옛 말로, 개미간의 왕위 계승을 배경으로 만들어진 MO 슈팅 게임이다. 특징이라면, 한방에 참여한 유저들간에 팀을 나눠 싸우는게 아니라, 방 대 방 매칭 시스템을 도입하여, 방안에 참여한 사람이 모두 팀을 이루어 다른방 팀들간에 경쟁을 하는것이 시스템적인 특징이다. 요즘에 이런 매칭 시스템은, 전략 게임이나 대전 게임에서 주로 쓰이고 있으며 대표적으로 LOL(Leage of Legend)이나, 워크레프트3, 스타크..
[Ogre] 파티클 입자가 Fog 와 함께 나오기 위한 Material Setting 예전에 필드에 구름과 같은 효과를 주기위해 Fog를 낮게 깔고, 파티클 입자를 몇군대 방출을 하려고 했던 적이있었다. 이때 발생하는 문제점은 입자에 적용된 알파값이 Fog가 깔린 부분을 지날때 사각박스로 보이는 문제였다. 이때는 해결법을 몰라 잠시 접어뒀었는데, 어제 누군가 물어보길래 문득 드는 생각이 있어 해봤더니, 해결했더라는 것... 기억하는 Material 속성은 아래와 같다. ex) material test { technique { pass { lighting off depth_write off scene_blend alpha_blend texture_unit { texture plare.png tex_address_mode clamp } } } } 이런식으로 구성했을때, 일단 Fog와 겹쳐진 ..
[Ogre] 알파 적용된 플랜이 겹쳤을때 뒷부분이 제대로 표기되지 않을경우. 플랜을 활용하여, 부분적으로 알파를 적용한 이미지.. 혹은 두장의 플랜을 십자모양으로 두장을 겹치고(+) 풀과 같은 것들을 표현하고자 할때 일반적인 알파옵션을 쓰면 문제가 발생한다. 알파가 적용되어 뒤에 겹쳐진 이미지가 표시될꺼라 생각했겠지만.. 뒷부분이 뻥뚤린 화면이 나오게 될것이다. 이 문제를 해결하기위해, 두가지 방법을 기술해본다. 첫번째는 메트리얼파일(*.material)을 이용해 해결하는 방법이고, 두번째는 소스에서 직접 material을 만들어 쓸때 코드상 접근해서 해결하는 방법이다. 1. material 의 technique의 하단에 "scene_blend alpha_blend" 옵션을 삭제하고(없으면 상관없다) "alpha_rejection greater 128" 이라고 써주자. 예: ma..
[Ogre] 포커스를 잃어도 랜더링을 계속 하게 하는 방법 전체모드로 게임을 진행한다면, 현재 옵션은 크게 필요가 없을지도 모른다. 하지만 창모드로 테스트를 할때, 한명의 유저가 다수의 클라이언트를 띄워 볼 경우가 발생할것이다. Ogre는 기본적으로 포커스를 잃으면 해당 화면의 렌더링을 중지하게되어있다. 아래의 옵션을 활용하면 포커스를 잃은 윈도우도, 실시간으로 렌더링을 가능하게 한다. // 포커스를 잃어도 렌더링 되도록 m_pWindow->setDeactivateOnFocusChange(false);
[Ogre]Bloom 효과 적용 BLOOM 효과 넣기 | 스크린샷 2007.08.30 15:45 harkon http://cafe.naver.com/ogre3d/627 간단한 추가법은, 랜더원도와 뷰포트 생성후에 컴포지터를 등록해주면 됩니다. 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()...
[Ogre] 오우거 WIKI 에 있는 기초 자료. http://www.ogre3d.org/tikiwiki/tiki-index.php?page=OogstsHowTo#How_to_exclude_objects_from_collision_detection How to-list Written by Oogst, last update on 25-05-2004, check the Oogst-site for more Oogst-stuff. See also: OogstsHowTo2 and Snippets Table of contents How to-list About this list Why I made this list ExampleApplication How to set up an application using ExampleApplication How to put ..
[Ogre] 오브젝트 투명화 이 내용은 네이버 오우거 공식 카페에서 '특정옙군' 님이 기술하신 내용을 참고로 하여, 우리 프로젝트에 맞게 변형해서 사용한것입니다. 기본적인 원리는 캐릭터의 위치로부터, 카메라의 위치를 향해 레이를 쏘고, 캐릭터와 카메라 사이에 오브젝트가 있다면 그것을 투명화 하는 원리입니다. void CollisionTools::raycastToBlend(/*Ogre::SceneNode* &char_scenenode,*/ Ogre::Vector3 &char_position, Ogre::Vector3 &cam_position) { //캐릭터의 위치로부터 카메라를 향해 ray를 쏠수 있도록 광선을 설정한다.(origin: 캐릭터위치, direction:카메라방향) Ogre::Vector3 direction = cam_p..
[Ogre] 오버레이 페이드인 페이드 아웃 http://www.ogre3d.org/phpBB2/viewtopic.php?p=202736&sid=ce193664e1d3d7c4af509e6f4e2718c6 정리하면 검은색매트리얼이 입혀진 패널을 하나올리고 그 매트리얼의 알파값을 변경하는 방식입니다. MaterialPtr FadeMaterial = MaterialManager::getSingleton().getByName("검은색매트리얼"); TextureUnitState *FadeTextureLayer = FadeMaterial->getTechnique(0)->getPass(0)->getTextureUnitState(0); FadeTextureLayer->setAlphaOperation(LBX_SOURCE1, LBS_MANUAL, LBS_CURREN..