Loading...

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으로 값이 채워진다. 이 사실을 간과한 것이 커다란 삽질의 시초였다. 버텍스버퍼로 락, 언락을 걸어서 넣는 방식이 아니라 셰이더 파일 내에 전역변수 어레이를 두어서 이곳에서 찾아서 쓰게 하는 구조로 만들고 있었다. 그런데 이아이가 항상 화면의 ..

USES_CONVERSION

다들 아는 매크로지만. USES_CONVERSION 이란 매크로를 사용하면 급할 경우 유니코드와 안시 사이의 변환을 간단하게 할 수 있습니다. 사용법은 간단하지요. // use it to call OLE here USES_CONVERSION; pI->SomeFunctionThatNeedsUnicode(T2OLE(lpszA)); 정의된 매크로는 다음과 같습니다. 매크로 인자 결과 A2CW (LPCSTR) (LPCWSTR) A2W (LPCSTR) (LPWSTR) W2CA (LPCWSTR) (LPCSTR) W2A (LPCWSTR) (LPSTR) T2COLE (LPCTSTR) (LPCOLESTR) T2OLE (LPCTSTR) (LPOLESTR) OLE2CT (LPCOLESTR) (LPCTSTR) OLE2T (L..

2009. 8. 8. 17:10

shader SetValue

ID3DXBaseEffect::SetValue Set the value of an arbitrary parameter or annotation, including simple types, structs, arrays, strings, shaders and textures. HRESULT SetValue( D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes );그래그래.. 분명 msdn에는 setvalue함수에 어레이가 가능하다고 적혀있단 말이야.그래서 난 큐브를 찍기 위해 아래와 같이 정점을 만들었지.D3DXVECTOR3 vertices[] = { D3DXVECTOR3( -1, 1, 1), /// v0 D3DXVECTOR3( 1, 1, 1), /// v1 D3DXVEC..

2009. 8. 7. 12:29

[MAP TOOL] smd + map editor

3주가량 제작한 맵툴. 기존에 만들어 둔 smd, ase를 붙였다. 한가지 크리티컬한 단점이 있다. 맵툴로서 가장 필요한 기능인 저장이 안된다는 .....ㅜㅜ...쿨럭.. 사실 이건 처음부터 게임에서 쓰기 위해 만든게 아니라 지형과 케릭터 공부를 위해 만든 거였다.

2009. 8. 7. 12:26

[PUSH PUSH] 첫 게임

이 게임 처음으로 만든 게임이었다. mfc로 만든 푸시푸시 게임. 당시에는 핸드폰으로 즐겼었는데 심심해서 한번 만들어 보았었다. 만들다 보니 멀티플레이까지 만들어 보고 싶은 욕심이 났다. 그래서 서버 공부를 하면서 서버를 제작하기 시작했다. ui는 물론 인터넷에서 샤샤샥~, 그리고 원래 디자인 작업을 워낙 많이 했으므로 그다지 어려움은 없었다. 그러나.... 아..시바.. 만들던 도중 연구실 문제와 유학문제, 그리고 아카데미 문제등 때문에 시간이 없어 종료하고 말았다. ㅜㅜ. 결국 일인용만 가능하게 되었다....쿨럭...