'etc'에 해당되는 글 37건

  1. 2011.05.25 irrlicht CloudLayerSceneNode(구름 층 씬노드)
  2. 2011.05.03 일리히트 태양계 소스입니다.
  3. 2011.03.29 Clady3DTerrainEditor 입니다.
  4. 2011.03.18 Irrlicht engine terrain editor(RealmEditor)
  5. 2011.03.17 Mingw에 맞게 eclipse 세팅하기
  6. 2011.03.17 Mac + Irrlicht + Eclipse CDT(이클립스로 맥에서 일리히트엔진 사용하기)
  7. 2010.10.08 일리히트엔진 알피지게임 레벨 에디터
  8. 2010.09.04 irrlicht 동영상 재생 라이브러리
  9. 2010.09.01 일리히트용 공개 파티클엔진 spark 와 전용 에디터
  10. 2010.08.10 C#으로 네이티브 코드 접근하기 part 3. 네이티브클래스 랩퍼

irrlicht CloudLayerSceneNode(구름 층 씬노드)

|
효과 만점입니다.

 

'etc > irrlicht' 카테고리의 다른 글

xcode4 irrlicht project setting  (0) 2011.12.06
xcode4 irrlicht1.7.2 compile  (0) 2011.12.06
일리히트 태양계 소스입니다.  (0) 2011.05.03
Clady3DTerrainEditor 입니다.  (0) 2011.03.29
Irrlicht engine terrain editor(RealmEditor)  (0) 2011.03.18
And

일리히트 태양계 소스입니다.

|

일리히트엔진으로 만든 태양계 시뮬레이터 인데요.
윈도우 바이너리와 풀소스가 포함되어있습니다.
일리히트엔진 공부하는데 도움이 될거같아서 

삭제 방지 차원에서 올려둡니다.




 
And

Clady3DTerrainEditor 입니다.

|
일리히트 포럼에서 퍼왔습니다.

일리히트엔진으로 만든 아마츄어 공개 터래인 제작툴입니다.

삭제 방지 차원에서 백업해둡니다. 





And

Irrlicht engine terrain editor(RealmEditor)

|
일리히트 포럼에 공개된 터래인툴인데요. 좀고쳐서 쓰면 쓸만 할거같습니다.

백업 차원에서 올립니다.

Insomniacp 님이 공개해 주셨습니다.
출처 : http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32251&postdays=0&postorder=asc&start=0

터래인툴 소스와 실행파일
같이 공개하신 게임소스


And

Mingw에 맞게 eclipse 세팅하기

|

make 파일이름이 mingw32-make 라서 파일을 못찾아 에러가 발생합니다.



window->Preferences->New CDT Project Wizard->Makefile Project->builder settings 에서 세팅을 바꿔줍니다.



직접 mingw32-make 를 make 로 이름을 바꿔 할수도 있지만 위와같이 이클립스 기본옵션을 바꿔서 할수있습니다.


한가지더 make의 옵션을 지정할려면 직접 써넣더라도 무조건 뒤에 all붙습니다.
Behavior 탭 에서 all 대신 다른것을 써넣어 주시면 됩니다.





 

'etc > 수업 보조 자료' 카테고리의 다른 글

웹스톰 우석대학교 라이센스키  (0) 2013.10.26
html5 스프라이트툴 프리미엄 버전  (0) 2013.10.24
html5 스프라이트툴  (2) 2013.09.14
html5 게임엔진 라이브러리모듈  (0) 2013.09.14
cube 그리기  (0) 2010.06.08
And

Mac + Irrlicht + Eclipse CDT(이클립스로 맥에서 일리히트엔진 사용하기)

|
맥에서 주로 사용하는 엑스 코드는 자체적으로 따로 컴파일러를 가지고있는것이 아니라 내부적으로 gcc를 호출하여주면 통합 개발환경입니다. 
여기서 한가지 많이 분들이 착각하시는것이 gcc입니다.
원래는 Gnu C Compiler의 약자였다고합니다.
그것이 Gnu Compiler Collection 으로 되어서 여러가지 언어를 통합적으로 컴파일할수있는 툴이되었습니다.
실제로 오브잭트씨로 따로 컴파일러가 있는것이아니라 gcc에서 모두 통합되어 컴파일이됩니다.
그리고 이들 서로 다른 언어들은 오브잭트코드상에서 모두 호환이 됩니다. 

그래서 오브잭트씨로 클래스나 함수를 만든것을 씨나 씨뿔뿔에서 호출하여 쓸수있는것입니다. 

먼저 맥에서 컴파일러를 세팅해줘야하는데요
엑스코드를 설치만 해주면됩니다.
맥에서는 따로 gcc설치하실필요가없고 엑스코드를 설치했다면 따로 손댈게 없습니다. 되도록 최신버전의 엑스코드를 설치하실필요가있습니다. 

