Привет, день, когда я делаю 2d игру с использованием API DirectX11.и пришло время указать, что мне нужно использовать прозрачный эффект.
, поэтому у меня зеленый фон и один след в середине.
и просто без установки ничего, кроме альфа-значения возвращаемого цвета в пиксельном шейдере, я добился небольшого успеха, но проблема в том, что он не работает для белого цвета.
это код пиксельного шейдера
cbuffer CB_TRANSPARENCY : register(b0)
{
float tp;
};
Texture2D footprint : register(t0);
SamplerState samplerState : register(s0);
struct PS_INPUT
{
float4 pos : SV_POSITION;
float2 tex : TEXCOORD;
};
float4 main(PS_INPUT input) : SV_Target
{
float3 texColor = footprint.Sample(samplerState, input.tex).xyz;
return float4(texColor, tp);
}
это что-то, что мне не хватает?или я должен использовать некоторые вещи blendingstate?любая помощь будет оценена
[править] вот что редактировать.на самом деле альфа-значение ничего не делает без настройки смешивания.только одна переменная, которая будет использоваться для любого пользовательского расчета.В моем проекте я использовал spritebathch, класс spritefont для рендеринга шрифта на экране, поэтому я предполагаю, что в классе spritebatch может быть blendingState под капотом, который смешивает черный цвет, так что я получил этот эффект без установки моего blendingState.