Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SpriteKit ссылка класса SKShader

Опции
Развертывание Target:

На этой странице
Язык:

SKShader

SKShader объект содержит пользовательский OpenGL программа построения теней фрагмента ES. Объекты программы построения теней используются для настройки поведения получения многих различных видов узлов в Наборе Sprite.

Для использования пользовательской программы построения теней создайте SKShader возразите и обеспечьте источник для пользовательской программы построения теней фрагмента. Если Ваша программа построения теней должна обеспечить универсальное состояние для программы построения теней, создайте один или больше SKUniform объекты и связывают их с объектом программы построения теней. Затем присвойте объект программы построения теней shader свойство любых спрайтов, которым нужно пользовательское поведение.

Компиляция программы построения теней и универсальных данных, связанных с ним, может быть дорогой. Из-за этого Вы должны:

  • Инициализируйте объекты программы построения теней, когда Ваша игра запускается, не, в то время как работает игра.

  • Избегите изменять источник или универсальные формы программы построения теней, в то время как работает Ваша игра. Любая из этих вещей перекомпилировала программу построения теней.

  • Программа построения теней доли возражает, когда это возможно. Если многократные спрайты нуждаются в том же поведении, создают один объект программы построения теней и связывают его с каждым спрайтом, которому нужно то поведение. Не создавайте отдельную программу построения теней для каждого спрайта.

Создание пользовательской программы построения теней фрагмента

Ваша программа построения теней фрагмента должна быть записана на языке штриховки OpenGL ES 2.0. Набор Sprite автоматически выполняет необходимую работу для проверки этой программы построения теней компиляции правильно и в iOS и в OS X. Объект программы построения теней компилирует Вашу программу построения теней путем добавления исходного кода, который Вы обеспечиваете для преамбулы, создаваемой Набором Sprite. Эта преамбула объявляет все стандартные переменные Набора Sprite и функции, включая объявления для любых универсальных форм, которые Вы связали с объектом программы построения теней. Таблица 1 описывает символы Набора Sprite, сделанные доступный для Вашей программы построения теней.

Таблица 1Predefined пользовательские символы программы построения теней

Объявление символа

Ввести

Описание

sampler2D u_texture;

Универсальная форма

Сэмплер связался с текстурой, используемой для рендеринга узла.

плавание u_time;

Универсальная форма

Прошедшее время на моделировании.

vec2 u_sprite_size;

Универсальная форма

Размер спрайта в пикселях.

плавание u_path_length;

Универсальная форма

Эта универсальная форма предоставлена только, когда программа построения теней присоединена SKShapeNode объект strokeShader свойство. Общая длина пути в точках.

vec2 v_tex_coord;

Варьирование

Координаты раньше получали доступ к текстуре. Они нормализованы так, чтобы точка (0.0 0.0) была в нижнем левом углу текстуры.

vec4 v_color_mix;

Варьирование

Предварительно умноженное значение цвета для представляемого узла.

плавание v_path_distance;

Варьирование

Это варьирование предоставлено только, когда программа построения теней присоединена SKShapeNode объект strokeShader свойство. Расстояние вдоль пути в точках.

vec4 SKDefaultShading ()

Функция

Функция, обеспечивающая поведение по умолчанию, используемое Набором Sprite.

Ваша программа построения теней должна определить a main() функция. Эта функция должна установить gl_FragColor переменная к значению цвета для использования на этапе смешения; обычно значение цвета, которое Вы возвращаете в этой переменной, должно уже быть предварительно умножено на альфа-значение фрагмента.

Перечисление 1 показывает очень простую программу построения теней фрагмента, обеспечивающую поведение штриховки значения по умолчанию.

Программа построения теней перечисления 1Example
  • void main()
  • {
  • gl_FragColor = SKDefaultShading();
  • }

Наследование


Оператор импорта


Swift

import SpriteKit

Objective C

