» Трансформация текстур
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

~3mth ago

joreg: END OF SHOUTBOX! As this page has is now legacy, it will no longer feature new content. For latest news, see: http://vvvv.org

~4mth ago

joreg: vvvvTv S0204 is out: Custom Widgets with Dear ImGui: https://youtube.com/live/nrXfpn5V9h0

~4mth ago

joreg: New user registration is currently disabled as we're moving to a new login provider: https://visualprogramming.net/blog/2024/reclaiming-vvvv.org/

~4mth ago

joreg: vvvvTv S02E03 is out: Logging: https://youtube.com/live/OpUrJjTXBxM

~4mth ago

~4mth ago

joreg: Follow TobyK on his Advent of Code: https://www.twitch.tv/tobyklight

~4mth ago

joreg: vvvvTv S02E02 is out: Saving & Loading UI State: https://www.youtube.com/live/GJQGVxA1pIQ

~4mth ago

joreg: We now have a presence on LinkedIn: https://www.linkedin.com/company/vvvv-group

~4mth ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~5mth ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/