2016-03-31 2 views
0

Я создаю небольшой движок игры в Direct X 11, который идет отлично, но я заметил, что 3D-объекты, а также 2D-объекты кажутся очень грубыми по краям при рендеринге. Я ранее был из Direct X 9, и этого вопроса там не было. Мне было интересно, как я могу правильно включить сглаживание или какую-то мультисэмплинг, чтобы мои текстуры не выходили с зубчатыми краями.Прямые X 11 зубчатые края

swapChainDesc.SampleDesc.Count = 2; 
swapChainDesc.SampleDesc.Quality = 0; 

depthBufferDesc.SampleDesc.Count = 2; 
depthBufferDesc.SampleDesc.Quality = 0; 

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

ответ

1

Кроме того, включение счетчика выборки MSAA для визуализации цели подкачки цепочки, ваш буфера глубины/трафарета, и используя правильные значения для родственных видов (D3D11_TEX2DMS_RTV, D3D11_DSV_DIMENSION_TEXTURE2DMS), вам нужно на самом деле установить D3D11_RASTERIZER_DESC.MultisampleEnable ИСТИНУ в вашей растеризации гласит:

CD3D11_RASTERIZER_DESC rastDesc(D3D11_FILL_SOLID, D3D11_CULL_NONE, FALSE, 
    D3D11_DEFAULT_DEPTH_BIAS, D3D11_DEFAULT_DEPTH_BIAS_CLAMP, 
    D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS, TRUE, FALSE, 
    TRUE /*this is MSAA enable*/, FALSE); 

Смотрите Simple rendering урок DirectX Tool Kit для более подробного примера.

С поддержкой функции Direct3D 10.1 или выше аппаратное обеспечение поддерживает 4x MSAA. Оборудование Direct3D Feature Level 11.0 или выше поддерживает 4x и 8x MSAA. Все должно поддерживать 2x MSAA.

+0

Это, казалось, работало для краев, но моя текстура все еще слегка отчуждена. Например, простая текстура кольца слегка искажена, и вы можете видеть ее внутри. У меня есть скриншот, который сравнивает исходное изображение с тем, что на самом деле отображается в игре. https://www.dropbox.com/s/epkipy37o0b3yq7/comparison.png?dl=0 Может ли быть какая-то другая проблема? Этого не происходит в Direct3D 9 или где-либо еще. – user5901143

+0

В конвейере много государств, поэтому может быть множество причин. У вас разные фоны на двух изображениях, что также способствует различиям в смешении. Выполняете ли вы какие-либо изменения в тексте (https://msdn.microsoft.com/en-us/library/windows/desktop/bb205073.aspx#Mapping_Texels_to_Pixels_DX10) в ваших шейдерах? –

+0

Для исходного изображения я добавил черный фон с помощью gimp. Но так оно и должно выглядеть. Я не делаю никаких изменений, мой шейдер только делает базовое текстурирование без каких-либо эффектов или модификаций. – user5901143

Смежные вопросы