기본 콘텐츠로 건너뛰기

2011의 게시물 표시

cocos2d-x

이전엔 cocos2d로 아이폰 개발했었는데, 지금은 cocos2d-x로 전환하기 위해서 테스트 중입니다. 다양한 플랫폼 지원이 괜찮네요. lua script 지원도 괜찮구요. ㅎㅎ http://www.cocos2d-x.org/

py2exe

from distutils.core import setup import py2exe, sys #setup( console=["test.py"] ) ##setup( windows=[ {"script" : "test.py"}], ## options={ ## "py2exe":{ ## "packages" : ["encodings", "wx",]} ## } ## ) ##sys.argv.append("py2exe") ## ##setup(console=["test.py"], ## options={ ## "py2exe":{ ## "packages" : ["pywinauto", "pywinauto.controls", "pywinauto.application"], ## "bundle_files":1, ## "optimize":2, ## } ## }, ## zipfile = None ## ) # 현재(2011-12-29)까지 가장 작은 개수에 파일을 만들어줍니다. setup(console=["test.py"], options={ "py2exe":{ "compressed":1, "optimize":2, "bundl

Direct3D11 - Intrinsic Functions 내장 함수

Intrinsic Functions 내장 함수 다음은 HLSL이 기본 제공하는 함수들과 관련 설명들입니다. 우선 HLSL 5.0(D3D11)에서 추가된 함수들입니다. 이 함수들에 대한 자료는 아직 매우 빈약한 편이어서 차츰 업데이트하는 방식을 택하겠습니다. 또, 새로 도입이 되긴 했지만 Vetex/Pixel/Geometry shader 어디에서도 아직 사용할 수 없는 함수들도 있습니다. 이런 함수들 역시 사용가능하게 되고 참고할 수 있을 때 업데이트하는 방식을 취할까 합니다. 1. AllMemoryBarrier()     모든 메모리 Access가 끝날 때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 2. AllMemoryBarrierWithGroupSync()     모든 메모리 Access가 끝나고 모든 쓰레드들이 이 함수 지점까지 도달할    때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 3. DeviceMemoryBarrier()    모든 디바이스 메모리 Access가 끝날 때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 4. DeviceMemoryBarrierWithGroupSync()    모든 디바이스 메모리 Access가 끝나고 모든 쓰레드들이 이 함수 지점까지 도달할    때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 5. GroupMemoryBarrier    그룹 메모리 Access가 끝날 때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 6. GroupMemoryBarrierWithGroupSync     모든 그룹 메모리 Access가 끝나고 모든 쓰레드들이 이 함수 지점까지 도달할    때까지그룹 내의 모든 쓰레드들의 실행을 막는다. 7. dst:   두 벡터 간의 거리(distance)를 구한다.    fVector dst(      __in  fVector src0,      __in  fVector src1    ); 8. EvaluateAttributeAtCentro

Game 개발시 주의점 - 평정심 유지

오늘은 게임 개발에 대한 얘기입니다. 보통에 게임 개발자들은 조금 괜찮은 기술이 있다면 이걸 다른 곳에 마구 적용할려고 한다. 워~~ 워~~ 평점심을 유지해야할 때이다. 이럴때 실수하기가 쉽기때문이다.  한번 내뱉은 말은 주워담기 힘든 조직이라면 특히나 그렇고, 이 반대인 경우 즉 아무 말이나 내뱉고 주워담지도 않는 조직도 그렇다. 나또한 게임 개발자이지만, 평소에 평정심을 유지할려고 노력하는 편이다. 자~ 잊지말자~ 평정심~~

Spherical Hamonic

기반 지식이 많이 필요합니다. 참조 Spherical Harmonic Lighting: The Gritty Details Spherical Harmonics Lighting 정리 Wikipedia WebGL 기반 샘플 지호님 홈페이지 Physically Based Rendering Shading in Valve’s Source Engine Spherical Harmonic Lighting using OpenGL

입체각이란?

원본으로 이동 소요유   (2002-09-26 09:02:19) 흠~ 그 동네에서도 나오는 모양이군요. 입체각을 이해하기 위해서는 빛을 예로드는 것이 편리합니다. 랜턴을 안개낀 날 밤에 비추면 빛의 세기는 거리에 따라 제곱분에 일로 감소합니다. 그러나 그 렌턴으로부터 나온 빛이 일정거리에서 차지하는 면적은 거리의 제곱에 비례하여 넓어집니다. 이때 변하지 않는 양은 (빛의 흡수가 없다면) 빛의 총에너지량과 또하나가 랜턴에서 나오는 빛이 만드는 원뿔의 각도입니다. 즉 이 빛원뿔을 따라가다 보면 거리에 따라 퍼지는 정도, 즉 단위면적당 빛의 에너지는 거리의 제곱에 반비레하지만, 이 빛이 통과하는 표면의 넓이는 거리의 제곱에 비례하여 커집니다. 소요유   (2002-09-26 09:07:51) 따라서 빛과 같이 직진성을 갖는 양의 3차원적인 '방사'는 이 빛원뿔 내부의 각도로 나타내면 편리하게 됩니다. 이 '원뿔'의 각도를 입체각으로 정의하게됩니다. 입체각은 위에 설명하였듯이 거리에 따라 변하지 않는 양으로 정의하게 됩니다. 즉 차원이 없는 양이됩니다. 입체각= (어느거리에서의 면적)/(거리의 제곱). 소요유   (2002-09-26 09:09:43) 반지름이 R인 구의 표면의 면적은 4 pi R^2이되므로 구의 입체각 = 4 pi R^2 / R^2 = 4 pi (steradian) 이 됩니다. 천칠이   (2002-09-26 09:31:02) 간혹 기존의 개념과 비교해서 생각하면 도움이 되는 경우도 있죠. 평면각을 생각해보시기 바랍니다. 원에서 부채꼴을 하나 조각내서 떼어왔다고 보면 그 중심각이 우리가 부르는 평면각과 마찬가지이죠. 이 평면각은 호의 길이에 비례하므로 우리가 라디안이라고 부르는 단위가 쓰입니다. 입체각은 말그대로 이것을 입체로 확대시킨 개념입니다. 구에서 "원뿔" 모양을 잘라냈다고 봤을 때 그 중심의 "입체각"은 곧 구면 원뿔

