#directx #rendering #line #direct3d #primitive
#directx #рендеринг #линия #direct3d #примитив
Вопрос:
Я понимаю, что Direct3D должным образом не поддерживает толщину линии, и фактически на большинстве графических устройств линии на самом деле представляют собой просто свернутые прямоугольники.
По крайней мере, я думал, что это так, пока я не попытался на самом деле реализовать толщину линии, отображая прямоугольники вместо линий, и обнаружил, что они теряют детализацию и в конечном итоге становятся невидимыми при уменьшении масштаба; в то время как линейные примитивные типы, похоже, гарантированно всегда будут иметь ширину 1 пиксель независимо от масштаба.
Я создаю программу просмотра AutoCAD, линии в которой являются довольно распространенным объектом и должны поддерживать толщину; но независимо от уровня масштабирования ширина всегда должна быть не менее одного пикселя.
Кто-нибудь может предложить стратегию для достижения этого; в идеале, настройка параметров рендеринга, а не разработка того, следует ли отображать линии вместо прямоугольников?
[Редактировать] Следовало бы упомянуть; это Direct3D 9 дюймов .Сеть через SlimDX.
Ответ №1:
Самый простой подход, который я могу придумать, заключался бы в том, чтобы отобразить линии в виде простых квадратов в 2D и заставить пиксельный шейдер записать значение oDepth, содержащее правильную глубину 3D перспективы.