» Трансформация текстур
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Трансформация текстур

English

На примитивах

Обратите внимание, что у примитивов Quad (DX9), Segment (DX9), и др. есть пин Texture Transform. Чтобы увиличивать/двигать/поворачивать текстуру на примитиве (а не трансформировать сам примитив), подцепите нод Transform (Transform 2d) к пину Texture Transform. Таким образом вы можете делать любые преобразования.

Так же обратите внимание на пин Sampler State, который принимает ноды Filter (EX9.SamplerState) и Address (EX9.SamplerState).
Address (EX9.SamplerState) интересен в смысле применения трансформаций. Он задает параметры поведения текстуры при выходе за собственные границы, например, если текстура меньше чем квадрат, что вы увидите между границей текстуры и квадрата?
Адрес текстуры задается по U и V (т.е. в горизонтальном и вертикальном направлениях) независимо и может быть одним из 5 вариантов:

  • Wrap - бесконечный простой повтор (как правило задано по умолчанию)
  • Mirror - бесконечный повтор с зеркальным отражением каждой следующей копии
  • Clamp - повтор только крайних пикселей
  • Border - рамка заданного цвета вокруг текстуры, см. пин Border Color
  • MirrorOnce - одно зеркальное отражение, затем повтор пикселей как в Clamp

В эффектах

У большинства эффектов так же есть пин Texture Transform, но у них нет пина Sampler State. Изменить параметры SampleState можно только в коде шейдера, но это очень просто. Клонирйте нужный шейдер, нажав ctrl-enter в списке NodeBrowser. В окне CodeEditor найдите блок описания sampler state, который как правило выглядит так:

sampler Samp = sampler_state
{
    Texture   = (Tex); 
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Здесь вы можете добавить необходимые параметры, например

sampler Samp = sampler_state 
{
    Texture   = (Tex);          
    MipFilter = LINEAR;         
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = BORDER;
    AddressV = MIRROR;
    BorderColor = float4(1, 0, 0, 1); //красная рамка
};

anonymous user login

Shoutbox

~11d ago

SuperflysiNZ: Thanks

~13d ago

sebescudie: @Superfly : ApplicationPath

~14d ago

SuperflysiNZ: How do you get the path of the current patch in VL?

~14d ago

SuperflysiNZ: How do you get the path of the current patch in VL?

~14d ago

joreg: reminder: first #vvvv online meetup after the summer break: tomorrow, tuesday 7th, 8pm CET 13.-worldwide-vvvv-meetup