커멘드창을 열고 'gcc --help' 해서 다음과같이 나온다면 준비가 된 상태입니다.



그다음 이클립스를 설치합니다.
단순히 압축만 풀면 설치가 됩니다.
http://www.eclipse.org/downloads/ 
c++용 이클립스를 다운받아서 쓰시면됩니다.(eclipse CDT)

그리고 엑스코드상에서 일리히트엔진을 컴파일합니다.
커멘드창에서 make staticlib_osx 으로 컴파일성공해서 libirrlicht.a 파일이 생성은 되지만, 일리히트엔진 소스 폴더에있는 make파일은 맥용설정이 제데로안되있어서 오브잭트씨소스를 컴파일하지않고 무시해버립니다. 그부분은 나중에 시간이되면 내용을 수정해볼려고합니다.


일리히트엔진은 다행이도 소스폴더에 맥의 엑스코드용 프로잭트 파일이 포함되어있습니다.


MacOSX.xcodeproj 를 더블 클릭합니다.

 
active architecture를 x86_64로 세팅해놓습니다. 만약 이항목이 보이지 않으면 Get info 메뉴에서 다음과 같이  64-bit Intel 로 설정해놓습니다

 

64비트버전의 컴파일이므로 OpenglMatrialRenderer.cpp 파일에서 void * 형을 Gluint바꿀수없다는 에러가 나올겁니다.
모두 size_t 로 수정하여 컴파일해주면 이상없이 잘됩니다.(2011년4월10일 현재, 1.7.2 버전에서 확인)

빌드가 무시하 마치고나면 build/debug/libirrlicht.a가 생성됩니다.



여기서 얻어진 라이브러리파일(libirrlicht.a)을 가지고 이클립스에서 사용 하실수있습니다.

이클립스도 프로잭트설정에서 -framework 옵션을 사용할수있습니다.(당연한 말이지만 그옵션은 엑스코드전용옵션이 아니라 MacOSX c++ linker(ld) 옵션입니다.)
링크과정에서 코코아 프레임웍 오픈지엘 프래임웍등이 필요합니다.

이큼립스를 실행시키고 핼로월드 프로잭트를 만듭니다.


main.cpp파일을 다음과 같이 바꾼다.

//============================================================================

// Name        : test1.cpp

// Author      : 

// Version     :

// Copyright   : Your copyright notice

// Description : Hello World in C++, Ansi-style

//============================================================================

//기본 A1형

#include <irrlicht.h>

//#include <windows.h>

