RDSamplerState
Фильтрация, адресация и LOD для sampler RenderingDevice.
RDSamplerState описывает способ чтения текстуры: фильтрацию, адресацию, mip LOD, анизотропию и depth comparison. Не содержит пиксели и не создаёт GPU sampler автоматически. Передайте описание в RenderingDevice.SamplerCreate и сохраните возвращённый RID. Последующее изменение описания не перенастраивает созданный sampler: создайте другой и освободите старый после завершения использования.
По умолчанию три фильтра — Nearest, RepeatU/V/W — ClampToEdge, координаты нормализованы, LodBias=MinLod=0 и MaxLod≈1e20. UseAnisotropy и EnableCompare выключены; AnisotropyMax=1, CompareOp=Always, BorderColor=FloatOpaqueBlack. ClampToEdge не использует BorderColor: он берёт крайний texel. MinLod/MaxLod ограничивают уровень, LodBias смещает его вычисление; ни одна настройка не создаёт mip-изображения. Размеры и уровни задаются в RDTextureFormat.
Этот выполненный preset предназначен для обычного RGBA8: линейная фильтрация, ограничение по краю и только базовый mip-уровень. Он проверяет поддержку линейного фильтра для конкретного формата и не включает анизотропию или comparison:
using System;
using Reckfell;
public static class SamplerPresets
{
// Base-level RGBA8, normalized UV, linear filtering and edge clamping.
// Caller owns the RID; use the supplied device's valid thread context.
public static Rid LinearClamp(RenderingDevice device)
{
ArgumentNullException.ThrowIfNull(device);
if (!device.SamplerIsFormatSupportedForFilter(
RenderingDevice.DataFormat.R8G8B8A8Unorm,
RenderingDevice.SamplerFilter.Linear))
throw new NotSupportedException("RGBA8 linear filtering is unavailable.");
using var state = new RDSamplerState
{
MagFilter = RenderingDevice.SamplerFilter.Linear,
MinFilter = RenderingDevice.SamplerFilter.Linear,
MipFilter = RenderingDevice.SamplerFilter.Nearest,
RepeatU = RenderingDevice.SamplerRepeatMode.ClampToEdge,
RepeatV = RenderingDevice.SamplerRepeatMode.ClampToEdge,
RepeatW = RenderingDevice.SamplerRepeatMode.ClampToEdge,
MinLod = 0, MaxLod = 0, LodBias = 0,
UseAnisotropy = false, EnableCompare = false, UnnormalizedUvw = false
};
Rid sampler = device.SamplerCreate(state);
if (!sampler.IsValid) throw new InvalidOperationException("GPU sampler creation failed.");
return sampler;
}
}Передавайте реальный RenderingDevice и используйте его допустимый контекст вызова. Основное устройство из RenderingServer.GetRenderingDevice заимствовано: не Dispose и не Free его; для связанной работы используйте CallOnRenderThread. Локальное устройство, созданное вашим кодом, имеет собственные RID и очередь. Пример проверен на отдельном локальном устройстве. Caller владеет возвращённым sampler RID: освободите через FreeRid на том же устройстве после завершения работы. Dispose описания не освобождает sampler. Для combined binding RDUniform с UniformType.SamplerWithTexture сначала добавляют RID sampler, затем RID текстуры. Сам sampler не назначает материал и не запускает draw/dispatch.
UnnormalizedUvw=true требует специальной конфигурации. Для Vulkan: MinFilter=MagFilter, MipFilter=Nearest, MinLod=MaxLod=0, RepeatU/V — ClampToEdge или ClampToBorder; анизотропия и comparison выключены. Есть дополнительные ограничения изображения и shader-инструкций. Проверяйте полный контракт VkSamplerCreateInfo. Setter движка не проверяет совместимость всей конфигурации.
Если текстура размыта, сначала разделите MagFilter, MinFilter и MipFilter и проверьте фактическую mip-цепочку. Если край чёрный — проверьте ClampToBorder, BorderColor и прозрачные texel, прежде чем менять освещение. Если анизотропия не видна — одного UseAnisotropy недостаточно: нужны поддержка устройства, корректный AnisotropyMax и подходящая сцена. Не создавайте sampler каждый кадр без необходимости.
На Windows/Vulkan Forward+ проверены точный helper, linear/nearest через compute textureLod, ClampToEdge, Repeat, белая граница ClampToBorder, ограничение уровней и неизменность уже созданного sampler после правки описания. Предупреждение загрузчика Vulkan сохранено. Не проверены производные растеризации, выбор min/mag по размеру пикселя, смешивание mip-уровней, анизотропия, depth comparison, unnormalized sampling, другие GPU/драйверы, качество изображения и FPS.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
RDSamplerStateКонструктор
public RDSamplerState();Создаёт описание sampler с nearest-фильтрами, ClampToEdge по трём осям, LodBias=MinLod=0, MaxLod≈1e20, анизотропией и сравнением false, AnisotropyMax=1, CompareOp=Always, BorderColor=FloatOpaqueBlack и нормализованными координатами. GPU sampler пока не существует.
Свойства15
AnisotropyMaxСвойство
public float AnisotropyMax { get; set; }Запрошенная максимальная анизотропия, изначально 1. Учитывается при UseAnisotropy; число не является уровнем MSAA. Vulkan передаёт значение драйверу, поэтому не рассчитывайте на автоматическое ограничение произвольного числа. Общий для всех GPU максимум 16 не гарантируется.
BorderColorСвойство
public RenderingDevice.SamplerBorderColor BorderColor { get; set; }Цвет вне текстуры при SamplerRepeatMode.ClampToBorder, изначально SamplerBorderColor.FloatOpaqueBlack. ClampToEdge использует крайний texel, а не этот цвет. Доступен набор enum-цветов, а не произвольный Color; цвет не записывается в текстуру.
CompareOpСвойство
public RenderingDevice.CompareOperator CompareOp { get; set; }Операция comparison sampler, изначально CompareOperator.Always. Учитывается при EnableCompare=true и совместимой инструкции/текстуре. Не является depth test геометрии и не меняет сортировку draw calls.
EnableCompareСвойство
public bool EnableCompare { get; set; }Включение comparison sampling, изначально false. Для depth/shadow sampler результат определяется CompareOp и опорным значением инструкции сравнения. Флаг не создаёт shadow map, источник света или глубину и не является обычной цветовой фильтрацией.
LodBiasСвойство
public float LodBias { get; set; }Добавка к вычислению mip LOD, изначально 0. В обычной выборке положительное смещение способствует выбору более грубого уровня, отрицательное — более детального. Не меняет mip-данные и не заменяет MinLod/MaxLod; результат зависит от инструкции выборки и доступных уровней.
MagFilterСвойство
public RenderingDevice.SamplerFilter MagFilter { get; set; }Фильтр при увеличении texel на экране, изначально SamplerFilter.Nearest. Linear интерполирует соседние texel; Nearest выбирает ближайший. Не выбирает число mip-уровней. Для корректного сочетания фильтра и формата проверяйте SamplerIsFormatSupportedForFilter.
MaxLodСвойство
public float MaxLod { get; set; }Верхняя граница выбираемого mip LOD, изначально около 1e20. Большое значение само не создаёт уровни. При MinLod=MaxLod=0 чтение ограничивается базовым уровнем, в том числе в выполненном примере textureLod. Это не величина смещения LOD.
MinFilterСвойство
public RenderingDevice.SamplerFilter MinFilter { get; set; }Фильтр внутри выбранного mip-уровня при уменьшении изображения, изначально SamplerFilter.Nearest. Linear не заменяет MipFilter: последний определяет переход между уровнями. Поддержка фильтра зависит от формата текстуры.
MinLodСвойство
public float MinLod { get; set; }Нижняя граница выбираемого mip LOD, изначально 0 — базовый уровень. Это ограничение уровня, а не смещение LodBias. Повышение значения ограничивает доступ к более детальным уровням; исходная текстура должна содержать нужные уровни.
MipFilterСвойство
public RenderingDevice.SamplerFilter MipFilter { get; set; }Способ выбора между mip-уровнями, изначально SamplerFilter.Nearest. Linear допускает смешивание соседних уровней. Нужны реально созданные и заполненные уровни текстуры; это поле не генерирует их и не меняет RDTextureFormat.Mipmaps.
RepeatUСвойство
public RenderingDevice.SamplerRepeatMode RepeatU { get; set; }Режим адресации оси U, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
RepeatVСвойство
public RenderingDevice.SamplerRepeatMode RepeatV { get; set; }Режим адресации оси V, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
RepeatWСвойство
public RenderingDevice.SamplerRepeatMode RepeatW { get; set; }Режим адресации оси W, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Для 3D это третья пространственная координата; не индекс слоя массива.
UnnormalizedUvwСвойство
public bool UnnormalizedUvw { get; set; }Ненормализованные координаты выборки, изначально false. При false координаты задаются относительно размера текстуры; true использует texel-координаты. Это специальный режим с ограничениями backend и инструкции, а не свободная замена UV. Требования Vulkan приведены во введении.
UseAnisotropyСвойство
public bool UseAnisotropy { get; set; }Запрос анизотропной фильтрации, изначально false. В Vulkan включается только при поддержке samplerAnisotropy устройством; одного true недостаточно для гарантии результата. Обычно применяется к поверхностям под острым углом; оценка качества и стоимости требует целевой сцены.
Методы30
GetAnisotropyMaxfloat
public float GetAnisotropyMax();Возвращает сохранённое AnisotropyMax этого описания, не запрос GPU. Запрошенная максимальная анизотропия, изначально 1. Учитывается при UseAnisotropy; число не является уровнем MSAA. Vulkan передаёт значение драйверу, поэтому не рассчитывайте на автоматическое ограничение произвольного числа. Общий для всех GPU максимум 16 не гарантируется.
floatСохранённое значение AnisotropyMax; фактический результат выборки этим getter не измеряется.
GetBorderColorRenderingDevice.SamplerBorderColor
public RenderingDevice.SamplerBorderColor GetBorderColor();Возвращает сохранённое BorderColor этого описания, не запрос GPU. Цвет вне текстуры при SamplerRepeatMode.ClampToBorder, изначально SamplerBorderColor.FloatOpaqueBlack. ClampToEdge использует крайний texel, а не этот цвет. Доступен набор enum-цветов, а не произвольный Color; цвет не записывается в текстуру.
RenderingDevice.SamplerBorderColorСохранённое значение BorderColor; фактический результат выборки этим getter не измеряется.
GetCompareOpRenderingDevice.CompareOperator
public RenderingDevice.CompareOperator GetCompareOp();Возвращает сохранённое CompareOp этого описания, не запрос GPU. Операция comparison sampler, изначально CompareOperator.Always. Учитывается при EnableCompare=true и совместимой инструкции/текстуре. Не является depth test геометрии и не меняет сортировку draw calls.
RenderingDevice.CompareOperatorСохранённое значение CompareOp; фактический результат выборки этим getter не измеряется.
GetEnableComparebool
public bool GetEnableCompare();Возвращает сохранённое EnableCompare этого описания, не запрос GPU. Включение comparison sampling, изначально false. Для depth/shadow sampler результат определяется CompareOp и опорным значением инструкции сравнения. Флаг не создаёт shadow map, источник света или глубину и не является обычной цветовой фильтрацией.
boolСохранённое значение EnableCompare; фактический результат выборки этим getter не измеряется.
GetLodBiasfloat
public float GetLodBias();Возвращает сохранённое LodBias этого описания, не запрос GPU. Добавка к вычислению mip LOD, изначально 0. В обычной выборке положительное смещение способствует выбору более грубого уровня, отрицательное — более детального. Не меняет mip-данные и не заменяет MinLod/MaxLod; результат зависит от инструкции выборки и доступных уровней.
floatСохранённое значение LodBias; фактический результат выборки этим getter не измеряется.
GetMagFilterRenderingDevice.SamplerFilter
public RenderingDevice.SamplerFilter GetMagFilter();Возвращает сохранённое MagFilter этого описания, не запрос GPU. Фильтр при увеличении texel на экране, изначально SamplerFilter.Nearest. Linear интерполирует соседние texel; Nearest выбирает ближайший. Не выбирает число mip-уровней. Для корректного сочетания фильтра и формата проверяйте SamplerIsFormatSupportedForFilter.
RenderingDevice.SamplerFilterСохранённое значение MagFilter; фактический результат выборки этим getter не измеряется.
GetMaxLodfloat
public float GetMaxLod();Возвращает сохранённое MaxLod этого описания, не запрос GPU. Верхняя граница выбираемого mip LOD, изначально около 1e20. Большое значение само не создаёт уровни. При MinLod=MaxLod=0 чтение ограничивается базовым уровнем, в том числе в выполненном примере textureLod. Это не величина смещения LOD.
floatСохранённое значение MaxLod; фактический результат выборки этим getter не измеряется.
GetMinFilterRenderingDevice.SamplerFilter
public RenderingDevice.SamplerFilter GetMinFilter();Возвращает сохранённое MinFilter этого описания, не запрос GPU. Фильтр внутри выбранного mip-уровня при уменьшении изображения, изначально SamplerFilter.Nearest. Linear не заменяет MipFilter: последний определяет переход между уровнями. Поддержка фильтра зависит от формата текстуры.
RenderingDevice.SamplerFilterСохранённое значение MinFilter; фактический результат выборки этим getter не измеряется.
GetMinLodfloat
public float GetMinLod();Возвращает сохранённое MinLod этого описания, не запрос GPU. Нижняя граница выбираемого mip LOD, изначально 0 — базовый уровень. Это ограничение уровня, а не смещение LodBias. Повышение значения ограничивает доступ к более детальным уровням; исходная текстура должна содержать нужные уровни.
floatСохранённое значение MinLod; фактический результат выборки этим getter не измеряется.
GetMipFilterRenderingDevice.SamplerFilter
public RenderingDevice.SamplerFilter GetMipFilter();Возвращает сохранённое MipFilter этого описания, не запрос GPU. Способ выбора между mip-уровнями, изначально SamplerFilter.Nearest. Linear допускает смешивание соседних уровней. Нужны реально созданные и заполненные уровни текстуры; это поле не генерирует их и не меняет RDTextureFormat.Mipmaps.
RenderingDevice.SamplerFilterСохранённое значение MipFilter; фактический результат выборки этим getter не измеряется.
GetRepeatURenderingDevice.SamplerRepeatMode
public RenderingDevice.SamplerRepeatMode GetRepeatU();Возвращает сохранённое RepeatU этого описания, не запрос GPU. Режим адресации оси U, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
RenderingDevice.SamplerRepeatModeСохранённое значение RepeatU; фактический результат выборки этим getter не измеряется.
GetRepeatVRenderingDevice.SamplerRepeatMode
public RenderingDevice.SamplerRepeatMode GetRepeatV();Возвращает сохранённое RepeatV этого описания, не запрос GPU. Режим адресации оси V, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
RenderingDevice.SamplerRepeatModeСохранённое значение RepeatV; фактический результат выборки этим getter не измеряется.
GetRepeatWRenderingDevice.SamplerRepeatMode
public RenderingDevice.SamplerRepeatMode GetRepeatW();Возвращает сохранённое RepeatW этого описания, не запрос GPU. Режим адресации оси W, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Для 3D это третья пространственная координата; не индекс слоя массива.
RenderingDevice.SamplerRepeatModeСохранённое значение RepeatW; фактический результат выборки этим getter не измеряется.
GetUnnormalizedUvwbool
public bool GetUnnormalizedUvw();Возвращает сохранённое UnnormalizedUvw этого описания, не запрос GPU. Ненормализованные координаты выборки, изначально false. При false координаты задаются относительно размера текстуры; true использует texel-координаты. Это специальный режим с ограничениями backend и инструкции, а не свободная замена UV. Требования Vulkan приведены во введении.
boolСохранённое значение UnnormalizedUvw; фактический результат выборки этим getter не измеряется.
GetUseAnisotropybool
public bool GetUseAnisotropy();Возвращает сохранённое UseAnisotropy этого описания, не запрос GPU. Запрос анизотропной фильтрации, изначально false. В Vulkan включается только при поддержке samplerAnisotropy устройством; одного true недостаточно для гарантии результата. Обычно применяется к поверхностям под острым углом; оценка качества и стоимости требует целевой сцены.
boolСохранённое значение UseAnisotropy; фактический результат выборки этим getter не измеряется.
SetAnisotropyMaxvoid
public void SetAnisotropyMax(float pMember);Сохраняет AnisotropyMax в описании, не меняя уже созданные sampler. Запрошенная максимальная анизотропия, изначально 1. Учитывается при UseAnisotropy; число не является уровнем MSAA. Vulkan передаёт значение драйверу, поэтому не рассчитывайте на автоматическое ограничение произвольного числа. Общий для всех GPU максимум 16 не гарантируется.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | float | — |
pMemberЗапрошенная максимальная анизотропия, изначально 1. Учитывается при UseAnisotropy; число не является уровнем MSAA. Vulkan передаёт значение драйверу, поэтому не рассчитывайте на автоматическое ограничение произвольного числа. Общий для всех GPU максимум 16 не гарантируется.
SetBorderColorvoid
public void SetBorderColor(RenderingDevice.SamplerBorderColor pMember);Сохраняет BorderColor в описании, не меняя уже созданные sampler. Цвет вне текстуры при SamplerRepeatMode.ClampToBorder, изначально SamplerBorderColor.FloatOpaqueBlack. ClampToEdge использует крайний texel, а не этот цвет. Доступен набор enum-цветов, а не произвольный Color; цвет не записывается в текстуру.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerBorderColor | — |
pMemberЦвет вне текстуры при SamplerRepeatMode.ClampToBorder, изначально SamplerBorderColor.FloatOpaqueBlack. ClampToEdge использует крайний texel, а не этот цвет. Доступен набор enum-цветов, а не произвольный Color; цвет не записывается в текстуру.
SetCompareOpvoid
public void SetCompareOp(RenderingDevice.CompareOperator pMember);Сохраняет CompareOp в описании, не меняя уже созданные sampler. Операция comparison sampler, изначально CompareOperator.Always. Учитывается при EnableCompare=true и совместимой инструкции/текстуре. Не является depth test геометрии и не меняет сортировку draw calls.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.CompareOperator | — |
pMemberОперация comparison sampler, изначально CompareOperator.Always. Учитывается при EnableCompare=true и совместимой инструкции/текстуре. Не является depth test геометрии и не меняет сортировку draw calls.
SetEnableComparevoid
public void SetEnableCompare(bool pMember);Сохраняет EnableCompare в описании, не меняя уже созданные sampler. Включение comparison sampling, изначально false. Для depth/shadow sampler результат определяется CompareOp и опорным значением инструкции сравнения. Флаг не создаёт shadow map, источник света или глубину и не является обычной цветовой фильтрацией.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | bool | — |
pMemberВключение comparison sampling, изначально false. Для depth/shadow sampler результат определяется CompareOp и опорным значением инструкции сравнения. Флаг не создаёт shadow map, источник света или глубину и не является обычной цветовой фильтрацией.
SetLodBiasvoid
public void SetLodBias(float pMember);Сохраняет LodBias в описании, не меняя уже созданные sampler. Добавка к вычислению mip LOD, изначально 0. В обычной выборке положительное смещение способствует выбору более грубого уровня, отрицательное — более детального. Не меняет mip-данные и не заменяет MinLod/MaxLod; результат зависит от инструкции выборки и доступных уровней.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | float | — |
pMemberДобавка к вычислению mip LOD, изначально 0. В обычной выборке положительное смещение способствует выбору более грубого уровня, отрицательное — более детального. Не меняет mip-данные и не заменяет MinLod/MaxLod; результат зависит от инструкции выборки и доступных уровней.
SetMagFiltervoid
public void SetMagFilter(RenderingDevice.SamplerFilter pMember);Сохраняет MagFilter в описании, не меняя уже созданные sampler. Фильтр при увеличении texel на экране, изначально SamplerFilter.Nearest. Linear интерполирует соседние texel; Nearest выбирает ближайший. Не выбирает число mip-уровней. Для корректного сочетания фильтра и формата проверяйте SamplerIsFormatSupportedForFilter.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerFilter | — |
pMemberФильтр при увеличении texel на экране, изначально SamplerFilter.Nearest. Linear интерполирует соседние texel; Nearest выбирает ближайший. Не выбирает число mip-уровней. Для корректного сочетания фильтра и формата проверяйте SamplerIsFormatSupportedForFilter.
SetMaxLodvoid
public void SetMaxLod(float pMember);Сохраняет MaxLod в описании, не меняя уже созданные sampler. Верхняя граница выбираемого mip LOD, изначально около 1e20. Большое значение само не создаёт уровни. При MinLod=MaxLod=0 чтение ограничивается базовым уровнем, в том числе в выполненном примере textureLod. Это не величина смещения LOD.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | float | — |
pMemberВерхняя граница выбираемого mip LOD, изначально около 1e20. Большое значение само не создаёт уровни. При MinLod=MaxLod=0 чтение ограничивается базовым уровнем, в том числе в выполненном примере textureLod. Это не величина смещения LOD.
SetMinFiltervoid
public void SetMinFilter(RenderingDevice.SamplerFilter pMember);Сохраняет MinFilter в описании, не меняя уже созданные sampler. Фильтр внутри выбранного mip-уровня при уменьшении изображения, изначально SamplerFilter.Nearest. Linear не заменяет MipFilter: последний определяет переход между уровнями. Поддержка фильтра зависит от формата текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerFilter | — |
pMemberФильтр внутри выбранного mip-уровня при уменьшении изображения, изначально SamplerFilter.Nearest. Linear не заменяет MipFilter: последний определяет переход между уровнями. Поддержка фильтра зависит от формата текстуры.
SetMinLodvoid
public void SetMinLod(float pMember);Сохраняет MinLod в описании, не меняя уже созданные sampler. Нижняя граница выбираемого mip LOD, изначально 0 — базовый уровень. Это ограничение уровня, а не смещение LodBias. Повышение значения ограничивает доступ к более детальным уровням; исходная текстура должна содержать нужные уровни.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | float | — |
pMemberНижняя граница выбираемого mip LOD, изначально 0 — базовый уровень. Это ограничение уровня, а не смещение LodBias. Повышение значения ограничивает доступ к более детальным уровням; исходная текстура должна содержать нужные уровни.
SetMipFiltervoid
public void SetMipFilter(RenderingDevice.SamplerFilter pMember);Сохраняет MipFilter в описании, не меняя уже созданные sampler. Способ выбора между mip-уровнями, изначально SamplerFilter.Nearest. Linear допускает смешивание соседних уровней. Нужны реально созданные и заполненные уровни текстуры; это поле не генерирует их и не меняет RDTextureFormat.Mipmaps.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerFilter | — |
pMemberСпособ выбора между mip-уровнями, изначально SamplerFilter.Nearest. Linear допускает смешивание соседних уровней. Нужны реально созданные и заполненные уровни текстуры; это поле не генерирует их и не меняет RDTextureFormat.Mipmaps.
SetRepeatUvoid
public void SetRepeatU(RenderingDevice.SamplerRepeatMode pMember);Сохраняет RepeatU в описании, не меняя уже созданные sampler. Режим адресации оси U, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerRepeatMode | — |
pMemberРежим адресации оси U, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
SetRepeatVvoid
public void SetRepeatV(RenderingDevice.SamplerRepeatMode pMember);Сохраняет RepeatV в описании, не меняя уже созданные sampler. Режим адресации оси V, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerRepeatMode | — |
pMemberРежим адресации оси V, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Не изменяет сохранённые пиксели или UV геометрии.
SetRepeatWvoid
public void SetRepeatW(RenderingDevice.SamplerRepeatMode pMember);Сохраняет RepeatW в описании, не меняя уже созданные sampler. Режим адресации оси W, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Для 3D это третья пространственная координата; не индекс слоя массива.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | RenderingDevice.SamplerRepeatMode | — |
pMemberРежим адресации оси W, изначально SamplerRepeatMode.ClampToEdge. Repeat повторяет текстуру, MirroredRepeat чередует отражение, ClampToEdge берёт крайний texel, ClampToBorder использует BorderColor. Для 3D это третья пространственная координата; не индекс слоя массива.
SetUnnormalizedUvwvoid
public void SetUnnormalizedUvw(bool pMember);Сохраняет UnnormalizedUvw в описании, не меняя уже созданные sampler. Ненормализованные координаты выборки, изначально false. При false координаты задаются относительно размера текстуры; true использует texel-координаты. Это специальный режим с ограничениями backend и инструкции, а не свободная замена UV. Требования Vulkan приведены во введении.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | bool | — |
pMemberНенормализованные координаты выборки, изначально false. При false координаты задаются относительно размера текстуры; true использует texel-координаты. Это специальный режим с ограничениями backend и инструкции, а не свободная замена UV. Требования Vulkan приведены во введении.
SetUseAnisotropyvoid
public void SetUseAnisotropy(bool pMember);Сохраняет UseAnisotropy в описании, не меняя уже созданные sampler. Запрос анизотропной фильтрации, изначально false. В Vulkan включается только при поддержке samplerAnisotropy устройством; одного true недостаточно для гарантии результата. Обычно применяется к поверхностям под острым углом; оценка качества и стоимости требует целевой сцены.
| Имя | Тип | По умолчанию |
|---|---|---|
pMember | bool | — |
pMemberЗапрос анизотропной фильтрации, изначально false. В Vulkan включается только при поддержке samplerAnisotropy устройством; одного true недостаточно для гарантии результата. Обычно применяется к поверхностям под острым углом; оценка качества и стоимости требует целевой сцены.