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
D3DXVECTOR3( 1, 1, -1), /// v2
D3DXVECTOR3( -1, 1, -1), /// v3D3DXVECTOR3( -1, -1, 1), /// v4
D3DXVECTOR3( 1, -1, 1), /// v5
D3DXVECTOR3( 1, -1, -1), /// v6
D3DXVECTOR3( -1, -1, -1), /// v7
};그리고 이 아이를 shader에게 이렇게 넘겨 주었어pEffect->SetValue("vecPos", vertices, sizeof(D3DXVECTOR3)*8);fx파일에는 이 변수가 전역으로 float3 vecPos[202]; 이렇게 선언되어 있었지.그런데 십할~!!! 안되는거야.그래서 결국 SetVectorArray를 써보았지.그런데 SetVectorArray는 병신같이 vector4짜리만 받잖아?결국 난 나의 아름다운 코드를 아래와 같이 고쳐서 테스트를 해봤어.D3DXVECTOR4 vertices4[] =
{
D3DXVECTOR4( -1, 1, 1,1), /// v0
D3DXVECTOR4( 1, 1, 1,1), /// v1
D3DXVECTOR4( 1, 1, -1,1), /// v2
D3DXVECTOR4( -1, 1, -1,1), /// v3D3DXVECTOR4( -1, -1, 1,1), /// v4
D3DXVECTOR4( 1, -1, 1,1), /// v5
D3DXVECTOR4( 1, -1, -1,1), /// v6
D3DXVECTOR4( -1, -1, -1,1), /// v7
};그리고 이아이를 shader에게 알려주었지.pEffect->SetVectorArray("vertices4", vertices4, 8);그랬더니....십할..조낸 잘돼...ㅜㅜ..그럼머야...머가 문제야....무조건 vector4야 된다는 거야??그래서 난 다시 어떻게든 msdn을 믿고 SetValue에게 Array를 실험해 보고 싶었지.pEffect->SetValue("vecPos", vertices4, sizeof(D3DXVECTOR4)*8);짜잔~ 결과는 십할 또안돼~~!!!그럼 결국 SetValue는 Array는 지원 안하는 거야??msdn이 내게 구라친거니???그러다가 다시 세시간에 걸쳐 Pix와 PerfHUD를 통해 다시 캐삽질을 해서 알아낸 결과.....SetValue로 어레이를 쓰고 싶다면 fx의 해당 변수에 사이즈를 맞추어라~!!!.fx파일에서 float3 vecPos[202]; 라고 설정했으니까.pEffect->SetValue("vecPos", vertices, sizeof(D3DXVECTOR3)*202); 이렇게 하던지pEffect->SetValue("vecPos", vertices, D3DX_DEFAULT); 이렇게 하라는 거지..조낸....젠장..ㅜㅜ...해결이돼서 기쁘긴 한데....아까운 내시간은 어디로 가버린 거니??....
'Study > Graphics ' 카테고리의 다른 글
not use lock, unlock version font system (0) | 2009.08.24 |
---|---|
shader에서의 dword (0) | 2009.08.15 |
float4에 마지막 w의 값...1이냐 0이냐.... (0) | 2009.08.11 |
Directx9 셰이더 프로그래밍 예제 수정방법. (4) | 2009.07.13 |
HDR Cube Map Sample (0) | 2009.06.25 |
TAGS.