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

~12h ago

evvvvil: @mediadog, thankx for pointing it out broski. Wicked.

~2d ago

domj: Catching up with the Midweek Patch Therapy excerpts, expect more videos over the week. https://youtu.be/36r8LnHaS7g

~2d ago

mediadog: @evvvvil hey you made the webgl-dev-list cool stuff list: http://gfxprose.blogspot.com/2020/05/cool-webgl-stuff-2020-05-21.html

~3d ago

evvvvil: Yo I'm live doing a VJ set made in vvvv for OUTLINE demoparty with OddJohn DJing! Come see us play here: https://www.twitch.tv/outlinedemoparty/

~5d ago

domj: A blast to read with great references. Thoughts on how to make programming more learnable and understandable. http://worrydream.com/LearnableProgramming/

~5d ago

gegenlicht: @evvvvil damn. - missed it. Such unique styles, others would create 1000 twitter loops from one of ur sessions. :3 #bobrossmarch

~5d ago

sebescudie: Vous voulez vous mettre à #vvvv ou vous connaissez quelqu'un qui aimerait? Je donne un webinaire en français! https://nodeforum.org/announcements/introduction-au-creative-coding-avec-vvvv-gamma/

~6d ago

domj: Hope to see you at Midweek Patch Therapy at 17:30 today! https://therapy.domj.net/

~6d ago

domj: @evvvvil ooh that electric fog at 2:30

~6d ago

evvvvil: Yo bros I'm live on Twitch showing my vj tool made in vvvv with my new raymarching library. https://www.twitch.tv/evvvvil_