int main() {

irr::IrrlichtDevice *pDevice =irr::createDevice(irr::video::EDT_OPENGL);

//irr::IrrlichtDevice *pDevice;

pDevice->setWindowCaption(L"Type-A1");


irr::video::IVideoDriver *pVideo = pDevice->getVideoDriver();

irr::scene::ISceneManager *pSmgr = pDevice->getSceneManager();

irr::gui::IGUIEnvironment *pGuiEnv = pDevice->getGUIEnvironment();

pDevice->getFileSystem()->changeWorkingDirectoryTo("../../res");

pSmgr->addCameraSceneNode(0, irr::core::vector3df(0, 10, -20),

irr::core::vector3df(0, 0, 0));

//큐브 노드 만들기

{

irr::scene::ISceneNode *pNode = pSmgr->addCubeSceneNode();

pNode->setMaterialFlag(irr::video::EMF_LIGHTING, false);

pNode->setMaterialFlag(irr::video::EMF_WIREFRAME, true);

}


//프레임 레이트 표시용 유아이

irr::gui::IGUIStaticText *pstextFPS = pGuiEnv->addStaticText(L"Frame rate",

irr::core::rect<irr::s32>(0, 0, 100, 20), true, true, 0, 100, true);

while (pDevice->run()) {

static irr::u32 uLastTick = 0;

irr::u32 uTick = pDevice->getTimer()->getTime();

irr::f32 fDelta = ((float) (uTick - uLastTick)) / 1000.f; //델타값 구하기

uLastTick = uTick;

//프레임레이트 갱신, 삼각형수 표시

// {

// wchar_t wszbuf[256];

// swprintf(wszbuf, L"Frame rate : %d\n TriAngle: %d",

// pVideo->getFPS(), pVideo->getPrimitiveCountDrawn());

// pstextFPS->setText(wszbuf);

// }

pVideo->beginScene(true, true, irr::video::SColor(255, 100, 101, 140));

pSmgr->drawAll();

pGuiEnv->drawAll();

pVideo->endScene();

}

pDevice->drop();

return 0;




그 다음 헤더파일경로를 추가해준다.
Gcc c++ Compier -> Includes


이번에는 라이브러리를 추가해준다.

MacOSX c++ linker / Libraries



마지막으로 프레임웍 옵션을 추가해줍니다.

MacOSX c++ linker -> Miscellaneous -> Linker flags 텍스트 박스에  

-framework GLUT -framework OpenGL -framework Cocoa -framework IOKit -framework Carbon

을 타이핑 해넣어줍니다.



참고로 엑스 코드상에서 다음과 같은 내용입니다.

XXX.framework 형태로 되어있는것이

이클립스상에서는 링커옵션을 직접 넣어주므로
-framework XXX
이런식으로 써주면됩니다.

framework이란 헤더와 립파일을 묶어 놓은 개념입니다.
참고로 리눅스나 윈도에서는 링커에서 framework옵션이 존재하지않습니다.




시스템/라이브러리/frameworks/  에 모아져 있습니다.
헤더파일과 라이브러리 파일이 모아진 폴더형태입니다.



컴파일이 무사히 마쳤으면 실행을 해야합니다.


그냥 바로 실행을 하면 화면상에 아무것도 나오지 않을것입니다.

Run Confiurations-> Environment 에서

new 를 해서 항목을 생성하고 
DISPLAY 0.0 이라고 설정한후 실행하면됩니다.


 
 

실행화면입니다.

ps.

참고로 맥에서 컨트롤+스페이스는 다른키로 예약이 되어있기때문에 이클립스의 자동완성 기능을 쓰실려면 아래와 같이 수정을 해줍니다.

Ecilpse->환경설정


옵션+스페이스 키로 바꾼예입니다.


-참고자료-  

http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=25355&sid=96f55fb1f9fc9649cb6270b2e2420404

이클립스로 윈도에서 일리히트 엔진사용하기
http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-easy-tutorial-intro.html

윈도에서 이클립스로 아이폰어플개발하기
http://rosagigantea.tistory.com/354

동영상

http://www.youtube.com/watch?v=pA75ltC1LVU

리눅스에서 사용하기...

http://www.sensobots.de/Documentation/TUTORIAL_irrlicht_eclipse_cdt/irrlicht-cdt-linux.html

http://www.irrlicht3d.org/wiki/index.php?n=Main.UsingEclipseWithIrrlicht

맥에서 이클립스로 오픈지엘사용하기
http://dirkraffel.com/2008/01/17/eclipse-cdt-on-mac-os-x/
http://jaeyoung.tistory.com/234


맥에서 이클립스로 쿠다쓰기
http://eaglface.blogspot.com/2009/04/mac-os-xeclipse-cdt-cuda.html

Max OsX용  일리히트 프레임웍 만들기 관련 포스트
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=42601 





And

일리히트엔진 알피지게임 레벨 에디터

|
And

irrlicht 동영상 재생 라이브러리

|
And

일리히트용 공개 파티클엔진 spark 와 전용 에디터

|
And

C#으로 네이티브 코드 접근하기 part 3. 네이티브클래스 랩퍼

|
이전 강좌에서 만들었던 CTest클래스를 그대로 사용하겠습니다.

매나지드c++로 랩퍼 DLL을 만들어서 이것을 우회적으로 경유하여 네이티브코드와 매나지드코드를 붙이는 방법입니다.

먼저 프로잭트 세팅을 다음과 같이 해줍니다.



기본적으로 매나지드 코드이기 때문에 네이티브 c++쪽 선언정보를 다음과 같이 #pragma unmanaged 키워드로 감싸서 표기 합니다.



이렇게 하면 매나지드 c++코드에서 네이티브 코드를 혼용해서 사용할수 있습니다. 단점은 CLR에서는 인탤리젼트 기능이 무력화되있기때문에 약간은 좀 불편 하실수도있습니다. 그러나 비주얼 어시스트를 쓰면 됩니다. ^^;

다음은 랩퍼 클래스입니다.



CreateTest라는 함수를 먼저 보면 인스턴스를 만들어 주는 함수인데요.




네이티브 코드의 정적 함수를 호출하여 네이티브 객체를 Wrap함수에 넘겨주는 일을 합니다.

그 다음 Wrap에서는 받아온 네이티브 포인터를 매나지드 참조형( ^  이라고 표기되는... )으로 바꿔 주는 역활을 합니다.


gcnew를 써서 랩퍼 객체를 만들어 줍니다. 생성자는 인자로 네이티브포인터를 받습니다.

생성자는 아래와 같이 구현됩니다.



가장 중요한(?) 더하기 기능을해주는 함수는 아래와 같이 네이티브 코드를 원격 호출하는것으로 구현됩니다.





이렇게 만들어진 DLL은 매나지드코드와 연결이 가능한 DLL입니다. 이걸가지고 각종 .Net40 환경의 여러 언어들과 소통이 가능합니다.

C#프로잭트에 Add Reference 해주셔야합니다.
lime.dll은 매나지드 랩퍼 dll이고
testDll.dll은 순수 네이티브 dll 입니다.



C#으로 쓰는 예는 다음과 같습니다.





소스 첨부 합니다.




And
prev | 1 | 2 | 3 | 4 | next