×
Меню
Индекс

Texture Clamping

 
Управляет расположением текстуры на поверхности.
В основном актуально для текстурных эффектов, а особенно использованных  в массиве частиц.
Также, изменения Clamping может приводить к "клонированию" текстуры, по одной, или сразу по нескольким осям.
Т.е. можно получить на одну, но 2, 4 и более!
См. скриншоты далее.
 
Примечание.
Может использовать и для обычных текстур, т.е. назначенных на текстурные слоты.
Это может быть полезно при использовании анимаций, например смещения текстуры.
 
Для текстур наложенных обычным образом, т.е. не для эффектов.
Изменение режима Clamping будет выглядеть примерно так:
WRAP_S_WRAP_T
CLAMP_S_CLAMP_T
WRAP_S_CLAMP_T
CLAMP_S_WRAP_T
Примечание.
what do i need to set to disable that texture is repeating?
NiTextureProperty->Base Texture-> Set Clamp Mode to CLAMP_S_CLAMP_T
Т.е. если нужно отключить создание "плитки" следует изменить значение этого параметра.
 
Примечание.
Для избавления от эффекта "шлейфа" в текстуру следует добавить рамку.
Т.е. контур в 1 пиксель, обычно черного цвета.
Однако, если замостить поверхность такой текстурой, рамка будет хорошо различима!
Т.е. желательно создавать специальные текстуры, для использования только в CLAMP_S_CLAMP_T режиме.
Для текстурных эффектов в режиме проекции на поверхность четкой картинки, это может быть совершенно необходимо!
Пример подобного эффекта см. здесь.
По быстрому созданию рамки, см. здесь.
Т.е. ДДС плагин умеет создавать такие рамки для текстур на этапе экспорта.
 
Примечание для режима CG_SPHERE_MAP.
- WRAP_S_WRAP_T – дефолтное значение. Делает текстуру, как бы, резиновой. Растягивает в обоих направлениях.
- WRAP_S_CLAMP_T – Практически тоже самое, что и выше. То сжимает, то растягивает текстуру.
- CLAMP_S_WRAP_T – частично растягивает текстуру по горизонтали, почти тоже самое, что и ниже.
- CLAMP_S_CLAMP_T – Сжатие текстуры.
По факту, растягивает отражение по одной из сторон объекты “ровными горизонтальными полосами” на другой, хорошо читаемая текстура.
В сочетании с формой объекта и бамп-картой эти значения могут давать различные результаты.
 
Примечание по режиму CG_WORLD_PERSPECTIVE.
Если были использованы значения для проекции текстуры: Translation, Model Projection Matrix и Model Projection Transform.
Приведет к фактическому умножению рисунка текстуры.
Если все значения Translation, Model Projection Matrix и Model Projection Transform по нулям, нарушится отображение текстуры.
Примерно так.
Т.е. для режима CG_WORLD_PERSPECTIVE всегда требуется установить значение, хотя бы точки проекции текстуры.
Строка Translation в NiTextureEffect.
Рекомендованный режим Clamping: CLAMP_S_CLAMP_T.
Но лучше всего, будет использовать 3д МАХ для создания правильной проекции текстур на поверхность.
Т.е. можно и в нифскопе сделать, но МАХ позволить быстрее и точнее.
 
Примечание.
Некоторые слоты эффектов могут работать только с одним из типов Clamping.
Например; CG_SPECULAR_CUBE_MAP всегда требует WRAP_S_WRAP_T для правильного наложения текстуры.
 
Примечание по Clamping на примере массива частиц.
В данной модели использован массив частиц типа PCloud и эффект в режиме EFFECT_PROJECTED_LIGHT.
 
А вот так она выглядит в Редакторе с последовательным изменением значения Texture Clamping.
Отчего видны квадраты полигонов частиц.
WRAP_S_WRAP_T
(проекция текстуры кубическая, т.е. лучи расходятся во все стороны)
 
WRAP_S_CLAMP_T
Лучи расходятся только в одну сторону.
CLAMP_S_WRAP_T
(проекция текстуры в одной плоскости)
(текстура поворачивается на 90* против WRAP_S_CLAMP_T)
 
CLAMP_S_CLAMP_T
Для массива частиц это наиболее правильное значение!
Т.е. отключено "повторение" текстуры.
Так...
FILTER_TRILERP
WRAP_S_WRAP_T
EFFECT_PROJECTED_LIGHT
CG_WORLD_PERSPECTIVE
 
А можно и вот так.
FILTER_TRILERP
CLAMP_S_CLAMP_T
EFFECT_PROJECTED_LIGHT
CG_WORLD_PERSPECTIVE
WRAP_S_WRAP_T
Для текстурного эффекта на плоскости.
Режим CG_WORLD_PERSPECTIVE.
 
CLAMP_S_WRAP_T
Фактически можно управлять кол-вом повторов текстуры.

 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
Texture Clamping Modes
The table below lists the four texture clamping modes that are supported by Gamebryo and their corresponding behaviors. Specific renderers may or may not be able to support a specific texture-clamping mode--see the Texturing document for details. Note that all clamping modes are declared in the scope of NiTexturingProperty, and the names must be qualified as such.
Clamping Mode
Behavior
CLAMP_S_CLAMP_T
Causes edge-replication to infinity in both dimensions.
CLAMP_S_WRAP_T
Causes edge-replication to infinity in the horizontal texture direction, and infinite tiling in the vertical texture direction.
WRAP_S_CLAMP_T
Causes edge-replication to infinity in the vertical texture direction, and infinite tiling in the horizontal texture direction.
WRAP_S_WRAP_T
Causes infinite tiling of texture in both dimensions.
 
Texture Coordinate Wrapping and Clamping
Note that clamping and wrapping may be set independently for the U and V axes of a texture. However, not all renderers and hardware cards can support different modes for U and V. Please see the documentation for a particular renderer below for notes on its ability to use independent U and V clamping.
To use texture clamping, applications wishing to set texture wrapping or clamping on a given Map should use NiTexturingProperty::Map::SetClampMode. The argument to this function describes the mode used to address the texture — the possible options are as follows
Note that the default clamping-mode is WRAP_S_WRAP_T.
Wrapping Mode
Behavior
WRAP_S_WRAP_T
Both texture dimensions are wrapped infinitely
WRAP_S_CLAMP_T
U dimension is wrapped, V dimension is clamped to be between 0 and 1
CLAMP_S_WRAP_T
U dimension is clamped to be between 0 and 1, V dimension is wrapped
CLAMP_S_CLAMP_T
Both dimensions are clamped to be between 0 and 1
 
Из справки к Нифскопу.
WRAP_S_WRAP_T
Wrap in both directions.
WRAP_S_CLAMP_T
Wrap in the S(U) direction but clamp in the T(V) direction.
СLAMP_S_WRAP_T
Clamp in the S(U) direction but wrap in the T(V) direction.
СLAMP_S_CLAMP_T
Clamp in both directions.