Толщина линии Direct3D с немного другим разрешением

#directx #rendering #line #direct3d #primitive

#directx #рендеринг #линия #direct3d #примитив

Вопрос:

Я понимаю, что Direct3D должным образом не поддерживает толщину линии, и фактически на большинстве графических устройств линии на самом деле представляют собой просто свернутые прямоугольники.

По крайней мере, я думал, что это так, пока я не попытался на самом деле реализовать толщину линии, отображая прямоугольники вместо линий, и обнаружил, что они теряют детализацию и в конечном итоге становятся невидимыми при уменьшении масштаба; в то время как линейные примитивные типы, похоже, гарантированно всегда будут иметь ширину 1 пиксель независимо от масштаба.

Я создаю программу просмотра AutoCAD, линии в которой являются довольно распространенным объектом и должны поддерживать толщину; но независимо от уровня масштабирования ширина всегда должна быть не менее одного пикселя.

Кто-нибудь может предложить стратегию для достижения этого; в идеале, настройка параметров рендеринга, а не разработка того, следует ли отображать линии вместо прямоугольников?

[Редактировать] Следовало бы упомянуть; это Direct3D 9 дюймов .Сеть через SlimDX.

Ответ №1:

Самый простой подход, который я могу придумать, заключался бы в том, чтобы отобразить линии в виде простых квадратов в 2D и заставить пиксельный шейдер записать значение oDepth, содержащее правильную глубину 3D перспективы.