Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / [D3D11]Base render pipeline (3 стр)

[D3D11]Base render pipeline (3 стр)

Страницы: 1 2 3 4 Следующая »
innuendoПостоялецwww11 янв. 201822:50#30
Osiris
> по делу давай)

берёшь код из туторила и сравниваешь каждую строчку

bykabakПостоялецwww11 янв. 201822:53#31
Osiris,

У тебя тестовый проект ? Учебный ?  В чём проблема показать код ? - И тебе подскажут где у тебя косяк.

OsirisПостоялецwww11 янв. 201822:53#32

// Vertex
struct Point_2DGUI_Vertex
{
  // координаты
  FLOAT  X, Y, Z;
  // область отсечения
  FLOAT  ssLeft, ssTop, ssRight, ssBottom;
  // цвет
  DirectX::XMFLOAT4  Color;
  // текстурыне координаты
  FLOAT  tu, tv;

  Point_2DGUI_Vertex() {};
  Point_2DGUI_Vertex(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fssLeft, FLOAT fssTop, FLOAT fssRight, FLOAT fssBottom, DirectX::XMFLOAT4 dColor, FLOAT ftu, FLOAT ftv)
  {
    X = fx; Y = fy; Z = fz;
    ssLeft = fssLeft, ssTop = fssTop, ssRight = fssRight, ssBottom = fssBottom;
    Color = dColor;
    tu = ftu; tv = ftv;
  }

  Point_2DGUI_Vertex(DirectX::XMFLOAT3 vPos, DirectX::XMFLOAT4 vScissorRect, DirectX::XMFLOAT4 dColor, FLOAT ftu, FLOAT ftv)
  {
    X = vPos.x; Y = vPos.y; Z = vPos.z;
    ssLeft = vScissorRect.x, ssTop = vScissorRect.y, ssRight = vScissorRect.z, ssBottom = vScissorRect.w;
    Color = dColor;
    tu = ftu; tv = ftv;
  }
};

  D3D11_INPUT_ELEMENT_DESC polygonLayout[4];

  polygonLayout[0].SemanticName = "POSITION";
  polygonLayout[0].SemanticIndex = 0;
  polygonLayout[0].Format = DXGI_FORMAT_R32G32B32_FLOAT;
  polygonLayout[0].InputSlot = 0;
  polygonLayout[0].AlignedByteOffset = 0;
  polygonLayout[0].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
  polygonLayout[0].InstanceDataStepRate = 0;

  polygonLayout[1].SemanticName = "TEXCOORD0";
  polygonLayout[1].SemanticIndex = 0;
  polygonLayout[1].Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
  polygonLayout[1].InputSlot = 0;
  polygonLayout[1].AlignedByteOffset = D3D11_APPEND_ALIGNED_ELEMENT;
  polygonLayout[1].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
  polygonLayout[1].InstanceDataStepRate = 0;

  polygonLayout[2].SemanticName = "COLOR";
  polygonLayout[2].SemanticIndex = 0;
  polygonLayout[2].Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
  polygonLayout[2].InputSlot = 0;
  polygonLayout[2].AlignedByteOffset = D3D11_APPEND_ALIGNED_ELEMENT;
  polygonLayout[2].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
  polygonLayout[2].InstanceDataStepRate = 0;

  polygonLayout[3].SemanticName = "TEXCOORD1";
  polygonLayout[3].SemanticIndex = 0;
  polygonLayout[3].Format = DXGI_FORMAT_R32G32_FLOAT;
  polygonLayout[3].InputSlot = 0;
  polygonLayout[3].AlignedByteOffset = D3D11_APPEND_ALIGNED_ELEMENT;
  polygonLayout[3].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
  polygonLayout[3].InstanceDataStepRate = 0;

Просто 3 координаты

  m_pVertex0->X = 0;
  m_pVertex0->Y = 0.5f;

  m_pVertex1->X = -0.5f;
  m_pVertex1->Y = -0.5f;

  m_pVertex2->X = 0.5f;
  m_pVertex2->Y = -0.5f;

И вот так в отладчике
vertexes | [D3D11]Base render pipeline

bykabakПостоялецwww11 янв. 201822:56#33
Не часть, а весь код проекта.  ( много мест где могут быть косяки )
OsirisПостоялецwww11 янв. 201823:01#34
bykabak
> У тебя тестовый проект ? Учебный ? В чём проблема показать код ? - И тебе
> подскажут где у тебя косяк.
Это коммерческий проект, но дело даже не в том, именно что ошибка может быть много где, но что-то я упускаю, вот я даже в теории не знаю, что должно случится кроме depth test и face clipping, чтобы не был выполнен пиксель шейдер, и то и другое я отключил.
maks242Постоялецwww11 янв. 201823:09#35
Еще бы глянуть timeline в event list'e. Мало ли, вдруг чего ты не установил.
OsirisПостоялецwww11 янв. 201823:14#36
event_list | [D3D11]Base render pipeline
я смотрю что в простом примере даже depth stencil не ставят
maks242Постоялецwww11 янв. 201823:24#37
В Input Assembler по-прежнему ничего нет? После того, как изменил вершины?

Правка: 11 янв. 2018 23:24

bykabakПостоялецwww11 янв. 201823:31#38
Osiris,
Это коммерческий проект

Занавес...

чтобы не был выполнен пиксель шейдер

Чтобы он не был выполнен, его нужно убрать из установленных для выполнения с помощью PSSetShader Иначе будет выполняться то, что прикреплено в качестве текущего PS.

Правка: 11 янв. 2018 23:35

OsirisПостоялецwww11 янв. 201823:34#39
maks242
> В Input Assembler по-прежнему ничего нет? После того, как изменил вершины?
Да вот удивляюсь, что ничего, при чем я перепроверил объявление вершин, размер, что загружено и вот что-то ему не нравится там. Попробую упростить убрать все лишнее, сделать в лоб как в примере, но уже завтра.
maks242Постоялецwww11 янв. 201823:49#40
И еще у тебя установлен IndexBuffer при вызове метода Draw.
OsirisПостоялецwww12 янв. 201810:35#41
maks242
> И еще у тебя установлен IndexBuffer при вызове метода Draw.
Уберу, но мне кажется это не связано, он просто должен игнорировать
prowkanПостоялецwww12 янв. 201811:32#42
Osiris
> вот я даже в теории не знаю, что должно случится кроме depth test и face
> clipping, чтобы не был выполнен пиксель шейдер
Viewport, Scissor.
OsirisПостоялецwww12 янв. 201811:34#43
prowkan
Viewport выставлен, scissor не выставлен, но вроде не обязательно. Пробую отключить все, что можно. Даже простой треугольник в float3 в вершинном не выводит, где-то в очень тупом месте косяк чую)
innuendoПостоялецwww12 янв. 201811:52#44
жду развязки остросюжетного детектива
Страницы: 1 2 3 4 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр