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

~1d ago

joreg: absolutely. if it is for a repo that is public, just submit a pullrequest. otherwise please start a forum thread.

~1d ago

benjawmino: @joreg I ended up figuring out BezierSegment yesterday, so nevermind! Tell me, could a user submit a help patch? :)

~1d ago

joreg: @benjawmino please elaborate on this question a bit in a new forum thread. otherwise it is hard to answer..

~3d ago

benjawmino: so are there no splines/curves in gamma yet??

~6d ago

skyliner: wanna do drone shows or applications? then check this super cool project of our man e1n

~10d ago

NoseBleedIndustries: Thanks Joreg! The few minutes I was able to see, very good workshops!

~10d ago

joreg: @NoseBleedIndustries please give us some days, we'll have an announcement soon...

~10d ago

NoseBleedIndustries: I could not assist the Node20 (workshops ) Any Idea when we will have access to the links of the recordings?

~12d ago

bjoern: unity has c# bindings for usd, under apache license: https://github.com/Unity-Technologies/usd-unity-sdk