본문 바로가기

OGRE 엔진활용

(17)
OGRE 에서 CEGUI 이용한 한글 채팅 입력 처리 OGRE 네이버 카페에서 CEGUI 이용해서 한글 채팅을 구현하기위한 방법을 찾다가 팀원이 이 자료를 활용해 한글입력 처리를 하는데 성공했다. 영어와 달리 한글은 자음과 모음을 조합하는 과정이 필요하기때문에, 입력처리에 까다로움이 있다. 이는 일본어와, 한자같은 것들도 동일할것이라 본다. 일단 글 전체를 포스팅 했다. 참고하자 아래의 소스를 활용하기 위해서는 imm32.lib를 추가해줘야 한다. 이는 비쥬얼스튜디오에 포함되어 있으니 따로 받을 필요는 없다. http://cafe.naver.com/ogre3d/958 CEGUI와 Ogre에 몇가지 추가 하면 간단(?)하게 해결 할수 있습니다. 글재주가 없어서 자세한 설명은 패스... 소스 뿌리도록 하겠습니다. ㅡ.ㅡ CEGUISystem.h // 입력중인 ..
[Ogre] GUI 추가시 마우스 갇히는 현상 Ogre 에서 제공하는 ExampleFrameListener 와 ExampleApplication 객체를 상속받지 않고 GUI를 추가할때 생기는 문제중, 마우스가 특정영역에 갇히는 경우가 있습니다. ogre 어플리케이션위자드로 생성하거나, 기존의 example 코드를 상속받아서 할때는 잘되지만, 상속받지 않을때는 안되는 이유는 ExampleFrameListener 의 한 부분을 보면 알수 있었습니다. //Adjust mouse clipping area virtual void windowResized(RenderWindow* rw) { unsigned int width, height, depth; int left, top; rw->getMetrics(width, height, depth, left, top..
[Ogre] 랜더윈도우 수동으로 생성시 주의사항 Ogre 에서 createRenderWindow() 함수에서 렌더윈도우를 생성하는 방법은 자동으로 생성과, 사용자가 지정해주는 수동 방식 두가지가 존재한다. 먼저 자동을 하기위해서는 " createRenderWinodw() 함수내에 mRoot->initialise(true, "윈도우 타이틀명") " 으로 해주면 별다른 문제가 발생하지 않는다. void createRenderWindow() { mRoot->initialise(true, "윈도우 타이틀명"); } 하지만 수동으로 지정해줬을때는 NULL 포인터참조로 프로그램이 죽는현상을 볼수 있다.(Ogre 공식 튜토리얼 6번을 보고 따라하다가, 수동으로 지정해줬을때 라면 말이다.) 우선 수동으로 렌더윈도우를 지정해주는 부분은 아래와 같다. 물론 여기에서는 ..
OGRE 2D 이미지 관련 자료들. http://www.ogre3d.org/wiki/index.php/Displaying_2D_Backgrounds 오버레이를 이용한 2D 배경이미지 띄우는 방법 http://www.ogre3d.org/wiki/index.php/BetaGUI 오버레이를 이용한 GUI의 구현 예제 http://www.ogre3d.org/wiki/index.php/RTS_Sample_App RTS 미니맵 샘플예제 http://cafe.naver.com/ogre3d.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1189 ogre3d 카페 자료
OGRE에 노말맵핑 적용하는 방법 오우거(OGRE)엔진에서 노말맵핑을 적용하기 위해 한동안 많은 고생을 했다. 현재까지 나온 OGRE엔진의 SDK 버전은.. 1.63버전.. 내가 가진 SDK는 1.6.2.3 인데 크게 차이는 없을거라 본다. 버전업이 되면서 기능면에서 추가 및 변경되는것들이 있는데, 내가 알아본 바로는 노말맵핑에 관련된 것에 관한것은 변경된것이 없는듯 하다. 오우거를 공부하면서 많은 사이트를 참고하고 자료들을 모았었다. 그중에 가장 많은 도움이 되는곳이 '용수의 웹노트' 라고 하는곳과 '네이버 OGRE3D 카페' 그리고 '한국산업기술대학교 이대현교수의 오우거강좌 자료들' 이다. 노말맵핑에 관련된 자료는 셰이더 파트인데, 이 부분에 대한 자료가 구하기가 힘든 관계로 2008년 이대현교수의 강좌에 보면 셰이더 파트가 있었다...
OGRE 엔진에서의 물속효과 구현 물속효과를 구현하기 위해서 여러가지 방법을 사용해 봤습니다. 영상에서 보이는 mesh 들은 오우거 머리, 물고기, 그리고 물속을 둘러싸고 있는 기둥과 바닥 그리고 벽면이 모두 mesh 입니다 하늘은 스카이박스중 skyplane을 이용하였습니다. 오우거에서 제공하는 SDK 에 보면 fresnel 이라는 예제가 있는데, 이 예제는 보이는 화면에서 오우거 머리를 기준으로 아래쪽에 물이 있고, 그 물속을 물고기가 헤엄치는 예제였습니다. 물은 텍스처에 여러가지 효과가 들어간것으로 물의 위쪽의 화면이 물표면에 비추어지게 되어 있었죠. 단, 카메라를 물속으로 옮기면 물의 표면은 더이상 보이지 않게됩니다(위쪽에서 보이게 컬링되어 있었기 때문이죠..) 물속 효과를 구현하기위해 저는 아래와 같은 작업들을 해봤습니다. 물 ..
OGRE 엔진으로 제작한 결과물 배포하는 방법 일반적으로 프로그램을 개발하게 되면, 고객 및 다른사람에게 배포를 해야 그 프로그램이 쓰일수 있을것이다. 나혼자 만들어서 나혼자 쓸것같으면 구지 이런 작업은 필요없겠지만.... 배포한다는것은 프로그램이 구동되기 위한 여러가지를 포함해서 줘야 한다는 말이기도 하다. 프로그램을 개발하기위해 SDK 를 사용하였다면, 그것을 사용할 사람의 PC에도 SDK를 설치해야 하는것인가...? 물론 그럴 필요가 없다. SDK는 개발자를 위한 것이지 사용자를 위한것이 아니기 때문이다. 하지만 우리가 이용하는 대부분의 온라인 게임은 윈도우 기반에서 DirectX 기반으로 제작되기 때문에 이것을 사용하기위해, 사용자는 DirectX SDK를 설치하는것이 아니라 DirectX를 설치해야 한다. 그 이유는, DirectX SDK로..
OGRE 기반 파티클엑셀레이터의 기능정리 OGRE 엔진을 기반으로 제작된 파티클 툴들이 다수 있다. 그중 파티클엑셀레이터(Particle Accelerator)의 각 기능과 기능이 어떤 스크립트 속성과 관계 있는지, 그리고 세부적으로 바뀌는것이 무엇인지를 알아보겠다. Attributes 탭 번호 항목 기능 입력타입 스크립트속성 비고 1 Material 효과의 재료(종류) 콤보박스 material 2 Width 입자의 너비 에디트 particle_width 3 Height 입자의 높이 에디트 particle_height 4 Quota 최대 입자 수 에디트 quota 5 Cull each 입자들의 컬링여부 체크박스 cull_each 6 Accurate facir 체크박스 accurate_facing 7 sorted 입자 정렬 체크박스 sorted ..