티브이

ㅎㅎ

저녁 먹는중

김밥 ㅋㅋ

동료 1

회사 동료. 사람이 좋다 ㅋㅋ

iPhone 3GS - iOS 5 엡데이트

모든 앱 사라지다. 어느 PC에서 동기화했는지 모르겠네 ㅜㅜ

MacPorts 설치

Mac OS X Lion 설치 후 macport 재설치중 ... 에 출근 ... 1. path 수정 $ sudo vim /etc/paths 파일에 /opt/local/bin 라인 추가 후 리부팅 (또는 재 로그인) 2. mac port 새버전 설치 (잘 안 쓰는 거지만 sudo 보다는 root 가 편해서 그냥 이렇게 한다. 이건 알아서...) $ sudo su - # mkdir /opt/mports # cd /opt/mports # svn checkout http://svn.macports.org/repository/macports/trunk # cd /opt/mports/trunk/base # ./configure --enable-readline # make # sudo make install # make distclean # port install subversion +unicode_path # port selfupdate # port upgrade outdated 3. 사양과 뭘 설치했었는지 (또는 신규 설치인지) 에 따라서 몇십분에서 몇시간 기다리면 됨. 출근하느라 그냥 맥북 뚜껑 덮고 와서 ... 퇴근 후에 다시 중단 됐던 곳부터 계속 가겠지 ..

Light Pre-Pass Renderer

Geometry Pass Depth(xy), Normal(xy) Geometry Buffer(이하 G-Buffer) 저장 Light Properties Pass 아래 최종 색상 식에 미리 계산된 항목을 Light Buffer(이하 L-Buffer) 최종 색상 = Ambient + Shadow * Att * (N.L * diffuseColor * diffuseIntensity * diffuseLightColor + R.V^n * specularColor * specularIntensity * specularLightColor ) Light Properties - N.L - LightColor (Diffuse, Specular) - R.V^n - Attenuation Light Texture(A8R8G8B8 format) - Channel 1 : diffuseLightColor.r * N.L * Att - Channel 2 : diffuseLightColor.g * N.L * Att - Channel 3 : diffuseLightColor.b * N.L * Att - Channel 4 : R.V^n * N.L *Att 아래는 관련 Shader Code 입니다. half4 ps_main( PS_INPUT Input ) : COLOR { half4 G_Buffer = tex2D( G_Buffer, Input.texCoord ); // Compute pixel position half Depth = UnpackFloat16( G_Buffer.zw ); float3 PixelPos = normalize(Input.EyeScreenRay.xyz) * Depth; // Compute normal half3 Normal; Normal.xy = G_Buffer.xy*2-1; Normal.z = -sqrt(1-dot(Normal.xy,Normal.xy)); // Computes light attenuation and direction float3 LightDir = (Input.

D3D이용 2D출력시 마법의 숫자 -0.5 에 대하여

원본 : www.gamza.net ** D3D이용 2D출력시 마법의 숫자 -0.5 에 대하여 ** copyrightⓒ Gamza 2008-07-06 13:37:10 추천: 128 조회: 4,702 시대도 시대이니만큼 CPU의 픽셀연산을 몽땅 버리고, 블렌딩/확대/축소/필터링/멀티텍스쳐링/컬러쉐이딩등 수많은 하드웨어 가속기의 능력을 사용해 보려고 마음을 먹었습니다. 그런데 열받는것이....D3D로 2D출력을 해보니...이넘이 색상이 뭉개지는것 같기도 하고, 한 텍셀씩 밀린다거나 끝쪽에 한라인이 삐져나오는등...벼라별 문제가 다 일어나는겁니다. 모처럼만에 큰맘먹고 3D가속기를 써보려던 마음이 마구 흔들리는 순간입니다. 이럴때 구원의 숫자 -0.5가 등장하죠. D3D로 2D출력할때 x,y좌표에서 0.5를 빼주면 희한하게도 깔끔하게 나오는것을 보게되는데요. 여기선 그 증상과 이유를 간단히 설명드리려고 합니다. "난 -0.5 같은거 안해도 잘만나오는데.." 라고 하시는 분들은...반드시 읽어주세요. 1. 잘못된 구현 D3D로 2D를 표현하려고 할때 십중팔구는 아래처럼 잘못된 구현을 하게됩니다. void DrawTexture( long x, long y, long w, long h, loat tu, float tv, float tw, float th ) { ... Vertex[ 0 ] . position . x = ( float )x; Vertex[ 0 ] . position . y = ( float )y; Vertex[ 1 ] . position . x = Vertex[ 0 ] . position . x + w; Vertex[ 1 ] . position . y = Vertex[ 0 ] . position . y; Vertex[ 2 ] . position . x = Vertex[ 0 ] . position . x + w; Vertex[ 2 ] . position . y