WDmil 2023. 7. 27. 20:48
728x90

DIrectX에서 사용할 수 있는 타일맵의 표시방식에 대해 확인한다.

 

0.0부터 위치된 기본 타일맵의 위치까지 사각형을 표시한 뒤, 해당 위치에 타일맵을 반복되게 표시한다.

 

    TileSet::Create();

    GenerateTileMap();

    vertices.assign(4, VertexTile());
    vertices[0].position = Values::ZeroVec3;                                // 0.0.0
    vertices[1].position = Vector3(0.0f, (float)spacing, 0.0f);             // 0.40.0
    vertices[2].position = Vector3((float)spacing, 0.0f, 0.0f);             // 40.0.0
    vertices[3].position = Vector3((float)spacing, (float)spacing, 0.0f);   // 40.40.0

    indices = { 0,1,2,2,1,3 };

    vb = new VertexBuffer();
    vb->Create(vertices, D3D11_USAGE_DYNAMIC);

    ib = new IndexBuffer();
    ib->Create(indices, D3D11_USAGE_IMMUTABLE);

    vs = new VertexShader();
    vs->Create(ShaderPath + L"Tile/VertexTile.hlsl", "VS");

    ps = new PixelShader();
    ps->Create(ShaderPath + L"Tile/VertexTile.hlsl", "PS");

    il = new InputLayout();
    il->Create(VertexTile::descs, VertexTile::count, vs->GetBlob());

    wb = new WorldBuffer();
    wb->SetWorld(world);

    inb = new IndexNumBuffer();
    inb->SetIndex(0);

 

기본적인 메커니즘은 전에 사용하였던, TectureRect와 같다.

728x90