@import SpriteKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Создает новый объект программы построения теней путем загрузки источника для программы построения теней фрагмента от файла, хранившего в пакете приложения.

    Объявление

    Swift

    convenience init!(fileNamed name: String)

    Objective C

    + (instancetype)shaderWithFileNamed:(NSString *)name

    Параметры

    name

    Имя программы построения теней фрагмента для загрузки. Файл должен присутствовать в Вашем комплекте приложений с тем же именем и a .fsh расширение файла.

    Возвращаемое значение

    Недавно инициализированная программа построения теней возражает, чей начальный источник загружается из файла программы построения теней.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Создает новый объект программы построения теней использование указанного источника и универсальных данных.

    Объявление

    Objective C

    + (instancetype)shaderWithSource:(NSString *)source uniforms:(NSArray *)uniforms

    Параметры

    source

    Строка, содержащая источник для программы построения теней фрагмента.

    uniforms

    Список универсальных форм для добавления к объекту программы построения теней.

    Возвращаемое значение

    Недавно инициализированный объект программы построения теней.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Доступность

    Доступный в OS X v10.10 и позже.

  • Создает новый объект программы построения теней использование указанного исходного кода.

    Объявление

    Objective C

    + (instancetype)shaderWithSource:(NSString *)source

    Параметры

    source

    Строка, содержащая исходный код для программы построения теней фрагмента.

    Возвращаемое значение

    Недавно инициализированный объект программы построения теней.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Доступность

    Доступный в OS X v10.10 и позже.

  • Создает новый пустой объект программы построения теней.

    Объявление

    Objective C

    + (instancetype)shader

    Возвращаемое значение

    Недавно инициализированный объект программы построения теней.

    Обсуждение

    Программа построения теней инициализируется без любого исходного кода или универсальных данных. Необходимо присвоить исходный код программе построения теней перед использованием его.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Доступность

    Доступный в OS X v10.10 и позже.

    См. также

    источник

  • Инициализирует новый объект программы построения теней использование указанного источника и универсальных данных.

    Объявление

    Swift

    init(source source: String!, uniforms uniforms: [AnyObject]!)

    Objective C

    - (instancetype)initWithSource:(NSString *)source uniforms:(NSArray *)uniforms

    Параметры

    source

    Строка, содержащая начальный источник для программы построения теней.

    uniforms

    Список универсальных форм для добавления к объекту программы построения теней.

    Возвращаемое значение

    Инициализированный объект программы построения теней.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Инициализирует новый объект программы построения теней использование указанного исходного кода.

    Объявление

    Swift

    init(source source: String!)

    Objective C

    - (instancetype)initWithSource:(NSString *)source

    Параметры

    source

    Строка, содержащая начальный источник для программы построения теней.

    Возвращаемое значение

    Инициализированный объект программы построения теней.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Добавляет универсальная форма к объекту программы построения теней.

    Объявление

    Swift

    func addUniform(_ uniform: SKUniform)

    Objective C

    - (void)addUniform:(SKUniform *)uniform

    Параметры

    uniform

    Новый универсальный объект добавить. Имя универсального объекта не должно уже использоваться другой универсальной формой, присоединенной к программе построения теней.

    Обсуждение

    Универсальная переменная автоматически доступна в Вашей программе построения теней; не добавляйте объявление для него в исходном коде Вашей программы построения теней. К универсальной форме нужно получить доступ в программе построения теней фрагмента.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Удаляет универсальную форму из программы построения теней.

    Объявление

    Swift

    func removeUniformNamed(_ name: String)

    Objective C

    - (void)removeUniformNamed:(NSString *)name

    Параметры

    name

    Имя универсальной формы для удаления.

    Обсуждение

    Если универсальная форма с тем именем не существует в программе построения теней, ничто не происходит.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Список универсальных форм связался с программой построения теней.

    Объявление

    Swift

    var uniforms: [AnyObject]

    Objective C

    @property(copy) NSArray *uniforms

    Обсуждение

    Это свойство не только для чтения, таким образом, можно также использовать его для обеспечения всех универсальных форм в единственной работе. Каждую из универсальных форм нужно уникально назвать.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Возвращает универсальный объект, соответствующий определенной универсальной переменной.

    Объявление

    Swift

    func uniformNamed(_ name: String) -> SKUniform?

    Objective C

    - (SKUniform *)uniformNamed:(NSString *)name

    Параметры

    name

    Имя универсальной формы для поиска.

    Возвращаемое значение

    Универсальный объект, соответствующий имени, или nil если не может быть найдена та универсальная форма.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Исходный код для программы построения теней.

    Объявление

    Swift

    var source: String!

    Objective C

    @property(copy) NSString *source

    Обсуждение

    Во время выполнения может быть обновлен исходный код для объекта программы построения теней. Однако перекомпиляция программы построения теней фрагмента может быть дорогой работой.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.