Некоторые свойства отсутствуют в DirectX 11 по сравнению с 9-й версией.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Некоторые свойства отсутствуют в DirectX 11 по сравнению с 9-й версией.

Сообщение Anonymous »

В настоящий момент я портирую старый код из девятой версии DirectX в более новую, одиннадцатую, и столкнулся с некоторыми трудностями в поиске аналогов существующих свойств и функций.
Параметры отображения в старой версии (DirectX9):

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

technique tAccessory
{
pass p0
{
VS_COMPILE_COMMAND VS();
PS_COMPILE_COMMAND PS(true);

AlphaBlendEnable    = true;
SrcBlend            = SrcAlpha;
DestBlend           = InvSrcAlpha;
ZFunc               = LESSEQUAL;
AlphaTestEnable     = true;
AlphaRef            = 1;
AlphaFunc           = GreaterEqual;
}

pass p1
{
VS_COMPILE_COMMAND VS();
PS_COMPILE_COMMAND PSAccessoryAlpha();

AlphaBlendEnable    = true;
SrcBlend            = SrcAlpha;
DestBlend           = One;
ZFunc               = LESSEQUAL;
AlphaTestEnable     = true;
AlphaRef            = 1;
AlphaFunc           = GreaterEqual;
}
}
Функции VS, PS, PSAccessoryAlpha самописные, определяют положение текстур и альфы.
Проблема заключается в отсутствии этих параметров в файле новая версия DirectX 11:

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

AlphaBlendEnable    = true;
SrcBlend            = SrcAlpha;
DestBlend           = One;
ZFunc               = LESSEQUAL;
AlphaTestEnable     = true;
AlphaRef            = 1;
AlphaFunc           = GreaterEqual;
Мне удалось узнать, что с помощью функции SetBlendState можно задать следующие параметры:
DirectX9:

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

AlphaBlendEnable    = true;
SrcBlend            = SrcAlpha;
DestBlend           = InvSrcAlpha;
DirectX11:[/b]

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

BlendState BSAlphaBlending
{
BlendEnable[0] = true;
SrcBlend  = SRC_ALPHA;
DestBlend = INV_SRC_ALPHA;
};
SetBlendState( BSAlphaBlending, float4( 0, 0, 0, 0 ), 0xffffffff );
И для случая, когда DestBlend = One:
DirectX9:

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

AlphaBlendEnable    = true;
SrcBlend            = SrcAlpha;
DestBlend           = One;
DirectX11:

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

BlendState BSSrcAlphaDestOne
{
BlendEnable[0]  = true;
SrcBlend        = SRC_ALPHA;
DestBlend       = ONE;
};
SetBlendState( BSSrcAlphaDestOne, float4( 0, 0, 0, 0 ), 0xffffffff );
Но мне пока не удалось разобраться, как перенести в DirectX11 остальные параметры, такие как:
DirectX9:

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

ZFunc               = LESSEQUAL;
AlphaTestEnable     = true;
AlphaRef            = 1;
AlphaFunc           = GreaterEqual;
В 9 версии для них было перечисление D3DRENDERSTATETYPE и можно было указать нужные параметры с помощью функции SetRenderState, но какой аналог для этого эта функция в версии 11?

Подробнее здесь: https://stackoverflow.com/questions/786 ... to-the-9th
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Некоторые свойства отсутствуют при преобразовании объекта в JSON с использованием json.stringify
    Anonymous » » в форуме Javascript
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Разница между версией компилятора C# и языковой версией
    Гость » » в форуме C#
    0 Ответы
    75 Просмотры
    Последнее сообщение Гость
  • Разница между версией компилятора C# и языковой версией
    Anonymous » » в форуме C#
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Связь флаттера SDK с версией gradle и версией jdk
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Связь флаттера SDK с версией gradle и версией jdk
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

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