Артефакт кубической карты Skybox при включенном буфере глубиныC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Артефакт кубической карты Skybox при включенном буфере глубины

Сообщение Anonymous »

Я пытаюсь оптимизировать свой скайбокс, чтобы использовать только один вызов отрисовки. Но, к сожалению, у меня есть такой вывод:
Изображение
[
Изображение

Отключение буфера глубины (отвязыванием it) решает проблему, но объекты, нарисованные до кубической карты, больше не видны.
Шейдер Skybox записывается как:

Код: Выделить всё

cbuffer Data : register(b0)
{
row_major matrix matWorldViewProj; // MVP transformation
}

TextureCube CubeMapTexture : register(t0);
SamplerState CubeMapSampler
{
Texture = ;
AddressU = CLAMP;
AddressV = CLAMP;

AddressW = CLAMP;
BorderColor = float4(1, 1, 1, 1);

Filter = LINEAR;
};

struct VertexIn
{
float3 Position : POSITION;
};

struct VertexOut
{
float4 Position : SV_POSITION;
float3 UVW : TEXCOORD0;
};

VertexOut VS_Main(VertexIn v)
{
VertexOut output;
output.Position = mul(float4(v.Position, 1.0f), matWorldViewProj);
output.Position.z = output.Position.w;
output.UVW = v.Position;
return output;
}

float4 PS_Main(VertexOut v) : SV_TARGET
{
return CubeMapTexture.Sample(CubeMapSampler, normalize(v.UVW));
}
При использовании RenderDoc это состояния при отрисовке кубической карты:
Дескриптор D3D11_RASTERIZER_DESC()
  • FillMode D3D11_FILL_SOLID
  • CullMode D3D11_CULL_BACK
  • FrontCounterClockwise False
  • DepthBias 0
  • DepthBiasClamp 0,00
  • SlopeScaledDepthBias 0,00
  • DepthClipEnable False
  • ScissorEnable False
  • MultisampleEnable False
  • AntialiasedLineEnable False
Состояние трафарета:
  • Face: Front Func: Always Fail op: Keep Depth Fail op: Keep Pass op: Keep
  • Назад: Front Func: Всегда провал op: Keep Depth Fail op: Keep Pass op: Keep
Режим отсеивания вернулся.
Это не связано с намоткой вершин, так как при перемещении камеры присутствует мерцание.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... is-enabled
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»