유니티3D에서는 원래 C#기반으로 Assembly-CSharp.dll가 게임코드가 Android로 익스포트가 된다.그런데 이는 C# IL코드라서 자바 jar과 마찬가지로 디스어셈블이 되어서 해킹이 당할 가능성이 있다.그래서 C#을 C++언어로 변환하여 so파일로 게임코드를 변환해주는 기능을 하는게 Unity3D IL2CPP 기능이다. 1. Android NDK r10e 다운로드 http://dl.google.com/android/ndk/android-ndk-r10e-windows-x86_64.exe 2. Edit - Preference - External Tools - NDK r10e 폴더 셋팅 3. Edit - Project Setting - PlayerScripting Backend - Mono 2x..
#include #include #include GLubyte rasters[24] = { 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xff, 0x00, 0xff, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xff, 0xc0, 0xff, 0xc0}; void init(void){ glPixelStorei (GL_UNPACK_ALIGNMENT, 1); glClearColor (0.0, 0.0, 0.0, 0.0);} void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0, 1.0, 1.0); //drawing F 3 times glRasterPos2..
OpenGL 2.0은 fixed function pipeline이 없으므로 무조건 GLSL을 사용해야 된다는 것은 익히 알려진 사실이다. 그러면 fixed function pipeline에서 사용하던 어떤 함수들을 사용할수 없을까? 1.0에서 2.0으로 전환하려면 단순하게 GLSurfaceView에서 다음과 같은 문장을 추가하게 되면 2.0을 사용하게 되는 환경으로 전환하게 된다. setEGLContextClientVersion(2); 그런데 1.0으로 작성한 코드중에 대부분은 다음과 같은 에러가 발생하게 된다. E/libEGL(7744): called unimplemented OpenGL ES API 이런 에러메세지들의 대부분은 vertex array에서 발생한다. glEnableClientState,..
Cocos2d-x의 기본 해상도는 960x640이다. 이것은 아이폰4S의 해상도이다. 그런데 이것을 안드로이드 폰의 와이드 해상도인 800x480 (WVGA)이나 1280x720 (HD)으로 15:9/16:9 해상도를 맞추려고 하면 해상도 자체의 aspect ratio를 변경해야 한다. 그래서 기존에 아이폰간의 멀티 해상도를 지원하기 위해서 setDesignResolution, setContentScaleFactor를 조절하라고 되어 있는 함수를 쓰면 안된다. 아래와 같이 GLViewImpl::create대신에 GLViewImpl::createWithRect로 glview의 FrameSize를 변경시켜야 한다. bool AppDelegate::applicationDidFinishLaunching() { ..
Unity3D 장점. 1. reference & tech support 가 확실하다. 2. stable버전 업데이트가 빠르다. 3. 3d적 요소들(파티클 같은)을 다양하게 쓸 수 있다. 4. 기본 에셋 외에 다운로더블 에셋을 따로 지원, 런타임에서 리소스를 다운받아 적용할 수 있다. 단점. 1. 2d로 작업시 최소 필요 용량이 30MB다..(이 미친!!) 2. 2d로 작업시 기본 월드가 3d이므로 좌표 변경이 애매하다. 3. 코어단 수정은.. 정말 최악이다. cocos2d-x 장점. 1. 일단 쉽다. 2. 2d좌표계이므로 좌표계의 정확한 의미만 이해하면 금방 만든다. 3. 라이브러리들을 so로 빌드시에 한개당 대략 4메가쯤 나온다.(본인 코드가 현재 5만줄을 넘어섰으나 포함해도 4메가 정도밖에 안됨) 4..
- Total
- Today
- Yesterday