2014-07-22 1 views
0
내가, 내가 그래서 여기 내 삼각형 색상을 directX11 새로운 싶은거야

내 VertexShader입니다 :색상 HLSL DirectX11는

struct PS_IN 
{ 
    float4 pos : SV_POSITION; 
    float4 color : COLOR; 
}; 

무엇이 잘못 되었나요? 그것은 절대적으로 아무것도 보여주지 않습니다! 여기

+0

더 많은 코드를 제공하십시오. 꼭지점 버퍼 (삼각형의 좌표)를 보여 주시겠습니까? 기본적으로 버텍스 쉐이더, 픽셀 쉐이더, 초기화 버텍스 버퍼, drawprimitives 호출 등을 설정 한 코드를 표시 하시겠습니까? – Ante

+1

그래픽 프로그램 디버깅은 여러 가지 이유로 '아무 것도 나타나지 않습니다'라는 결과를 얻을 수 있기 때문에 어려운 일입니다. 몇 가지 시도해보기 : (1) Direct3D 11 [디버그 레이어] (http://blogs.msdn.com/b/chuckw/archive/2012/11/30/direct3d-sdk-debug-layer-tricks)를 활성화하십시오. aspx) 및 진단 메시지 찾기 (2) Visual Studio [그래픽 디버거] (http://msdn.microsoft.com/en-us/library/hh873207.aspx)를 사용하거나 (3) 기존의 [자습서 ] (http://code.msdn.microsoft.com/Direct3D-Tutorial-Win32-829979ef) 한 번에 한 단계 씩 수정하여 작동 원리를 이해하십시오. –

+0

직접 사용할 수있는 유용한 Direct3D 11 유틸리티 코드의 모음으로 [DirectX Tool Kit] (http://go.microsoft.com/fwlink/?LinkId=248929)를보고 싶을 수도 있습니다. 샘플 코드 작업. –

답변

-1

자세히입니다 : 내 입력 레이아웃 설명과 정점 구조체 :

struct Vertex 
{ 
    Vertex(); 
    XMFLOAT3 pos; 
    XMFLOAT4 color; 
    Vertex(float x, float y, float z,float cr,float cg,float cb,float ca) : pos(x, y, z),color(cr,cg,cb,ca){} 
}; 

D3D11_INPUT_ELEMENT_DESC IED[]= 
{ 
    { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, 
    { "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 } 
}; 

여기가 정점입니다 : 내가 그것을 색상을 추가하기 직전

Vertex vertices[] = 
    { 
     Vertex(0.0f, 0.5f, 0.5f,1.0f,1.0f,0.0f,1.0f), 
     Vertex(0.5f, -0.5f, 0.5f,0.0f,0.0f,1.0f,1.0f), 
     Vertex(-0.5f, -0.5f, 0.5f,0.0f,1.0f,1.0f,0.0f), 
    }; 

삼각형 완벽하게 표시됩니다.