DirectX 10 Начертайте текст към текстура

Опитвам се да начертая текст към текстуриран мрежест обект. Мрежата е основно куб, който е залепен в предната част на екрана. (като цяло се стремя към система от менюта). След малко гугъл намерих изненадващо малко информация за това как да начертая текст към текстура. Четох, че трябва да е толкова просто, колкото да направите текстура, да я зададете като източник за рендиране и след това да рисувате към нея, но не мога да разбера това.

Някакви идеи, предложения или скелетен код с необходимите извиквания на функции, които да ми дадат старт?


person BOMEz    schedule 17.11.2010    source източник


Отговори (2)


Когато трябва да изобразите текст в текстура, трябва да настроите изобразяване на текстура, както Адам предложи, за да изобразите текст в действителност, можете да направите това

Създайте шрифт и спрайт

D3DX10CreateFont(device, 16, 0, FW_BOLD, 0, FALSE, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Verdana", &font);
D3DX10CreateSprite(device, 256, &sprite);

и изобразете

hr = sprite->Begin(0);
left = L"Some text to render";
RECT r;
r.top = 0;
r.bottom = window->height;
r.left = 0;
r.right = window->width;
hr = font->DrawTextW(sprite, left.c_str(), -1, &r, DT_LEFT | DT_TOP | DT_CALCRECT, D3DXCOLOR(0.0f, 1.0f, 0.0f, 1.0f));
hr = font->DrawTextW(sprite, left.c_str(), -1, &r, DT_LEFT | DT_TOP, D3DXCOLOR(0.0f, 1.0f, 0.0f, 1.0f));
//hr = sprite->Flush();
hr = sprite->End();
device->OMSetBlendState(NULL, 0, 0xffffffff);

Внимавайте, изобразяването на спрайт променя състоянието на смесване, така че не забравяйте да го зададете по подразбиране. Ако имате нужда само от "текст върху обикновена повърхност" (без нанасяне на текстура върху мрежа), можете да изобразите спрайт в основната сцена вместо текстура.

person Ondrej Petrzilka    schedule 14.12.2010
comment
Мислех, че е доста правилно...но трябва да включа това: HRESULT hr; std::wstring ляво; - person Ondrej Petrzilka; 20.12.2011

Вижте раздела „Изобразяване на текстура“ в Създаване Ресурси за текстури за много полезна документация. Това предоставя няколко фрагмента от примерен код, които трябва да ви помогнат да продължите по пътя си.

person Adam Rosenfield    schedule 17.11.2010