Loading...
2009. 8. 24. 22:29

not use lock, unlock version font system

회사에 들어와서 처음으로 만든 기능이 폰트 시스템이다. TTF파일을 사용하기 때문에 예쁜 폰트를 사용 할 수 있다. 기본적으로 그림자 효과와 외곽선 효과를 지원한다. 2d 폰트야 머 어차피 카메라에 영향을 받지 않으니까 상관이 없다. 3d 폰트는 처음에는 위와 같이 3d 느낌을 주기 위해 회전등을 지원했지만. 게임상에서 어차피 z만 필요하다고 해서 빌보드로 때웠다. 사실 빌보드도 아니고 위치값만 갱신하고 나머지 행렬은 무시한 것 뿐......ㅡㅡ;... 수정요망. 1. 기존 2d는 float4 전역변수에 위치.xy와 텍스쳐.uv 를 넣어서 전달했기 때문에 최대한 많은 갯수를 넘길 수 있어 절약이 가능 했지만 3d 폰트는 위치값이 xyz를 필요로 한다. ㄴ 결론은 다 넘기던지 색상처럼 꾹꾹눌러담아서 블록단..

2009. 8. 23. 10:43

안면도 낚시 여행기

안면도 좌대 낚시 - 수평선 낚시. 다섯명이서 새벽부터 출발한 당일치기 여행. 하루종일 삽질해서 잡은건 별가사리 6개와 삼치 둘, 그리고 새끼 돔 하나......ㅡㅡ;... 집으로향하는 길에 선물로 받은 태양에 그을려 쓰라린 양 팔과 극도의 피곤함... good. 그래도 즐거웠다. ㅡㅡv. 역시 나 so cooooool.ㅎㅎㅎ

Cubemap D3DFMT_DXT1으로 저장하기.

렌더타겟으로 만든 큐브맵 1. pDevice->CreateCubeTexture(iCubemapSize, 1, D3DUSAGE_RENDERTARGET, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &apCubeMapFp, NULL) 저장용으로 만든 큐브맵 2. pDevice->CreateCubeTexture(iCubemapSize, 1, D3DUSAGE_DYNAMIC, D3DFMT_DXT1, D3DPOOL_DEFAULT, &apSaveCubeMapFp, NULL) LPDIRECT3DSURFACE9 pkSurfSrc; LPDIRECT3DSURFACE9 pkSurfDst; for(int i=0; iGetCubeMapSurface((D3DCUBEMAP_FACES)i, 0, &pkSurfSrc )..

FreeType 을 이용한 TrueType Font 파일 읽기

FreeType 을 이용한 TrueType Font 파일 읽기 FreeType 다운로드 참조 : http://freetype.sourceforge.net/index2 혹시 파일을 받으려고 헤메다가 못 받으신 분은 ... -_-;; 여기서 받으세요. (FreeType 2.3.5) http://sourceforge.net/project/showfiles.php?group_id=3157 여기서는 비주얼 스튜디오 6.0 을 기준으로 만든 예제입니다. 물론 다른 버전을 사용하더라도 별 차이는 없습니다. : ) 원본을 보시려면 다음을 참조하세요. http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html 우선 freetype 라이브러리를 다운 받고 적당한..

shader에서의 dword

shader에는 dword형이 존재하지 않는다. 하지만 우리가 입력스트림으로 칼라값을 설정해서 넘길때 보통 dword를 많이 사용한다. struct VS_INPUT { float4 Pos : POSITION; float2 Tex : TEXCOORD0; }; 그리고 argb로 해서 값을 넘긴다. 즉, 빨간색이라면 d3dcolor_argb(255, 255, 0, 0) 이런식으로 설정해 넘긴다. 이렇게 해도 shader 내부에서는 입력스트림일 경우 dword를 float4로 치환하여 사용하기 때문에 문제가 없다. 문제는 입력스트림이 아닌 전역상수로 넘기고자 할 때이다. 전역상수에 float4 vColor;이라고 설정하고 이곳에 SetValue로 값을 넘길때 dword를 넘기면 에러가 난다. 이 경우에는 직접 ..

2009. 8. 12. 12:29

[NNO] 완결 스샷.

마지막종료.. 너무많은 삽질과, 교훈과 배움과 상처와 실망과 아픔을 안겨준 프로젝트. 마지막날 피시방에서 밤새가며 포토샵으로 디자인 작업할때는 모니터에 니킥넣고싶은 심정이었다..

2009. 8. 12. 12:24

비오는날 빈대떡 먹기.

화욜..평일인데도 비가오니 빈대떡이 마구마구 당긴다. 네명이서 출발한 빈대떡 원정. 신림9동 맛집이라는 빈대떡 집을 찾아갔더니..이미 만원. 젝1 후발대를 기다리며 1차를 보쌈으로 때우고. 후발대가 도착해서 다시 빈대떡집 갔더니 아직도 만원....ㅡㅡ;. 이차로 어떻게든 빈대떡을 먹고싶어서 신림 지하철역 쪽으로 다시 택시타고 고고. 빈대떡집 3군데가 전부다 만원........ㅡㅡ;..이건.멍미 평일인데 사람들 일안하고 비오는날 빈대떡이나 먹는거냐!!!! 버럭!! 결국 빈대떡집 세번 실패, 닭집 한번실패후에 동네 닭집으로 가서 닭먹어주고 저녁 11시에 다시 빈대떡먹으로 고고. 역시나 안은 아직 만원, 바깥자리가 때마침 비어서 잽싸게 앉아주었다. 흐헤~ 맛나는 빈대떡. 먹기 시작한지 10분만에 폭우쏟아지고...

float4에 마지막 w의 값...1이냐 0이냐....

오늘도 역시나 개삽질을했다. position값을 버텍스버퍼를 생성해서 셰이더에 넘겨줄때를 생각해 보자. position값은 물론 원래라면 x,y,z,w를 고려한 d3dxvector4가 디폴트 지만 보통은 그냥 귀찮아서 d3dxvector3으로 설정을 해서 넘긴다. 그러면 우리의 위대한 셰이더 님은 입력으로 들어오는 vector가 3짜리이고 셰이더 내의 입력 구조체의 vector가 4짜리라면 마지막 값은 자동으로 1로 채워준다. 그런데 너무나 당연하지만 전역변수는 0으로 값이 채워진다. 이 사실을 간과한 것이 커다란 삽질의 시초였다. 버텍스버퍼로 락, 언락을 걸어서 넣는 방식이 아니라 셰이더 파일 내에 전역변수 어레이를 두어서 이곳에서 찾아서 쓰게 하는 구조로 만들고 있었다. 그런데 이아이가 항상 화면의 ..