Skip to the content.

Список методов в категории 3D:

StopObjectAnimation

Описание

Останавливает любую анимацию, которая в данный момент воспроизводится на объекте, и оставляет кости в их текущем положении. Если объект в данный момент находится в подростковом возрасте, то анимация также будет остановлена с костями, оставленными в середине анимации.

Определение

void agk::StopObjectAnimation( UINT objID )

Параметры

objID - Идентификатор объекта для изменения.

Пример кода


SetSunColor

Описание

Устанавливает новый цвет для глобального направленного света. Значения должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать вещи, а значения меньше 0 будут отнимать свет.

Определение

void agk::SetSunColor( int red, int green, int blue )

Параметры

red - Красная составляющая нового цвета.
green - Зеленая составляющая нового цвета.
blue - Синий компонент нового цвета.

Пример кода


SetSunDirection

Описание

Задает направление для глобального направленного света.

Определение

void agk::SetSunDirection( float vx, float vy, float vz )

Параметры

vx - X-компонент нового направления.
vy - Y-компонент нового направления.
vz - Z-компонент нового направления.

Пример кода


SetSunActive

Описание

Устанавливает, светит ли глобальный направленный свет или нет.

Определение

void agk::SetSunActive( int active )

Параметры

active - 1, чтобы активировать его, 0, чтобы деактивировать

Пример кода


SetSkyBoxVisible

Описание

Устанавливает, виден ли объект sky box или нет. По умолчанию он не виден. Поле неба всегда будет появляться позади всех других 3D-объектов и будет нарисовано в максимальном видимом диапазоне обзора, который задается с помощью SetCameraRange. В поле sky есть дополнительное солнце, которое будет нарисовано в соответствии с текущим направлением света, установленным с помощью SetSunDirection. Однако он не будет использовать направленный световой цвет, поэтому вы можете иметь направленный свет как один цвет, а небо и солнце-как другой цвет.

Определение

void agk::SetSkyBoxVisible( int active )

Параметры

active - 1, чтобы показать скайбокс, 0, чтобы скрыть его

Пример кода


SetSkyBoxSunVisible

Описание

Устанавливает, будет ли небесная коробка рисовать солнце в месте текущего направленного света. Его положение можно установить с помощью SetSunDirection, но он не будет использовать направленный светлый цвет, вы можете установить его отдельно с помощью SetSkyBoxSunColor. Обратите внимание, что установка видимого солнца изменяет расчеты чертежа небесного ящика, делая их более сложными, что может повлиять на производительность.

Определение

void agk::SetSkyBoxSunVisible( int visible )

Параметры

visible - 1, чтобы нарисовать солнце, 0, чтобы скрыть его

Пример кода


SetSkyBoxSunSize

Описание

Устанавливает размер солнца и его ореола, если он виден. Значения размера не относятся ни к каким мировым единицам измерения и должны находиться в диапазоне от 1,0 до 100,0. Значения по умолчанию-5,0 для солнца и 50,0 для гало.

Определение

void agk::SetSkyBoxSunSize( float sun, float halo )

Параметры

sun - Размер солнца
halo - Размер гало вокруг солнца

Пример кода


SetSkyBoxSunColor

Описание

Устанавливает цвет солнца, если он виден. По умолчанию это 255,230,179. Цвета должны находиться в диапазоне от 0 до 255, хотя это не ограничено и значения за пределами этого диапазона будут приниматься, включая отрицательные значения. Обратите внимание, что из-за того, как цвет солнца добавляется к цвету неба, цвета солнца темнее, чем цвет неба, могут привести к неожиданному цвету солнца, когда один или несколько цветовых компонентов полностью отсутствуют. Если это произойдет, то масштабирование цвета солнца, поднимаясь выше 255, если это необходимо, удалит его. Цвет солнца оказывает некоторое влияние на размер солнца в дополнение к SetSkyBoxSunSize, причем более яркие цвета делают его больше.

Определение

void agk::SetSkyBoxSunColor( int red, int green, int blue )

Параметры

red - Красная составляющая цвета неба
green - Зеленая составляющая цвета неба
blue - Голубая составляющая цвета неба

Пример кода


SetSkyBoxSkyColor

Описание

Задает цвет, который заполнит большую часть неба. По умолчанию это 161 183 209. Цвета должны находиться в диапазоне от 0 до 255, хотя это не ограничено и значения за пределами этого диапазона будут приниматься, включая отрицательные значения.

Определение

void agk::SetSkyBoxSkyColor( int red, int green, int blue )

Параметры

red - Красная составляющая цвета неба
green - Зеленая составляющая цвета неба
blue - Голубая составляющая цвета неба

Пример кода


SetSkyBoxHorizonSize

Описание

Устанавливает размер и высоту горизонта. По умолчанию размер равен 4.0, а высота-0.0. Это влияет на то, как высоко простирается цвет горизонта, прежде чем стать цветом неба. Значение высоты находится в мировых координатах, и все, что находится на этой высоте или ниже нее, будет иметь цвет горизонта. Выше этой высоты горизонт сливается с цветом неба, пока в какой-то момент не остается только цвет неба. Горизонт всегда будет находиться на заданной высоте в мире, даже если камера движется вверх и вниз. Значение размера не относится ни к каким мировым единицам и должно быть установлено по вашему вкусу, тогда эффективный диапазон составляет от 0,1 до примерно 50,0, но может быть установлен и выше. Если диапазон обзора мал, то значение высоты будет иметь больший эффект, поскольку небесный ящик приближается к камере ближе, чем если бы диапазон обзора был больше. Например, высота горизонта 100 с небольшим диапазоном обзора будет казаться очень высокой, но когда диапазон обзора больше, камера просматривает горизонт с гораздо большего расстояния, поэтому изменение высоты на 100 единиц будет иметь меньший эффект.

Определение

void agk::SetSkyBoxHorizonSize( float size, float height )

Параметры

size - Размер горизонта над высотой горизонта
height - Высота, с которой начинается горизонт

Пример кода


SetSkyBoxHorizonColor

Описание

Задает цвет, который будет отображаться на горизонте. По умолчанию это 255,255,255. Цвета должны находиться в диапазоне от 0 до 255, хотя это не ограничено и значения за пределами этого диапазона будут приниматься, включая отрицательные значения.

Определение

void agk::SetSkyBoxHorizonColor( int red, int green, int blue )

Параметры

red - Красная составляющая цвета неба
green - Зеленая составляющая цвета неба
blue - Голубая составляющая цвета неба

Пример кода


SetShadowMappingMode

Описание

Включает или выключает отображение теней, по умолчанию это выключено. Тени генерируются только глобальным направленным светом, которым можно управлять с помощью команды SetSunDirection. Обратите внимание, что это не гарантировано поддерживается на всех устройствах, вы можете проверить наличие текущего устройства, вызвав GetShadowMappingSupported. В настоящее время существует три режима теней, которые можно использовать, режим 1 использует равномерное отображение теней, которое имеет более низкое, но стабильное качество. Режим 2 использует Light Space Perspective shadow mapping (LiPSM), который в большинстве случаев имеет более высокое качество, но если камера смотрит в том же направлении, что и свет, то это не лучше, чем Равномерное теневое отображение. Перспектива светлого пространства также страдает от мерцания теней при движении камеры, в то время как Равномерность более стабильна. Оба имеют примерно одинаковую производительность. Режим 3 использует каскадное теневое отображение, которое использует несколько теневых карт для поддержания высокого качества вблизи камеры, в то же время позволяя более низкие качественные тени на расстоянии. Этот метод имеет гораздо более низкую производительность, чем предыдущие два метода, но во всех случаях приводит к более качественным теням. Обратите внимание, что при использовании режимов 1 и 2 этап текстуры 7 на всех объектах, получающих тень, зарезервирован для карты теней. При использовании теневого режима 3 (каскадные тени) для теневых карт зарезервированы этапы текстуры 4, 5, 6 и 7.

Определение

void agk::SetShadowMappingMode( int mode )

Параметры

mode - 0, чтобы выключить его, 1, чтобы использовать Равномерные тени, 2, чтобы использовать тени LiPSM, 3, чтобы использовать каскадные тени

Пример кода


SetShadowSmoothing

Описание

Устанавливает режим сглаживания для теневой карты. Режим 0 отключает сглаживание и приводит к самым быстрым теням, но создает жесткие края. Режим 1 немного медленнее, но создает более мягкие тени, многократно пробуя карту теней. Режим 2 использует случайную мультисэмплировку, чтобы избежать полос, создаваемых режимом 1, но еще медленнее.

Определение

void agk::SetShadowSmoothing( int mode )

Параметры

mode - 0 - не использовать сглаживание, 1 - использовать мультисэмплинг, 2 - использовать случайную мультисэмплинг

Пример кода


SetShadowMapSize

Описание

Задает разрешение теневой карты в пикселях. Хорошие значения-512x512 или 1024x1024, это не обязательно должна быть степень двух по размеру. Чем выше разрешение, тем лучше качество теней, хотя производительность будет ниже при более высоком разрешении теневых карт.

Определение

void agk::SetShadowMapSize( int width, int height )

Параметры

width - Ширина в пикселях, используемая для теневой карты
height - Высота в пикселях, используемая для теневой карты

Пример кода


SetShadowRange

Описание

Устанавливает диапазон от камеры, в котором будут нарисованы тени. В идеале это должно быть установлено на дальний диапазон камеры от SetCameraRange, но рисование теней до самой дальней плоскости может отнять некоторое качество у тех теней, которые находятся ближе к камере. Поэтому установка диапазона теней ниже, чем дальний диапазон камеры, может улучшить качество теней за счет удаленных объектов, не имеющих теней. Фактический диапазон теней будет меньшим значением дальнего диапазона камеры и этого диапазона теней, поэтому вы можете безопасно установить его больше, чем дальний диапазон камеры, без какого-либо влияния на качество. Если позже вы отрегулируете дальний диапазон камеры, то диапазон теней не изменится соответствующим образом, вы должны установить его отдельно. Используйте значение -1, чтобы игнорировать это значение, и всегда используйте дальний диапазон камеры для теней. По умолчанию это значение равно -1.

Определение

void agk::SetShadowRange( float range )

Параметры

range - Расстояние, чтобы остановить рисование теней, -1, чтобы вместо этого использовать дальний диапазон камеры

Пример кода


SetShadowBias

Описание

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

Определение

void agk::SetShadowBias( float bias )

Параметры

bias - Расстояние до сдвига теней

Пример кода


SetShadowLightStepSize

Описание

Ограничивает угол направленного света шагами заданного размера, а не непрерывным значением. Это может предотвратить мерцание тени, если направленный свет медленно меняет свой угол, например, солнце движется по небу. По умолчанию это значение равно 0, что отключает размер шага и сохраняет угол как непрерывное значение. Значения в диапазоне от 0,1 до 2,0, по-видимому, работают лучше всего. Это применимо только в том случае, если SetShadowMappingMode имеет значение Uniform.

Определение

void agk::SetShadowLightStepSize( float step )

Параметры

step - Размер шага угла освещения в градусах

Пример кода


SetShadowCascadeValues

Описание

При использовании cascade shadow maps (SetShadowMappingMode 3) эта команда устанавливает диапазон, который будет охватывать каждая каскадная карта. Всего существует 4 каскадных теневых карты, четвертая всегда охватывает всю затененную область (cascade4 = 1.0), по умолчанию третий каскад охватывает половину затененной области (cascade3 = 0.5), второй каскад охватывает четверть затененной области (cascade2 = 0.25), а первый каскад охватывает одну восьмую затененной области (cascade1 = 0.125). Поскольку все каскадные теневые карты используют одинаковое разрешение, чем меньше площадь, которую они покрывают, тем больше деталей тени будет в этой области. Каскадные теневые карты упорядочены таким образом, что самая маленькая из них находится ближе всего к камере, а самая большая-дальше всего. Таким образом, тени вблизи камеры должны иметь высокую детализацию, в то время как самые дальние, которые менее заметны, будут иметь более низкую детализацию. Обратите внимание, что, хотя использование меньшей площади для конкретного каскада увеличит качество тени, это уменьшит площадь, которую этот каскад покрывает, поэтому качество тени упадет на следующий уровень раньше, чем расстояние от камеры увеличится. Каскадные уровни должны находиться в диапазоне от 0.0 до 1.0, и каждый уровень должен быть больше предыдущего уровня, то есть каскад2 должен быть больше каскада1 и так далее. Если эти правила нарушены, то эта команда ничего не сделает.

Определение

void agk::SetShadowCascadeValues( float cascade1, float cascade2, float cascade3 )

Параметры

cascade1 - Наименьший уровень каскада, должен быть меньше, чем cascade2, должен быть больше, чем 0.0
cascade2 - Второй каскадный уровень, должен быть меньше, чем cascade3
cascade3 - Третий каскадный уровень, должен быть меньше 1,0

Пример кода


SetShaderConstantArrayByName

Описание

Задает индекс массива констант шейдера по имени, константа должна быть помечена как однородная в источнике шейдера. Индексы массива начинаются с 0, если индекс массива находится за пределами границ, то он будет проигнорирован и никакие изменения не будут внесены. Это повлияет на все объекты, нарисованные с помощью этого шейдера. Все значения шейдера имеют от 1 до 4 компонентов, эта команда принимает 4 значения и отбрасывает все, которые не используются именованной переменной.

Определение

void agk::SetShaderConstantArrayByName( unsigned int shaderID, const char *szName, UINT arrayIndex, float value1, float value2, float value3, float value4 )

Параметры

shaderID - Идентификатор шейдера для изменения.
szName - Имя изменяемой константы, как определено в исходном файле шейдера.
arrayIndex - Индекс элемента в массиве для изменения.
value1 - Компонент X или R нового значения, это значение всегда будет использоваться.
value2 - Компонент Y или G нового значения, если константа использует только 1 компонент, это значение отбрасывается.
value3 - Компонент Z или B нового значения, если константа использует только 2 компонента, это значение отбрасывается.
value4 - W или компонент нового значения, если константа использует только 3 компонента, это значение отбрасывается.

Пример кода


SetShaderConstantByName

Описание

Задает константу шейдера по имени, константа должна быть помечена как однородная в источнике шейдера. Это повлияет на все объекты, нарисованные с помощью этого шейдера. Все значения шейдера имеют от 1 до 4 компонентов, эта команда принимает 4 значения и отбрасывает все, которые не используются именованной переменной.

Определение

void agk::SetShaderConstantByName( unsigned int shaderID, const char *szName, float value1, float value2, float value3, float value4 )

Параметры

shaderID - Идентификатор шейдера для изменения.
szName - Имя изменяемой константы, как определено в исходном файле шейдера.
value1 - Компонент X или R нового значения, это значение всегда будет использоваться.
value2 - Компонент Y или G нового значения, если константа использует только 1 компонент, это значение отбрасывается.
value3 - Компонент Z или B нового значения, если константа использует только 2 компонента, это значение отбрасывается.
value4 - W или компонент нового значения, если константа использует только 3 компонента, это значение отбрасывается.

Пример кода


SetPointLightRadius

Описание

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

Определение

void agk::SetPointLightRadius( UINT lightID, float radius )

Параметры

lightID - Идентификатор света для изменения.
radius - Расстояние, на которое может повлиять свет.

Пример кода


SetPointLightPosition

Описание

Помещает точечный свет в новое положение.

Определение

void agk::SetPointLightPosition( UINT lightID, float x, float y, float z )

Параметры

lightID - Идентификатор света для изменения.
x - X-компонент новой позиции.
y - Y-компонент новой позиции.
z - Z-компонент новой позиции.

Пример кода


SetPointLightMode

Описание

Устанавливает точечный свет в режим вершины или пикселя. Вершинный режим быстрее, но пиксельный режим имеет лучшее качество. По умолчанию огни создаются в режиме вершин. Сетка может быть освещена до 8 вершинными огнями и 4 пиксельными огнями одновременно, если вы добавите больше огней, чем это, то самые близкие огни будут использоваться сеткой.

Определение

void agk::SetPointLightMode( UINT lightID, int mode )

Параметры

lightID - Идентификатор света для изменения.
mode - 0 для вершины, 1 для пиксельного режима.

Пример кода


SetPointLightColor

Описание

Меняет точечный свет на новый цвет. Значения должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать вещи, а значения меньше 0 будут отнимать свет.

Определение

void agk::SetPointLightColor( UINT lightID, int red, int green, int blue )

Параметры

lightID - Идентификатор света для изменения.
red - Красная составляющая светлого цвета.
green - Зеленая составляющая светлого цвета.
blue - Синяя составляющая светлого цвета.

Пример кода


SetObjectVisible

Описание

Устанавливает, является ли этот объект видимым или нет. Он по-прежнему будет участвовать в столкновениях и других невизуальных взаимодействиях.

Определение

void agk::SetObjectVisible( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 1, чтобы сделать этот объект видимым, 0, чтобы скрыть его.

Пример кода


SetObjectUVScale

Описание

Изменяет все сетки в объекте для использования указанного УФ-масштаба, см. SetObjectMeshUVScale для получения дополнительной информации.

Определение

void agk::SetObjectUVScale( UINT objID, UINT textureStage, float scaleU, float scaleV )

Параметры

objID - Идентификатор объекта для изменения.
textureStage - Текстурная стадия UVS для модификации находится в диапазоне от 0 до 7
scaleU - Шкала, используемая в направлении U, по умолчанию равна 1
scaleV - Шкала, используемая в направлении V, по умолчанию равна 1

Пример кода


SetObjectUVOffset

Описание

Изменяет все сетки в объекте для использования указанного смещения UV, дополнительные сведения см. в разделе SetObjectMeshUVOffset.

Определение

void agk::SetObjectUVOffset( UINT objID, UINT textureStage, float offsetU, float offsetV )

Параметры

objID - Идентификатор объекта для изменения.
textureStage - Текстурная стадия UVS для модификации находится в диапазоне от 0 до 7
offsetU - Смещение, используемое в направлении U, по умолчанию равно 0
offsetV - Смещение, используемое в направлении V, по умолчанию равно 0

Пример кода


SetObjectTransparency

Описание

Устанавливает режим прозрачности для этого объекта, 0-непрозрачный, 1-альфа-смешанный, 2-аддитивный смешанный, 3-пользовательский смешанный. Использование значения прозрачности больше 0 замедлит рендеринг, он также не записывает прозрачные объекты в Z-буфер, поэтому может вызвать некоторые проблемы с упорядочением глубины. Существует альтернативная форма прозрачности, называемая альфа-маскировкой, которая полезна, если вам нужны только полностью прозрачные или полностью непрозрачные пиксели, но нет смешивания между ними. Более подробную информацию см. в разделе SetObjectAlphaMask. При использовании режима 3 (custom) значения смешивания должны быть заданы с помощью SetObjectBlendModes, иначе объект не будет прозрачным.

Определение

void agk::SetObjectTransparency( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - Режим прозрачности, используемый для этого объекта.

Пример кода


SetObjectShaderConstantDefault

Описание

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

Определение

void agk::SetObjectShaderConstantDefault( unsigned int objID, const char *szName )

Параметры

objID - Идентификатор объекта для изменения.
szName - Имя константы, чтобы перестать меняться.

Пример кода


SetObjectShaderConstantByName

Описание

Задает константу шейдера для объекта по имени, константа должна быть помечена как однородная в источнике шейдера. Объект установит указанную константу в это значение для любого шейдера, к которому он будет применен. Все значения шейдера имеют от 1 до 4 компонентов, эта команда принимает 4 значения и отбрасывает все, которые не используются именованной переменной.

Определение

void agk::SetObjectShaderConstantByName( unsigned int objID, const char *szName, float value1, float value2, float value3, float value4 )

Параметры

objID - Идентификатор объекта для изменения.
szName - Имя изменяемой константы, как определено в исходном файле шейдера.
value1 - Компонент X или R нового значения, это значение всегда будет использоваться.
value2 - Компонент Y или G нового значения, если константа использует только 1 компонент, это значение отбрасывается.
value3 - Компонент Z или B нового значения, если константа использует только 2 компонента, это значение отбрасывается.
value4 - W или компонент нового значения, если константа использует только 3 компонента, это значение отбрасывается.

Пример кода


SetObjectShaderConstantArrayByName

Описание

Задает константу шейдера для объекта по имени, константа должна быть помечена как однородная в источнике шейдера. Объект установит указанную константу в это значение для любого шейдера, к которому он будет применен. Индексы массива начинаются с 0, если индекс массива находится за пределами границ, то он будет проигнорирован и никакие изменения не будут внесены. Все значения шейдера имеют от 1 до 4 компонентов, эта команда принимает 4 значения и отбрасывает все, которые не используются именованной переменной.

Определение

void agk::SetObjectShaderConstantArrayByName( unsigned int objID, const char *szName, UINT arrayIndex, float value1, float value2, float value3, float value4 )

Параметры

objID - Идентификатор объекта для изменения.
szName - Имя изменяемой константы, как определено в исходном файле шейдера.
arrayIndex - Индекс элемента в массиве для изменения.
value1 - Компонент X или R нового значения, это значение всегда будет использоваться.
value2 - Компонент Y или G нового значения, если константа использует только 1 компонент, это значение отбрасывается.
value3 - Компонент Z или B нового значения, если константа использует только 2 компонента, это значение отбрасывается.
value4 - W или компонент нового значения, если константа использует только 3 компонента, это значение отбрасывается.

Пример кода


SetObjectShader

Описание

Устанавливает шейдер, используемый для рисования сеток в этом объекте, каждая сетка может иметь свой собственный набор шейдеров с помощью SetObjectMeshShader, эта команда устанавливает все сетки в этом объекте для использования указанного шейдера. Шейдер, должно быть, был загружен LoadShader. Шейдер похож на сценарий, отправленный в графический процессор, чтобы рассказать ему, как объединить полигональные и текстурные данные для отображения их на экране. По умолчанию сеткам присваивается внутренний шейдер, который будет обрабатывать освещение и текстурирование. Если вы используете идентификатор шейдера 0, сеткам присваивается внутренний шейдер.

Определение

void agk::SetObjectShader( UINT objID, UINT shaderID )

Параметры

objID - Идентификатор объекта для изменения.
shaderID - Идентификатор используемого шейдера.

Пример кода


SetObjectScreenCulling

Описание

Устанавливает, будет ли объект отбракован при его перемещении за пределы экрана. По умолчанию AGK попытается определить, когда объект переместился за пределы экрана, и объекты, которые больше не находятся на экране, больше не будут отправляться в конвейер рендеринга. Если вершинный шейдер изменяет вершины из их нормальных положений, то это должно быть отключено, так как AGK не может заранее знать, где будет нарисован объект.

Определение

void agk::SetObjectScreenCulling( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 0 для отключения отбраковки экрана, 1 для его включения (по умолчанию).

Пример кода


SetObjectScalePermanent

Описание

Изменяет размер объекта в направлениях X, Y и Z. Это изменяет вершины объекта, что делает это постоянное изменение более медленным, чем SetObjectScale. Эта команда не считывает и не влияет на значения,заданные с помощью SetObjectScale,поэтому использование SetObjectScale(ID,2, 2, 2), а затем установка постоянного масштаба 3,3,3 все равно нарисует объект в 2 раза больше обычного, что означает в 6 раз больше, чем при запуске. Эта команда не влияет ни на какие дочерние объекты, которые могли быть загружены вместе с ней, ни на какие объекты, прикрепленные к ней с помощью FixObjectToObject. Эта команда будет работать с костяными анимированными объектами до тех пор, пока масштаб однороден, то есть значения шкалы X, Y и Z одинаковы.

Определение

void agk::SetObjectScalePermanent( UINT objID, float x, float y, float z )

Параметры

objID - Идентификатор объекта для изменения.
x - Величина для масштабирования объекта по оси X.
y - Величина для масштабирования объекта по оси Y.
z - Величина для масштабирования объекта по оси Z.

Пример кода


SetObjectScale

Описание

Изменяет размер объекта в направлениях X, Y и Z. Значение масштаба 1,1,1 возвращает объект к его первоначальному размеру, значение масштаба 2 делает объект вдвое больше, 0,5 - вдвое меньше и так далее. Эта команда не складывается, поэтому вызов ее дважды со значением 2 не сделает ее в 4 раза больше, она останется в 2 раза больше. Обратите внимание, что использование различных значений для направлений X, Y и Z, таких как so 1,2,1, называется неоднородной шкалой, в то время как 1.5,1.5,1.5 будет однородной шкалой. Неравномерное масштабирование требует, чтобы любой шейдер, используемый этим объектом, использовал матрицу agk_WorldNormal для любых нормальных преобразований, чтобы выглядеть правильно. Если этот объект был загружен командой LoadObjectWithChildren и имеет дочерние объекты или имеет объекты, прикрепленные к нему с помощью FixObjectToObject, то они также будут масштабироваться на эту величину в дополнение к их собственному масштабированию. Обратите внимание, что это не будет корректно работать с костяными анимированными объектами, вместо этого используйте SetObjectScalePermanent.

Определение

void agk::SetObjectScale( UINT objID, float x, float y, float z )

Параметры

objID - Идентификатор объекта для изменения.
x - Величина для масштабирования объекта по оси X.
y - Величина для масштабирования объекта по оси Y.
z - Величина для масштабирования объекта по оси Z.

Пример кода


SetObjectRotationQuat

Описание

Задает вращение указанного объекта с помощью кватерниона. В качестве альтернативы вы можете использовать SetObjectRotation для использования углов Эйлера. По умолчанию объекты создаются с кватернионом 1,0,0,0 в порядке w,x,y,z. Кватернион-это 4-мерное представление трехмерного вращения со свойством w^2+x^2+y^2+z^2 = 1, которое позволяет легко интерполировать между двумя вращениями путем линейной интерполяции двух кватернионов и их нормализации. Каждое 3D-вращение представлено ровно 2 кватернионами, w,x,y,z и -w,-x,-y,-z, поэтому любая версия может быть возвращена командами GetObjectQuat. Кватернионы и углы Эйлера могут использоваться одновременно. Например, установка вращения кватерниона будет генерировать эквивалентные значения Эйлера, которые могут быть получены с помощью GetObjectAngleX, GetObjectAngleX и GetObjectAngleZ.

Определение

void agk::SetObjectRotationQuat( UINT objID, float w, float x, float y, float z )

Параметры

objID - Идентификатор объекта для изменения.
w - W-компонент кватерниона.
x - X-компонент кватерниона.
y - Y-компонент кватерниона.
z - Z-компонент кватерниона.

Пример кода


SetObjectRotation

Описание

Задает поворот указанного объекта с помощью углов Эйлера в градусах. В качестве альтернативы вы можете использовать SetObjectRotationQuat для использования кватерниона. По умолчанию объекты создаются с углами 0,0,0 в порядке YXZ. Углы Эйлера-это составные углы, где объект начинается с 0,0,0 и затем поворачивается на заданный угол Y, затем на заданный угол X, а затем катится на заданный угол Z. Каждое 3D-вращение может быть представлено 2 комбинациями углов Эйлера, Y,X,Z и Y-180,X-180,Z-180, поэтому любая версия может быть возвращена командами GetObjectAngle. Кватернионы и углы Эйлера могут использоваться одновременно. Например, установка вращения кватерниона будет генерировать эквивалентные значения Эйлера, которые могут быть получены с помощью GetObjectAngleX, GetObjectAngleX и GetObjectAngleZ.

Определение

void agk::SetObjectRotation( UINT objID, float angx, float angy, float angz )

Параметры

objID - Идентификатор объекта для изменения.
angx - X-компонент вращения Эйлера.
angy - Y-компонент вращения Эйлера.
angz - Z-компонент вращения Эйлера.

Пример кода


SetObjectReceiveShadow

Описание

Задает объект для получения теней от других объектов. По умолчанию это значение равно 1. Объект может быть настроен как на отбрасывание, так и на получение теней.

Определение

void agk::SetObjectReceiveShadow( int objID, int mode )

Параметры

objID - Идентификатор объекта для получения теней
mode - 1, чтобы заставить этот объект получать тени, 0, чтобы остановить его получение теней

Пример кода


SetObjectPosition

Описание

Задает положение указанного объекта. По умолчанию объекты располагаются на уровне 0,0,0

Определение

void agk::SetObjectPosition( UINT objID, float x, float y, float z )

Параметры

objID - Идентификатор объекта для изменения.
x - X-компонент позиции.
y - Y-компонент позиции.
z - Z-компонент позиции.

Пример кода


SetObjectNormalMapScale

Описание

Масштабирует нормальные координаты карты UV на заданную величину. Это не влияет ни на какую другую текстуру, но накладывается поверх УФ-смещения и масштаба объекта. Значение масштаба 1.0 будет использовать немодифицированный UVS, значение масштаба 2.0 удвоит значение UV и так далее.

Определение

void agk::SetObjectNormalMapScale( UINT objID, float scaleU, float scaleV )

Параметры

objID - Идентификатор объекта для изменения.
scaleU - Сумма для масштабирования карты нормалей в направлении U
scaleV - Величина для масштабирования карты нормалей в направлении V

Пример кода


SetObjectNormalMap

Описание

Устанавливает все сетки в этом объекте для использования указанного изображения в качестве карты нормалей. Вы можете установить нормальную карту для одной сетки с помощью SetObjectMeshNormalMap. Нормальная карта будет помещена в текстурную стадию 2, перезаписывая все, что уже есть, и будет сгенерирован шейдер, который сочетает ее с любым динамическим освещением, чтобы правильно осветить объект. Если вы устанавливаете свой собственный шейдер с помощью SetObjectShader, то ваш шейдер должен будет использовать саму карту нормалей, так как AGK не будет изменять ваш шейдер таким образом. Нормальная карта будет использовать второй набор УФ-координат, если таковой имеется, в противном случае она будет использовать те же УФ-координаты, что и базовая текстура. Если есть также изображение на стадии текстуры 1 (например, световая карта), то нормальная карта всегда будет использовать базовый UVS.

Определение

void agk::SetObjectNormalMap( UINT objID, UINT imageID )

Параметры

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

Пример кода


SetObjectMeshUVScale

Описание

Изменяет UVS сетки, чтобы масштабировать их на заданную величину. Это может вытолкнуть УФ-координаты за пределы диапазона от 0.0 до 1.0, и в этом случае режим обертывания изображения будет использоваться либо для зажима, либо для повторения текстуры. Используйте SetImageWrapU и SetImageWrapV для установки режима обертывания. Значение масштаба 1 оставит UV-координаты со значениями по умолчанию, в то время как значение масштаба 2.0 удвоит количество раз, когда текстура появляется на сетке (при условии, что режим обертывания установлен на повторение). Обратите внимание, что изображение должно быть размером в 2 степени, чтобы использовать режим повтора.

Определение

void agk::SetObjectMeshUVScale( UINT objID, UINT meshIndex, UINT textureStage, float scaleU, float scaleV )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения.
textureStage - Текстурная стадия UVS для модификации находится в диапазоне от 0 до 7
scaleU - Шкала, используемая в направлении U, по умолчанию равна 1
scaleV - Шкала, используемая в направлении V, по умолчанию равна 1

Пример кода


SetObjectMeshVisible

Описание

Устанавливает, является ли эта сетка объектов видимой или нет.

Определение

void agk::SetObjectMeshVisible(UINT objID, UINT meshIndex,int mode)

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для проверки, первая сетка находится в индексе 1.
mode - 1, чтобы установить эту сетку объектов как видимую, 0, чтобы скрыть ее.

Пример кода


SetObjectMeshUVOffset

Описание

Изменяет UVS сетки, чтобы сдвинуть их на заданное смещение. Это может вытолкнуть УФ-координаты за пределы диапазона от 0.0 до 1.0, и в этом случае режим переноса изображения будет использоваться либо для зажима, либо для повторения текстуры. Используйте SetImageWrapU и SetImageWrapV для установки режима обертывания. Обратите внимание, что изображение должно быть размером в 2 степени, чтобы использовать режим повтора.

Определение

void agk::SetObjectMeshUVOffset( UINT objID, UINT meshIndex, UINT textureStage, float offsetU, float offsetV )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения.
textureStage - Текстурная стадия UVS для модификации находится в диапазоне от 0 до 7
offsetU - Смещение, используемое в направлении U, по умолчанию равно 0
offsetV - Смещение, используемое в направлении V, по умолчанию равно 0

Пример кода


SetObjectMeshShader

Описание

Устанавливает шейдер, используемый для рисования этой сетки, шейдер должен быть загружен LoadShader. Шейдер похож на сценарий, отправленный в графический процессор, чтобы рассказать ему, как объединить полигональные и текстурные данные для отображения их на экране. По умолчанию сеткам присваивается внутренний шейдер, который будет обрабатывать освещение и текстурирование. Если вы используете идентификатор шейдера 0, сетке присваивается внутренний шейдер. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes

Определение

void agk::SetObjectMeshShader( UINT objID, UINT meshIndex, UINT shaderID )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения, первая сетка находится в индексе 1.
shaderID - Идентификатор используемого шейдера.

Пример кода


SetObjectMeshNormalMapScale

Описание

Масштабирует нормальные координаты карты UV на заданную величину. Это не влияет ни на какую другую текстуру, но накладывается поверх УФ-смещения и масштаба объекта. Значение масштаба 1.0 будет использовать немодифицированный UVS, значение масштаба 2.0 удвоит значение UV и так далее.

Определение

void agk::SetObjectMeshNormalMapScale( UINT objID, UINT meshIndex, float scaleU, float scaleV )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения, первая сетка находится в индексе 1.
scaleU - Сумма для масштабирования карты нормалей в направлении U
scaleV - Величина для масштабирования карты нормалей в направлении V

Пример кода


SetObjectMeshNormalMap

Описание

Устанавливает сетку объекта для использования указанного изображения в качестве карты нормалей. Нормальная карта будет помещена в текстурную стадию 2, перезаписывая все, что уже есть, и будет сгенерирован шейдер, который сочетает ее с любым динамическим освещением, чтобы правильно осветить объект. Если вы устанавливаете свой собственный шейдер с помощью SetObjectShader, то ваш шейдер должен будет использовать саму карту нормалей, так как AGK не будет изменять ваш шейдер таким образом. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes

Определение

void agk::SetObjectMeshNormalMap( UINT objID, UINT meshIndex, UINT imageID )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения, первая сетка находится в индексе 1.
imageID - Идентификатор изображения, которое будет использоваться в качестве обычной карты.

Пример кода


SetObjectMeshLightMap

Описание

Устанавливает сетку объекта для использования указанного изображения в качестве световой карты. Световая карта будет помещена в текстурную стадию 1, перезаписывая все, что уже есть, и будет сгенерирован шейдер, который объединит ее с текстурной стадией 0 и любым динамическим освещением, чтобы правильно осветить объект. Если вы устанавливаете свой собственный шейдер с помощью SetObjectShader, то ваш шейдер должен будет использовать саму световую карту, так как AGK не будет изменять ваш шейдер таким образом. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes

Определение

void agk::SetObjectMeshLightMap( UINT objID, UINT meshIndex, UINT imageID )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения, первая сетка находится в индексе 1.
imageID - Идентификатор изображения, которое будет использоваться в качестве световой карты.

Пример кода


SetObjectMeshImage

Описание

Устанавливает сетку объекта для использования этого изображения при рендеринге. Сетка может иметь до 8 изображений, назначенных ей на этапах текстуры от 0 до 7. Если вы не уверены, какой этап текстуры использовать, поместите изображение в этап 0. Стадии текстуры можно использовать для назначения нескольких изображений сетке, например, вы можете поместить базовую (диффузную) текстуру в стадию 0, нормальную карту в стадию 1 и световую карту в стадию 2. Шейдер, используемый для рисования этого объекта, может затем объединить различные текстуры в пиксельное значение для отображения на экране. Использование значения изображения 0 для определенного этапа текстуры удаляет любое назначенное изображение с этого этапа. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes

Определение

void agk::SetObjectMeshImage( UINT objID, UINT meshIndex, UINT imageID, UINT textureStage )

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения, первая сетка находится в индексе 1.
imageID - Идентификатор изображения, назначаемого этому объекту.
textureStage - Этап текстуры, используемый для этого изображения.

Пример кода


SetObjectMeshCollisionMode

Описание

Включает или выключает обнаружение столкновений для одной сетки в объекте.

Определение

void agk::SetObjectMeshCollisionMode(UINT objID,int meshIndex, int mode)

Параметры

objID - Идентификатор объекта для изменения.
meshIndex - Индекс сетки для изменения режима Коллисона, первая сетка находится в индексе 1.
mode - 0, чтобы выключить столкновение, 1, чтобы включить его.

Пример кода


SetObjectLookAt

Описание

Вращает объект, чтобы посмотреть на определенную точку в пространстве с дополнительным значением крена. смотреть определяется как выравнивание локальной оси Z объекта, чтобы указать его положительную сторону в данной точке. Это может быть достигнуто с помощью только углов Y и X в эйлеровой нотации, поэтому вы можете указать дополнительный угол Z в градусах, чтобы перевернуть объект слева направо, всегда глядя на одно и то же место.

Определение

void agk::SetObjectLookAt( UINT objID, float x, float y, float z, float roll )

Параметры

objID - Идентификатор объекта для изменения.
x - X-компонент позиции, на которую нужно смотреть.
y - Y-компонент позиции, на которую нужно смотреть.
z - Z-компонент позиции, на которую нужно смотреть.
roll - Угол Z для поворота объекта при взгляде на заданное положение отрицательный-по часовой стрелке.

Пример кода


SetObjectLightMode

Описание

Включает или выключает освещение при рисовании этого объекта.

Определение

void agk::SetObjectLightMode( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 0 для выключения освещения, 1 для его включения.

Пример кода


SetObjectImage

Описание

Устанавливает все сетки в этом объекте для использования этого изображения при рендеринге. Вы можете установить текстуры отдельно для каждой сетки с помощью SetObjectMeshImage. Каждая сетка может иметь до 8 изображений, назначенных ей на этапах текстуры от 0 до 7. Если вы не уверены, какой этап текстуры использовать, поместите изображение в этап 0. Стадии текстуры можно использовать для назначения нескольких изображений сетке, например, вы можете поместить базовую (диффузную) текстуру в стадию 0, нормальную карту в стадию 1 и световую карту в стадию 2. Шейдер, используемый для рисования этого объекта, может затем объединить различные текстуры в пиксельное значение для отображения на экране. Использование значения изображения 0 для определенного этапа текстуры удаляет любое назначенное изображение с этого этапа.

Определение

void agk::SetObjectImage( UINT objID, UINT imageID, UINT texStage )

Параметры

objID - Идентификатор объекта для изменения.
imageID - Идентификатор изображения, назначаемого этому объекту.
texStage - Этап текстуры, используемый для этого изображения.

Пример кода


SetObjectLightMap

Описание

Устанавливает все сетки в этом объекте для использования указанного изображения в качестве световой карты. Вы можете установить световую карту для одной сетки с помощью SetObjectMeshLightMap. Световая карта будет помещена в текстурную стадию 1, перезаписывая все, что уже есть, и будет сгенерирован шейдер, который объединит ее с текстурной стадией 0 и любым динамическим освещением, чтобы правильно осветить объект. Если вы устанавливаете свой собственный шейдер с помощью SetObjectShader, то ваш шейдер должен будет использовать саму световую карту, так как AGK не будет изменять ваш шейдер таким образом. Световая карта будет использовать второй набор УФ-координат, если он доступен, в противном случае она будет использовать те же УФ-координаты, что и базовая текстура.

Определение

void agk::SetObjectLightMap( UINT objID, UINT imageID )

Параметры

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

Пример кода


SetObjectFogMode

Описание

Включает или выключает туман при рисовании этого объекта. По умолчанию все объекты получают туман, когда он включен с помощью SetFogMode

Определение

void agk::SetObjectFogMode( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 0, чтобы выключить туман, 1, чтобы включить его.

Пример кода


SetObjectDepthWrite

Описание

Устанавливает режим записи глубины при рисовании этого объекта на экране. Если он проходит тест глубины, объект записывает свое значение глубины в буфер глубины, чтобы остановить что-либо еще позади от прохождения их тестов глубины. По умолчанию только объекты, которые находятся ближе (меньше) текущего значения глубины, будут перезаписывать текущее содержимое экрана. Вы можете отключить эту запись в буфер глубины для этого объекта, это может быть полезно для прозрачных объектов, которые не должны блокировать рисование позади себя. По умолчанию для всех непрозрачных объектов включена запись глубины, а для всех прозрачных объектов-выключена запись глубины.

Определение

void agk::SetObjectDepthWrite( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 0, чтобы отключить списание глубины для этого объекта, 1, чтобы включить его.

Пример кода


SetObjectDepthReadMode

Описание

Устанавливает режим чтения глубины при рисовании этого объекта на экране. Объект должен пройти тест глубины, чтобы быть видимым. Доступные варианты: 0=никогда не проходите, 1=меньше, 2=равно, 3=меньше или равно, 4=больше, 5=не равно, 6=больше или равно, 7=всегда проходите. По умолчанию все объекты используют режим 1 (меньше), что означает, что они должны быть ближе, чем любые уже нарисованные объекты, чтобы быть видимыми.

Определение

void agk::SetObjectDepthReadMode( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - Режим глубины, используемый для этого объекта.

Пример кода


SetObjectDepthBias

Описание

Устанавливает смещение глубины при рисовании этого объекта на экране. Если два объекта находятся очень близко друг к другу, один перед другим, они могут вызвать Z-бой, где они, кажется, мерцают между одним объектом и другим, отображаемым друг перед другом. Например, наклейка на поверхность другого объекта. Смещение Z предназначено для предотвращения этого мерцания, заставляя (смещая) один объект всегда находиться впереди или позади другого. Величина смещения должна быть положительной, чтобы приблизить этот объект к камере, и отрицательной, чтобы отодвинуть его назад. На самом деле это не влияет на положение объекта, только на его воспринимаемое положение, когда система рендеринга проверяет, должен ли объект быть нарисован или нет. Если объект проходит этот тест на смещенную глубину, то он рисуется в исходном положении. Значение смещения кратно наименьшему значению буфера z, поэтому рекомендуемым значением является значение смещения 1. Значения меньше этого вряд ли будут иметь какой-либо эффект, значения больше этого можно попробовать, если значение 1 не работает, попробуйте 1.5, 2.0 и т. Д.

Определение

void agk::SetObjectDepthBias( UINT objID, float bias )

Параметры

objID - Идентификатор объекта для изменения.
bias - Величина смещения, равная 0, чтобы отключить смещение глубины для этого объекта.

Пример кода


SetObjectDepthRange

Описание

Задает диапазон значений глубины, с которыми сопоставляется этот объект. По умолчанию это от 0 до 1, где 0 - ближняя плоскость, а 1-дальняя. Например, установка диапазона глубины 1,1 приведет к тому, что каждый пиксель в этом объекте будет иметь значение глубины 1 при сравнении и записи в буфер глубины. Значения будут зажаты в диапазоне от 0 до 1, объекты за пределами ближней или дальней плоскостей все равно будут обрезаны. Обратные сопоставления разрешаются установкой near больше, чем far.

Определение

void agk::SetObjectDepthRange( UINT objID, float zNear, float zFar )

Параметры

objID - Идентификатор объекта для изменения.
zNear - Начало диапазона глубин для этого объекта
zFar - Конец диапазона глубин для этого объекта

Пример кода


SetObjectCullMode

Описание

Задает, должен ли этот объект рисовать свои задние грани при рендеринге. Используйте режим 0=как передние, так и задние нарисованные, 1=только передние грани, 2=только задние грани. По умолчанию рисуются только лицевые грани (режим 1).

Определение

void agk::SetObjectCullMode( UINT objID, int mode )

Параметры

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

Пример кода


SetObjectColorEmissive

Описание

Задает эмиссионный цвет, используемый при рисовании этого объекта. Значения должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать объект, а значения меньше 0 будут отнимать свет. Излучающий цвет имитирует свет, генерируемый объектом, поэтому он получит этот цвет, даже если он ничем не освещается. Это не влияет ни на какие окружающие предметы.

Определение

void agk::SetObjectColorEmissive( UINT objID, int red, int green, int blue )

Параметры

objID - Идентификатор объекта для изменения.
red - Красная составляющая цвета.
green - Зеленая составляющая цвета.
blue - Синяя составляющая цвета.

Пример кода


SetObjectColor

Описание

Задает диффузный цвет, используемый при рисовании этого объекта. Значения должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать объект, а значения меньше 0 будут отнимать свет.

Определение

void agk::SetObjectColor( UINT objID, int red, int green, int blue, int alpha )

Параметры

objID - Идентификатор объекта для изменения.
red - Красная составляющая цвета.
green - Зеленая составляющая цвета.
blue - Синяя составляющая цвета.
alpha - Альфа-компонент цвета.

Пример кода


SetObjectCollisionMode

Описание

Включает или выключает обнаружение столкновений для этого объекта.

Определение

void agk::SetObjectCollisionMode( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 0, чтобы выключить столкновение, 1, чтобы включить его.

Пример кода


SetObjectCastShadow

Описание

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

Определение

void agk::SetObjectCastShadow( int objID, int mode )

Параметры

objID - Идентификатор объекта для отбрасывания теней
mode - 1, чтобы заставить этот объект отбрасывать тени, 0, чтобы остановить его отбрасывание теней

Пример кода


SetObjectBoneRotationQuat

Описание

Задает вращение указанной кости относительно ее родителя в виде кватерниона.

Определение

void agk::SetObjectBoneRotationQuat( UINT objID, UINT boneIndex, float w, float x, float y, float z )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
w - W-компонент вращения.
x - X-составляющая вращения.
y - Y-составляющая вращения.
z - Z-составляющая вращения.

Пример кода


SetObjectBoneRotation

Описание

Задает поворот указанной кости с помощью углов Эйлера в градусах. В качестве альтернативы вы можете использовать SetObjectBoneRotationQuat для использования кватерниона.

Определение

void agk::SetObjectBoneRotation( UINT objID, UINT boneIndex, float angx, float angy, float angz )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости для изменения
angx - X-составляющая вращения.
angy - Y-составляющая вращения.
angz - Z-составляющая вращения.

Пример кода


SetObjectBoneLookAt

Описание

Вращает кость, чтобы посмотреть на определенную точку в мировом пространстве с дополнительным значением крена. смотреть определяется как выравнивание локальной оси Z кости, чтобы указать ее положительную сторону в данной точке. Это может быть достигнуто с помощью только углов Y и X в эйлеровой нотации, поэтому вы можете указать дополнительный угол Z в градусах, чтобы катить кость слева направо, всегда глядя на одно и то же место.

Определение

void agk::SetObjectBoneLookAt( UINT objID, UINT boneIndex, float x, float y, float z, float roll )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
x - X-компонент позиции, на которую нужно смотреть.
y - Y-компонент позиции, на которую нужно смотреть.
z - Z-компонент позиции, на которую нужно смотреть.
roll - Угол Z для перекатывания кости при взгляде на заданное положение отрицательный-по часовой стрелке.

Пример кода


SetObjectBonePosition

Описание

Устанавливает положение указанной кости относительно ее родителя.

Определение

void agk::SetObjectBonePosition( UINT objID, UINT boneIndex, float x, float y, float z )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости для изменения
x - X-компонент позиции.
y - Y-компонент позиции.
z - Z-компонент позиции.

Пример кода


SetObjectBoneCanAnimate

Описание

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

Определение

void agk::SetObjectBoneCanAnimate( UINT objID, UINT boneIndex, int animate )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
animate - 1, чтобы позволить анимации воздействовать на эту кость, 0, чтобы разрешить ручное управление.

Пример кода


SetObjectBlendModes

Описание

Если SetObjectTransparency имеет значение 3, то исходные и целевые значения смешивания можно задать вручную с помощью этой команды. Доступны следующие режимы наложения: 0 = 0 1 = 1 2 = Исходный пиксель Альфа 3 = 1 - Исходный Пиксель Альфа 4 = Целевой Пиксель Альфа 5 = 1 - Целевой Пиксель Альфа 6 = Исходный Пиксель Цвет (действителен только для режима назначения) 7 = 1 - Исходный пиксель Цвет (действителен только для режима назначения) 8 = Целевой пиксель Цвет (действителен только для режима источника) 9 = 1 - Целевой пиксель Цвет (действителен только для режима источника) 10 = Альфа Насыщение (действителен только для режима источника) Исходный пиксель будет умножен на исходный режим, а целевой пиксель будет умножен на целевой режим. Затем они будут сложены вместе, чтобы получить окончательный цвет пикселя. Исходный пиксель-это пиксель, принадлежащий рисуемому объекту, в то время как конечный пиксель-это цвет пикселя, уже находящегося на экране, над которым рисуется текущий объект.

Определение

void agk::SetObjectBlendModes( UINT objID, int src, int dst )

Параметры

objID - Идентификатор объекта для изменения.
src - Режим наложения, используемый для источника наложения.
dst - Режим наложения, используемый для назначения наложения.

Пример кода


SetObjectAnimationSpeed

Описание

Устанавливает скорость анимации для данного объекта как кратную времени по умолчанию, то есть 1.0 будет использовать время из ключевых кадров анимации, 2.0 будет воспроизводить их в два раза быстрее, 0.5-в два раза медленнее и так далее. Вы также можете использовать отрицательные значения для воспроизведения анимации в обратном порядке или 0 для ее приостановки.

Определение

void agk::SetObjectAnimationSpeed(  UINT objID, float speed )

Параметры

objID - Идентификатор объекта для изменения.
speed - Новая скорость анимации, используемая для этого объекта, по умолчанию 1.0

Пример кода


SetObjectAnimationFrame

Описание

Устанавливает положение костей объекта в соответствии с заданным временем в анимации. Только объекты, загруженные с помощью LoadObjectWithChildren, будут иметь назначенные им анимации. Имена анимаций определяются программой моделирования при создании анимаций вы можете узнать, что это за имена, используя GetObjectAnimationName. Если заданное время попадает между ключевыми кадрами, то позиции костей будут интерполированы между ними. Параметр tweentime можно использовать для интерполяции между текущими позициями костей и заданным временем анимации, чтобы не было резкого скачка в позициях костей. Обратите внимание, что как только эта команда будет вызвана, кости будут управляться анимацией и не могут быть перемещены с помощью SetObjectBonePosition или аналогичных команд. Вы можете восстановить ручное управление отдельными костями, используя SetObjectBoneCanAnimate на нем. Вы можете восстановить контроль над всей костной структурой с помощью ResetObjectAnimation.

Определение

void agk::SetObjectAnimationFrame(UINT objID, const char *animName, float time, float tweentime )

Параметры

objID - Идентификатор объекта для изменения.
animName - Название воспроизводимой анимации, определяемое программой моделирования
time - Точка в анимации для считывания положения костей, в секундах
tweentime - Время в секундах для перехода от текущего состояния объектов к заданному кадру

Пример кода


SetObjectAlphaMask

Описание

Включает или выключает альфа-маскировку для этого объекта. Это похоже на прозрачность, но производит только полностью прозрачные или полностью непрозрачные пиксели, нет смешанных или полупрозрачных пикселей. Если пиксель имеет альфа - значение меньше 128, он будет проигнорирован, если он больше или равен 128, то он будет нарисован. Это имеет меньше проблем с упорядочением глубины, чем при использовании SetObjectTransparency, но в некоторых случаях может быть немного медленнее. Вы не должны использовать как прозрачность, так и альфа-маскировку на одном и том же объекте одновременно, используйте только одну или другую.

Определение

void agk::SetObjectAlphaMask( UINT objID, int mode )

Параметры

objID - Идентификатор объекта для изменения.
mode - 1=использовать альфа-маскировку, 0=отключить альфа-маскировку.

Пример кода


SetObjectAlpha

Описание

Задает значение альфа-сигнала, которое будет использоваться при рисовании этого объекта. Это то же самое альфа-значение, которое можно установить в SetObjectColor. Значения должны находиться в диапазоне 0-255, но не ограничиваться им.

Определение

void agk::SetObjectAlpha( UINT objID, int alpha )

Параметры

objID - Идентификатор объекта для изменения.
alpha - Альфа-компонент цвета.

Пример кода


SetGlobal3DDepth

Описание

Задает положение всех 3D-объектов относительно 2D-объектов. Например, использование глобальной 3D-глубины 100 будет означать, что все спрайты на глубине меньше или равной 100 будут появляться над любыми 3D-объектами, в то время как спрайты на глубине больше 100 будут появляться под любыми 3D-объектами.

Определение

void agk::SetGlobal3DDepth( int depth )

Параметры

depth - Глубина спрайта для рендеринга 3D.

Пример кода


SetFogRange

Описание

Устанавливает диапазон действия 3D-тумана. На минимальном расстоянии не будет возникать тумана, после чего туман начнет действовать. Максимальное расстояние не является пределом и является лишь приблизительным руководством для того, как далеко вы хотите видеть в своей сцене. Туман увеличивается экспоненциально, чтобы имитировать реальность, то есть сначала он быстро увеличивается, затем затихает и постепенно достигает полной интенсивности на максимальном расстоянии.

Определение

void agk::SetFogRange( float minDist, float maxDist )

Параметры

minDist - Минимальное расстояние для тумана, никакой туман не повлияет на пиксели в пределах этого расстояния от камеры.
maxDist - Максимальное расстояние для тумана, туман достигнет полной интенсивности вокруг этого расстояния.

Пример кода


SetFogSunColor

Описание

Устанавливает цвет солнца 3D тумана. Это используется вместо обычного цвета тумана, когда камера обращена к солнцу, как определено командой SetSunDirection. Это может быть использовано для имитации эффектов рассеяния света, чтобы воздух казался туманным. Цвет туманного солнца должен быть близок к цвету солнца для лучшего эффекта, но это не обязательно. Обратите внимание, что вызов этой команды изменяет расчет тумана на более сложную версию, что приведет к снижению производительности на мобильных устройствах. Чтобы вернуться к более быстрому методу расчета тумана, сделайте цвет солнца тумана равным нормальному цвету тумана.

Определение

void agk::SetFogSunColor( int red, int green, int blue )

Параметры

red - Красная составляющая цвета.
green - Зеленая составляющая цвета.
blue - Синяя составляющая цвета.

Пример кода


SetFogColor

Описание

Устанавливает цвет 3D тумана. Объекты будут постепенно исчезать до этого цвета по мере удаления от камеры. Цветовые значения должны находиться в диапазоне от 0 до 255, но этим они не ограничиваются и система будет принимать значения вне диапазона, в том числе и отрицательные.

Определение

void agk::SetFogColor( int red, int green, int blue )

Параметры

red - Красная составляющая цвета.
green - Зеленая составляющая цвета.
blue - Синяя составляющая цвета.

Пример кода


SetFogMode

Описание

Устанавливает 3D туман включенным или выключенным, это может быть использовано для создания атмосферной дымки или выцветания объектов до цвета фона, чтобы имитировать уменьшенную видимость. Туман будет автоматически применен ко всем 3D-объектам, если они используют шейдер по умолчанию. Если вы применили свой собственный шейдер с помощью SetObjectShader, то объявите функцию mediump vec3 ApplyFog( mediump vec3 color, highp vec3 pointPos ); в пиксельном шейдере, который AGK заполнит для вас во время выполнения. pointPos-это положение пикселя в мировых координатах, которое вам нужно будет передать из вершинного шейдера.

Определение

void agk::SetFogMode( int mode )

Параметры

mode - 1, чтобы включить туман, 0, чтобы выключить его.

Пример кода


SetCameraRotationQuat

Описание

Устанавливает вращение указанной камеры с помощью кватерниона. В качестве альтернативы вы можете использовать SetCameraRotation для использования углов Эйлера. По умолчанию камеры создаются с кватернионом 1,0,0,0 в порядке w,x,y,z. Кватернион-это 4-мерное представление трехмерного вращения со свойством w^2+x^2+y^2+z^2 = 1, которое позволяет легко интерполировать между двумя вращениями путем линейной интерполяции двух кватернионов и их нормализации. Каждое 3D-вращение представлено ровно 2 кватернионами, w,x,y,z и -w,-x,-y,-z, поэтому любая версия может быть возвращена командами GetCameraQuat. Кватернионы и углы Эйлера могут использоваться одновременно. Например, установка вращения кватерниона создаст представление Эйлера, которое можно получить с помощью GetCameraAngleX и т. Д.

Определение

void agk::SetCameraRotationQuat( UINT cameraID, float w, float x, float y, float z )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
w - W-компонент кватерниона.
x - X-компонент кватерниона.
y - Y-компонент кватерниона.
z - Z-компонент кватерниона.

Пример кода


SetCameraRotation

Описание

Задает поворот указанной камеры с помощью углов Эйлера в градусах. В качестве альтернативы вы можете использовать SetCameraRotationQuat для использования кватерниона. По умолчанию камеры создаются с углами 0,0,0 в порядке YXZ. Углы Эйлера-это составные углы, где камера начинается с 0,0,0 и затем поворачивается на заданный угол Y, затем на заданный угол X, а затем катится на заданный угол Z. Каждое 3D-вращение может быть представлено 2 комбинациями углов Эйлера, Y,X,Z и Y-180,X-180,Z-180, поэтому любая версия может быть возвращена командами GetCameraAngle. Кватернионы и углы Эйлера могут использоваться одновременно. Например, установка угла поворота Эйлера создаст представление кватерниона, которое можно получить с помощью GetCameraQuatX и т. Д.

Определение

void agk::SetCameraRotation( UINT cameraID, float angx, float angy, float angz )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
angx - X-компонент вращения Эйлера.
angy - Y-компонент вращения Эйлера.
angz - Z-компонент вращения Эйлера.

Пример кода


SetCameraRange

Описание

Устанавливает ближнюю и дальнюю плоскости камеры. Из-за ограничений рендеринга не все перед камерой может быть рендерено, поэтому они должны быть ограничены видимым диапазоном. Все, что находится за пределами этого диапазона, отсекается системой рендеринга и остается невидимым. Ближняя плоскость-это самое близкое, что объект может быть к камере и все еще визуализироваться, она должна быть больше 0. Обратите внимание, что использование очень малых значений для ближней плоскости повлияет на точность буфера глубины при рендеринге объектов вдали, что может вызвать мерцание на удаленных объектах. Это происходит потому, что буфер глубины не является линейным, вместо этого он смещен в сторону ближней плоскости, и чем ближе к 0 становится ближняя плоскость, тем меньше буфера глубины доступно для дальних объектов. Дальняя плоскость-это максимальное расстояние, на котором объект может находиться от камеры и все еще визуализироваться, его максимальное значение равно бесконечности, но опять же, чем дальше вы пытаетесь визуализировать объект от ближней плоскости, тем менее точной становится буферизация глубины. Если объект пересекает ближнюю или дальнюю плоскость так, что часть его находится с одной стороны, а часть-с другой, то объект будет разрезан плоскостью, и будет видна только часть в пределах диапазона обзора. Диапазон по умолчанию-near=1, far=1000.

Определение

void agk::SetCameraRange( UINT cameraID, float fNear, float fFar )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
fNear - Самое близкое, что объект будет визуализирован.
fFar - Самое дальнее, что объект будет визуализирован.

Пример кода


SetCameraPosition

Описание

Устанавливает положение указанной камеры. По умолчанию камеры расположены на уровне 0,0,0, основная камера-ID 1.

Определение

void agk::SetCameraPosition( UINT cameraID, float x, float y, float z )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
x - X-компонент позиции.
y - Y-компонент позиции.
z - Z-компонент позиции.

Пример кода


SetCameraOffCenter

Описание

Устанавливает камеру на использование смещенной от центра проекционной матрицы. Вы должны установить значения матрицы проекции с помощью SetCameraBounds и SetCameraRange.

Определение

void agk::SetCameraOffCenter( UINT cameraID, int mode )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
mode - 1 для использования матрицы проекции вне центра, 0 для использования нормальной матрицы, значение по умолчанию равно 0.

Пример кода


SetCameraOrthoWidth

Описание

Если FOV камеры установлен в 0, то это будет определять ширину ортогонального вида, значение по умолчанию равно 40. Значение высоты будет вычислено из него на основе соотношения сторон камеры. При использовании ортогональной проекции все остается одного и того же размера независимо от того, насколько близко или далеко оно находится к камере, поэтому при использовании значения ширины по умолчанию куб размером 80 единиц всегда будет заполнять вид камеры, когда камера смотрит на него, так как 40 измеряется от центра экрана до края. Эта команда перезапишет все значения, заданные с помощью SetCameraBounds.

Определение

void agk::SetCameraOrthoWidth( UINT cameraID, float width )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
width - Ширина вида в мировых координатах.

Пример кода


SetCameraLookAt

Описание

Поворачивает камеру, чтобы посмотреть на определенную точку в пространстве с дополнительным значением крена. смотреть определяется как выравнивание локальной оси Z камеры, чтобы указать ее положительную сторону в данной точке. Это может быть достигнуто с помощью только углов Y и X в эйлеровой нотации, поэтому вы можете указать дополнительный угол Z в градусах, чтобы повернуть камеру влево или вправо, всегда глядя на одно и то же место.

Определение

void agk::SetCameraLookAt( UINT cameraID, float x, float y, float z, float roll )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
x - X-компонент позиции, на которую нужно смотреть.
y - Y-компонент позиции, на которую нужно смотреть.
z - Z-компонент позиции, на которую нужно смотреть.
roll - Угол Z для поворота камеры при взгляде на заданное положение отрицательный-по часовой стрелке.

Пример кода


SetCameraFOV

Описание

Устанавливает горизонтальное поле зрения камеры (FOV). Это определяет угол между левой и правой сторонами обзора камеры, по умолчанию равный 70, и обеспечивает реалистичную 3D-проекцию. Использование меньших значений будет выглядеть так, как будто камера увеличивает масштаб сцены, фактически не двигаясь. Это иногда используется для драматического эффекта в фильмах, где FOV масштабируется в одну сторону, в то время как камера движется в другую. Использование значения FOV 0-это особый случай, который будет генерировать ортогональную матрицу вместо проекционной матрицы, это заставит все оставаться одного и того же размера независимо от того, насколько близко или далеко оно находится к камере. Ортогональная матрица будет иметь ширину 40 мировых единиц с высотой, определяемой соотношением сторон камеры.

Определение

void agk::SetCameraFOV( UINT cameraID, float fov )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
fov - Поле зрения в градусах.

Пример кода


SetCameraBounds

Описание

Задает параметры для матрицы проекции вне центра. Ближние и дальние значения задаются отдельно с помощью SetCameraRange. Чтобы использовать матрицу проекции вне центра, вы должны активировать ее с помощью SetCameraOffCenter.

Определение

void agk::SetCameraBounds( UINT cameraID, float left, float right, float top, float bottom )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
left - Левая составляющая проекционной матрицы.
right - Правая составляющая проекционной матрицы.
top - Верхний компонент проекционной матрицы.
bottom - Нижняя составляющая проекционной матрицы.

Пример кода


SetCameraAspect

Описание

Устанавливает соотношение сторон камеры при рендеринге 3D. По умолчанию используется GetDeviceWidth()/GetDeviceHeight() и обеспечивает реалистичную 3D-проекцию. Если размер backbuffer устройства изменяется, например, если устройство меняет ориентацию, или размер окна изменяется, или вызывается SetScreenResolution, то это значение будет сброшено до значения по умолчанию.

Определение

void agk::SetCameraAspect( UINT cameraID, float aspect )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
aspect - Новое соотношение сторон для использования.

Пример кода


SetAmbientColor

Описание

Задает новый цвет для глобального окружающего света. Значения должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать вещи, а значения меньше 0 будут отнимать свет. Цвет окружающей среды по умолчанию-76,76,76.

Определение

void agk::SetAmbientColor( int red, int green, int blue )

Параметры

red - Красная составляющая нового цвета.
green - Зеленая составляющая нового цвета.
blue - Синий компонент нового цвета.

Пример кода


SaveObject

Описание

Еще не функционирует.

Определение

void agk::SaveObject( UINT objID, const char *szFilename )

Параметры

objID - Идентификатор объекта для сохранения.
szFilename - Имя файла, которое будет использоваться для нового файла.

Пример кода


RotateObjectLocalZ

Описание

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

Определение

void agk::RotateObjectLocalZ( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота по локальной оси Z в градусах, положительные крены против часовой стрелки, отрицательные крены по часовой стрелке.

Пример кода


RotateObjectLocalY

Описание

Вращает указанный объект вокруг его локальной оси Y, то есть если бы объект был самолетом, эта команда заставила бы его поворачиваться влево и вправо независимо от того, в каком направлении он находится.

Определение

void agk::RotateObjectLocalY( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота по локальной оси Y в градусах, положительный поворот вправо, отрицательный поворот влево.

Пример кода


RotateObjectGlobalZ

Описание

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

Определение

void agk::RotateObjectGlobalZ( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота по глобальной оси Z в градусах, положительные крены против часовой стрелки, отрицательные крены по часовой стрелке.

Пример кода


RotateObjectLocalX

Описание

Вращает указанный объект вокруг его локальной оси X, то есть, если бы объект был самолетом, эта команда заставила бы его наклоняться вверх и вниз независимо от того, в каком направлении он обращен.

Определение

void agk::RotateObjectLocalX( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота по локальной оси X в градусах, положительный смотрит вниз, отрицательный смотрит вверх.

Пример кода


RotateObjectGlobalY

Описание

Вращает указанный объект вокруг глобальной оси Y. Представьте себе, что камера смотрит вниз по оси Z на объект со случайным вращением. Эта команда повернет объект влево и вправо относительно камеры независимо от того, в какую сторону он обращен.

Определение

void agk::RotateObjectGlobalY( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота по глобальной оси Y в градусах, положительный поворот вправо, отрицательный поворот влево.

Пример кода


RotateObjectGlobalX

Описание

Вращает указанный объект вокруг глобальной оси X. Представьте себе, что камера смотрит вниз по оси Z на объект со случайным вращением. Эта команда будет наклонять объект вверх и вниз относительно камеры независимо от того, в какую сторону он обращен.

Определение

void agk::RotateObjectGlobalX( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Угол поворота на глобальной оси X в градусах, положительный шаг вниз, отрицательный шаг вверх.

Пример кода


RotateObjectBoneLocalZ

Описание

Катит указанную кость вокруг своей локальной оси Z, то есть если бы кость была самолетом, эта команда заставила бы ее сделать бочкообразный крен независимо от того, в каком направлении она обращена.

Определение

void agk::RotateObjectBoneLocalZ( UINT objID, UINT boneIndex, float amount )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
amount - Угол поворота по локальной оси Z в градусах, положительные крены против часовой стрелки, отрицательные крены по часовой стрелке.

Пример кода


RotateObjectBoneLocalX

Описание

Вращает указанную кость вокруг ее локальной оси X, то есть, если бы кость была самолетом, эта команда заставила бы ее наклоняться вверх и вниз независимо от того, в каком направлении она обращена.

Определение

void agk::RotateObjectBoneLocalX( UINT objID, UINT boneIndex, float amount )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
amount - Угол поворота по локальной оси X в градусах, положительный смотрит вниз, отрицательный смотрит вверх.

Пример кода


RotateObjectBoneLocalY

Описание

Вращает указанную кость вокруг ее локальной оси Y, то есть, если бы кость была самолетом, эта команда заставила бы ее поворачиваться влево и вправо независимо от того, в каком направлении она обращена.

Определение

void agk::RotateObjectBoneLocalY( UINT objID, UINT boneIndex, float amount )

Параметры

objID - Идентификатор объекта, содержащего кость.
boneIndex - Индекс кости нужно модифицировать.
amount - Угол поворота по локальной оси Y в градусах, положительный поворот вправо, отрицательный поворот влево.

Пример кода


RotateCameraLocalZ

Описание

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

Определение

void agk::RotateCameraLocalZ( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота по локальной оси Z в градусах, отрицательный-по часовой стрелке.

Пример кода


RotateCameraLocalY

Описание

Вращает указанную камеру вокруг своей локальной оси Y, то есть если бы камера была самолетом, эта команда заставила бы ее поворачиваться влево и вправо независимо от того, в каком направлении она обращена.

Определение

void agk::RotateCameraLocalY( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота по локальной оси Y в градусах, положительный поворот вправо, отрицательный поворот влево.

Пример кода


RotateCameraLocalX

Описание

Вращает указанную камеру вокруг своей локальной оси X, то есть если бы камера была самолетом, эта команда заставила бы ее наклоняться вверх и вниз независимо от того, в каком направлении она обращена.

Определение

void agk::RotateCameraLocalX( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота по локальной оси X в градусах, положительный смотрит вниз, отрицательный смотрит вверх.

Пример кода


RotateCameraGlobalZ

Описание

Вращает указанную камеру вокруг глобальной оси Z. Представьте себе, что вы смотрите на камеру, как если бы это был объект, расположенный на 0,0,0 и смотрящий в случайном направлении. Эта команда будет вращать его вокруг фиксированной оси Z, которая используется для определения положения всего в мире.

Определение

void agk::RotateCameraGlobalZ( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота на глобальной оси Z в градусах, отрицательный-по часовой стрелке.

Пример кода


RotateCameraGlobalY

Описание

Вращает указанную камеру вокруг глобальной оси Y. Представьте себе, что вы смотрите на камеру, как если бы это был объект, расположенный на 0,0,0 и смотрящий в случайном направлении. Эта команда повернет его вокруг неподвижной оси Y, той, которая используется для определения положения всего в мире.

Определение

void agk::RotateCameraGlobalY( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота по глобальной оси Y в градусах, положительный поворот вправо, отрицательный поворот влево.

Пример кода


RotateCameraGlobalX

Описание

Вращает указанную камеру вокруг глобальной оси X. Представьте себе, что вы смотрите на камеру, как если бы это был объект, расположенный на 0,0,0 и смотрящий в случайном направлении. Эта команда будет вращать его вокруг фиксированной оси X, которая используется для определения положения всего в мире.

Определение

void agk::RotateCameraGlobalX( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Угол поворота на глобальной оси X в градусах, положительный шаг вниз, отрицательный шаг вверх.

Пример кода


ResetObjectAnimation

Описание

Останавливает любую воспроизводимую анимацию и сбрасывает кости объекта в их положение привязки.

Определение

void agk::ResetObjectAnimation( UINT objID )

Параметры

objID - Идентификатор объекта для изменения.

Пример кода


PlayObjectAnimation

Описание

Воспроизводит заданную анимацию на своем родительском объекте. Только объекты, загруженные с помощью LoadObjectWithChildren, будут иметь назначенные им анимации. Имена анимаций определяются программой моделирования при создании анимаций вы можете узнать, что это за имена, используя GetObjectAnimationName. Анимация может быть запущена и закончена в любой момент анимации с использованием параметров start и end, они задаются в секундах, и если цикл включен, то объект вернется к заданному времени начала в начале каждого цикла. Если вы хотите, чтобы петля была бесшовной, то положение костей в начале и в конце должно быть точно таким же, так как при петле между ними не будет интерполяции. Параметр tweentime можно использовать для интерполяции между текущими позициями костей и временем начала анимации, чтобы не было резкого скачка в позициях костей. Это твининг происходит только один раз, он не происходит каждый цикл и не вносит свой вклад во время анимации. По сути, анимация приостанавливается до тех пор, пока твининг не закончит. Обратите внимание, что как только эта команда будет вызвана, кости будут управляться анимацией и не могут быть перемещены с помощью SetObjectBonePosition или аналогичных команд. Вы можете восстановить ручное управление отдельными костями, используя SetObjectBoneCanAnimate на нем. Вы можете восстановить контроль над всей костной структурой с помощью ResetObjectAnimation.

Определение

void agk::PlayObjectAnimation( UINT objID, const char *animName, float starttime, float endtime, int loop, float tweentime )

Параметры

objID - Идентификатор объекта для изменения.
animName - Название воспроизводимой анимации, определяемое программой моделирования
starttime - Точка в анимации, в которой объект должен начать воспроизведение, в секундах
endtime - Точка в анимации, в которой объект должен прекратить воспроизведение, минус 1, чтобы продолжить до конца
loop - 1, чтобы зациклить анимацию навсегда, 0, чтобы воспроизвести один раз, любое другое положительное целое число, чтобы зациклить столько раз
tweentime - Время в секундах для перехода от текущего состояния объектов к первому кадру анимации

Пример кода


ObjectSphereSlide

Описание

Эта команда делает то же самое, что и ObjectSphereCast, но в течение нескольких итераций, чтобы создать точку скольжения для использования в скользящих столкновениях. Он создает скользящую точку, которая снова проверяется, чтобы убедиться, что эта новая точка не сталкивается ни с какими объектами. Это порождает еще одну точку, которую необходимо проверить и так далее. ObjectSphereSlide использует максимум три итерации для завершения точки, которая будет держать сферу вне всех проверенных объектов. Команда GetObjectRayCastNumHits может быть использована для получения количества итераций, используемых этой командой. Подробная информация о точке столкновения, нормали и точке скольжения для каждой итерации также доступна с использованием индексов столкновения от 1 до 3, т. е. GetObjectRayCastX(1) (2) или (3). Конечная точка столкновения, нормаль и точка скольжения находятся в индексе 0, то есть GetObjectRayCastSlideX(0).

Определение

int agk::ObjectSphereSlide( UINT objID, float oldx, float oldy, float oldz, float newx, float newy, float newz, float radius )

Параметры

objID - Идентификатор проверяемого объекта-0 для всех объектов.
oldx - Компонент X начальной позиции.
oldy - Компонент Y начальной позиции.
oldz - Z-компонент начальной позиции.
newx - X-компонент конечного положения.
newy - Компонент Y конечного положения.
newz - Z-компонент конечного положения.
radius - Радиус сферы для отливки.

Пример кода


ObjectRayCast

Описание

Бросает луч через 1 или все объекты, чтобы проверить пересечение с объектом. Лучи определяются с начальным положением и конечным положением и не сталкиваются с задними поверхностями, вернут номер объекта, попавшего первым, или 0 для отсутствия столкновения. Команды лучевого литья полезны для расчета столкновений пуль с уровнями и объектами или для представления линии визирования противника, чтобы определить, могут ли они видеть игрока.

Определение

int agk::ObjectRayCast( UINT objID, float oldx, float oldy, float oldz, float newx, float newy, float newz )

Параметры

objID - Идентификатор проверяемого объекта-0 для всех объектов.
oldx - Компонент X начальной позиции.
oldy - Компонент Y начальной позиции.
oldz - Z-компонент начальной позиции.
newx - X-компонент конечного положения.
newy - Компонент Y конечного положения.
newz - Z-компонент конечного положения.

Пример кода


ObjectSphereCast

Описание

Проверит, не сталкивается ли луч, начинающийся в oldx, oldy, oldz и заканчивающийся в newx, newy, newz и радиусом ширины, с указанным объектом (ObjId=0 для всех). Не сталкивается с задними гранями, вернет номер объекта, попавшего первым, или 0 для отсутствия столкновения. Команды Sphere casting добавляют измерение ширины к нормальному лучевому кастингу, которое можно использовать для проверки того, ударил ли игрок что-нибудь во время движения, и для позиционирования их в точке столкновения, чтобы обеспечить липкое столкновение, где игрок останавливается, если он что-нибудь ударит. Альтернативой является скользящее столкновение. см. раздел ObjectSphereSlide

Определение

int agk::ObjectSphereCast( UINT objID, float oldx, float oldy, float oldz, float newx, float newy, float newz, float radius )

Параметры

objID - Идентификатор проверяемого объекта-0 для всех объектов.
oldx - Компонент X начальной позиции.
oldy - Компонент Y начальной позиции.
oldz - Z-компонент начальной позиции.
newx - X-компонент конечного положения.
newy - Компонент Y конечного положения.
newz - Z-компонент конечного положения.
radius - Радиус сферы для отливки.

Пример кода


MoveObjectLocalZ

Описание

Перемещает указанный объект вдоль его локальной оси Z, то есть если бы объект был символом, эта команда заставила бы его двигаться вперед независимо от того, в каком направлении он находится.

Определение

void agk::MoveObjectLocalZ( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Расстояние, на которое нужно двигаться в локальном направлении Z, может быть отрицательным.

Пример кода


MoveObjectLocalY

Описание

Перемещает указанный объект вдоль его локальной оси Y, то есть если бы объект был символом, эта команда заставила бы его прыгать независимо от того, в каком направлении он находится.

Определение

void agk::MoveObjectLocalY( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Расстояние, на которое нужно двигаться в локальном направлении Y, может быть отрицательным.

Пример кода


MoveObjectLocalX

Описание

Перемещает указанный объект вдоль его локальной оси X, то есть, если бы объект был символом, эта команда заставила бы их стреляться независимо от того, в каком направлении они были обращены.

Определение

void agk::MoveObjectLocalX( UINT objID, float amount )

Параметры

objID - Идентификатор объекта для изменения.
amount - Расстояние, на которое нужно двигаться в локальном направлении X, может быть отрицательным.

Пример кода


MoveCameraLocalZ

Описание

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

Определение

void agk::MoveCameraLocalZ( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Расстояние, на которое нужно двигаться в локальном направлении Z, может быть отрицательным.

Пример кода


MoveCameraLocalY

Описание

Перемещает указанную камеру вдоль ее локальной оси Y, то есть если бы камера была символом, эта команда заставила бы их прыгать независимо от того, в каком направлении они были обращены.

Определение

void agk::MoveCameraLocalY( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Расстояние, на которое нужно двигаться в локальном направлении Y, может быть отрицательным.

Пример кода


MoveCameraLocalX

Описание

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

Определение

void agk::MoveCameraLocalX( UINT cameraID, float amount )

Параметры

cameraID - Идентификатор камеры для изменения, основная камера-ID 1.
amount - Расстояние, на которое нужно двигаться в локальном направлении X, может быть отрицательным.

Пример кода


LoadSpriteShader

Описание

Загружает шейдер, используемый для изменения спрайтов, поскольку он содержит только пиксельный шейдер, вершинный шейдер автоматически генерируется, чтобы убедиться, что он появляется в нужном месте. Этот тип шейдера должен применяться только к спрайтам, но ничего плохого не произойдет, если вы решите применить его к объектам, он просто даст необычные результаты рендеринга для этого объекта. В настоящее время шейдеры по умолчанию используют GLSL версии 1.10, строка #version 110 будет автоматически добавлена в качестве первой строки шейдера, если вы не укажете свою собственную строку #version. Обратите внимание, что это может означать, что ваш шейдер работает не на всех устройствах и платформах. Глобальное значение точность будет добавлено и не должно быть включено в исходный код шейдера. Возвращает идентификатор, который можно использовать для ссылки на этот шейдер в других командах. Идентификаторы являются общими для всех типов шейдеров, поэтому загрузка спрайтового шейдера в ID 1 не будет работать, если 3D-шейдер существует с ID 1.

Определение

UINT agk::LoadSpriteShader( const char* szPixelFile )
void agk::LoadSpriteShader( UINT shaderID, const char* szPixelFile )

Параметры

szPixelFile - Имя файла пиксельного шейдера, обычно заканчивающееся на .ps
shaderID - Идентификатор, используемый для ссылки на этот шейдер в других командах.

Пример кода


LoadShaderFromString

Описание

Загружает шейдер, используемый для рисования объектов. Вершинный шейдер преобразует полигоны в экранное пространство, а пиксельный шейдер определяет окончательный цвет каждого пикселя, который покрывает объект. В настоящее время шейдеры по умолчанию используют GLSL версии 1.10, строка #version 110 будет автоматически добавлена в качестве первой строки шейдера, если вы не укажете свою собственную строку #version. Обратите внимание, что это может означать, что ваш шейдер работает не на всех устройствах и платформах. Глобальное значение точность будет добавлено и не должно быть включено в исходный код шейдера.

Определение

void agk::LoadShaderFromString( UINT shaderID, const char* szVertexSource, const char* szPixelSource )
UINT agk::LoadShaderFromString( const char* szVertexSource, const char* szPixelSource )

Параметры

shaderID - Идентификатор, используемый для ссылки на этот шейдер в других командах.
szVertexSource - Имя файла вершинного шейдера, обычно заканчивающееся .vs
szPixelSource - Имя файла пиксельного шейдера, обычно заканчивающееся на .ps

Пример кода


LoadShader

Описание

Загружает шейдер, используемый для рисования объектов. Вершинный шейдер преобразует полигоны в экранное пространство, а пиксельный шейдер определяет окончательный цвет каждого пикселя, который покрывает объект. В настоящее время шейдеры по умолчанию используют GLSL версии 1.10, строка #version 110 будет автоматически добавлена в качестве первой строки шейдера, если вы не укажете свою собственную строку #version. Обратите внимание, что это может означать, что ваш шейдер работает не на всех устройствах и платформах. Глобальное значение точность будет добавлено и не должно быть включено в исходный код шейдера.

Определение

void agk::LoadShader( UINT shaderID, const char* szVertexFile, const char* szPixelFile )
UINT agk::LoadShader( const char* szVertexFile, const char* szPixelFile )

Параметры

shaderID - Идентификатор, используемый для ссылки на этот шейдер в других командах.
szVertexFile - Имя файла вершинного шейдера, обычно заканчивающееся .vs
szPixelFile - Имя файла пиксельного шейдера, обычно заканчивающееся на .ps

Пример кода


LoadObjectWithChildren

Описание

Загружает объект из файла, в настоящее время поддерживаются форматы .X .FBX .dae (collada) .3ds .md3 .smd .md5 .lwo .ac .b3d .dae .3d .lws .ms3d .blend .obj и .ago. Если файл модели содержит иерархию костей или анимационные данные, то они также будут загружены и связаны с объектом. Обратите внимание, что объекты с более чем 50 костями могут не отображаться на некоторых старых устройствах. AGK имеет предел в 200 костей. Если файл модели содержит график сцены, содержащий несколько объектов, то они также будут загружены и сохранены в отдельных объектах, которые могут быть обнаружены с помощью GetObjectNumChildren. Если вы просто хотите загрузить один объект без каких-либо костей, анимации или детей, то вместо этого используйте LoadObject. Возвращает идентификатор, который можно использовать для ссылки на этот объект в других командах.

Определение

UINT agk::LoadObjectWithChildren( const char* szFilename )
void agk::LoadObjectWithChildren( UINT objID, const char* szFilename )

Параметры

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

Пример кода


LoadObject

Описание

Загружает объект из файла, в настоящее время поддерживаются форматы .X .3ds .md3 .smd .md5 .lwo. ac .b3d .dae .3d .lws .ms3d .blend .m3 .obj и .ago. Эта команда не будет загружать никаких анимационных или костных данных и объединит вершины в один объект с как можно меньшим количеством сеток. Для загрузки анимации и костных данных используйте вместо этого LoadObjectWithChildren.

Определение

void agk::LoadObject( UINT objID, const char* szFilename )
UINT agk::LoadObject( const char* szFilename, float height )
void agk::LoadObject( UINT objID, const char* szFilename, float height )
UINT agk::LoadObject( const char* szFilename )

Параметры

objID - Идентификатор, используемый для нового объекта.
szFilename - Имя загружаемого объектного файла.
height - Масштабируйте загруженный объект до этой высоты.

Пример кода


LoadFullScreenShader

Описание

Загружает шейдер, используемый для изменения целей рендеринга, поскольку он содержит только пиксельный шейдер, вершинный шейдер автоматически генерируется, чтобы убедиться, что он применим к полному экрану. Этот тип шейдера должен применяться только к объектам, созданным с помощью CreateObjectQuad, но ничего плохого не произойдет, если вы решите применить его к другим объектам, он просто даст необычные результаты рендеринга для этого объекта. В настоящее время шейдеры по умолчанию используют GLSL версии 1.10, строка #version 110 будет автоматически добавлена в качестве первой строки шейдера, если вы не укажете свою собственную строку #version. Обратите внимание, что это может означать, что ваш шейдер работает не на всех устройствах и платформах. Глобальное значение точность будет добавлено и не должно быть включено в исходный код шейдера. Возвращает идентификатор, который можно использовать для ссылки на этот шейдер в других командах. Идентификаторы являются общими для всех типов шейдеров, поэтому загрузка полноэкранного шейдера в ID 1 не будет работать, если существует обычный шейдер с ID 1.

Определение

UINT agk::LoadFullScreenShader( const char* szPixelFile )
void agk::LoadFullScreenShader( UINT shaderID, const char* szPixelFile )

Параметры

szPixelFile - Имя файла пиксельного шейдера, обычно заканчивающееся на .ps
shaderID - Идентификатор, используемый для ссылки на этот шейдер в других командах.

Пример кода


InstanceObject

Описание

Копирует объект в новый идентификатор, новый объект делится данными вершин с исходным объектом. Исходный объект должен существовать для того, чтобы экземпляр объекта рисовался правильно. Создание экземпляра объекта, который уже является экземпляром, ничего не даст. Создание экземпляра объекта, а затем удаление оригинала, вероятно, приведет к сбою. Установка шейдера на объект экземпляра разрешена до тех пор, пока атрибуты вершин, используемые шейдером, точно совпадают по имени и порядку с теми, которые используются на шейдере исходного объекта. Поддерживается установка различных изображений на экземпляре и исходном объекте.

Определение

UINT agk::InstanceObject( UINT objID )
void agk::InstanceObject( UINT newobjID, UINT objID )

Параметры

objID - Идентификатор объекта для копирования.
newobjID - Идентификатор нового объекта.

Пример кода


GetSupportedShaderVaryings

Описание

Возвращает количество изменяющихся значений, которые могут быть использованы в шейдерах на текущем устройстве. Вариации-это переменные, которые передают данные между вершинным и пиксельным шейдерами. Это значение гарантированно будет не менее 32, но большинство устройств поддерживают больше. Один vec4 varying содержит 4 различных значения, поэтому 32 значения varyings означают, что вы можете иметь максимум 8 вариаций vec4. Обратите внимание, что переменная vec3 может занимать 4 пространства значений, если она не может быть упакована с какой-либо другой переменной. Вариации будут автоматически упакованы вместе, если они могут заполнить vec4 без разделения, например, vec3 и float могут быть упакованы вместе, как и два вариации vec2. Однако две вариации vec3 не могут быть упакованы вместе без разделения, поэтому каждая из них будет использовать до 4 значений, а дополнительное пространство будет потрачено впустую.

Определение

int agk::GetSupportedShaderVaryings()

Параметры

Пример кода


GetShadowMappingSupported

Описание

Возвращает 1, если теневое отображение поддерживается на этом устройстве, и 0 в противном случае.

Определение

int agk::GetShadowMappingSupported()

Параметры

Пример кода


GetShadowMappingMode

Описание

Возвращает текущий режим отображения теней, который был установлен с помощью SetShadowMappingMode

Определение

int agk::GetShadowMappingMode()

Параметры

Пример кода


GetShaderExists

Описание

Возвращает 1, если шейдер в данный момент загружен с заданным идентификатором, в противном случае он возвращает 0.

Определение

int agk::GetShaderExists( UINT shaderID )

Параметры

shaderID - Идентификатор шейдера для проверки

Пример кода


GetScreenYFrom3D

Описание

Преобразует 3D-точку в экранные координаты.

Определение

float agk::GetScreenYFrom3D( float x, float y, float z )

Параметры

x - X-компонент 3D-точки.
y - Компонент Y трехмерной точки.
z - Z-компонент 3D-точки.

Пример кода


GetScreenXFrom3D

Описание

Преобразует 3D-точку в экранные координаты.

Определение

float agk::GetScreenXFrom3D( float x, float y, float z )

Параметры

x - X-компонент 3D-точки.
y - Компонент Y трехмерной точки.
z - Z-компонент 3D-точки.

Пример кода


GetPointLightExists

Описание

возвращает 1, если указанный точечный свет существует, и 0 в противном случае.

Определение

int agk::GetPointLightExists( UINT lightID )

Параметры

lightID - Идентификатор света для проверки.

Пример кода


GetObjectZ

Описание

Возвращает текущее Z-положение объекта.

Определение

float agk::GetObjectZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectX

Описание

Возвращает текущее положение X объекта.

Определение

float agk::GetObjectX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldZ

Описание

Возвращает текущее Z-положение объекта в мировых координатах. Это учитывает родительские позиции в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое положение объекта.

Определение

float agk::GetObjectWorldZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldY

Описание

Возвращает текущее положение объекта Y в мировых координатах. Это учитывает родительские позиции в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое положение объекта.

Определение

float agk::GetObjectWorldY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldQuatZ

Описание

Возвращает Z-компоненту текущего вращения объекта, преобразованную в кватернион в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldQuatZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldQuatY

Описание

Возвращает Y-компоненту текущего вращения объекта, преобразованную в кватернион в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldQuatY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldX

Описание

Возвращает текущее положение X объекта в мировых координатах. Это учитывает родительские позиции в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое положение объекта.

Определение

float agk::GetObjectWorldX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldQuatX

Описание

Возвращает X-компоненту текущего вращения объекта, преобразованную в кватернион в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldQuatX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldQuatW

Описание

Возвращает W-компонент текущего вращения объекта, преобразованный в кватернион в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldQuatW( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldAngleZ

Описание

Возвращает Z-компоненту текущего вращения объекта, преобразованную в углы Эйлера в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldAngleZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldAngleY

Описание

Возвращает Y-компоненту текущего вращения объекта, преобразованную в углы Эйлера в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldAngleY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectWorldAngleX

Описание

Возвращает X-компоненту текущего вращения объекта, преобразованную в углы Эйлера в мировых координатах. Это учитывает родительские вращения в результате FixObjectToObject или FixObjectToBone и возвращает абсолютное мировое вращение объекта.

Определение

float agk::GetObjectWorldAngleX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectY

Описание

Возвращает текущее положение объекта Y.

Определение

float agk::GetObjectY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectTransparency

Описание

Возвращает текущий режим прозрачности для этого объекта

Определение

int agk::GetObjectTransparency( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectTextureName

Описание

Возвращает имя текстуры, определенное в файле модели, из которого она была загружена, но текстурам не гарантируется наличие имен. Имена текстур находятся в диапазоне от 1 до GetObjectNumTextures включительно. Если вы вызываете эту команду из уровня 2, вы должны удалить возвращенную строку с помощью agk::DeleteString, когда закончите с ней.

Определение

char* agk::GetObjectTextureName(UINT objID, UINT textureIndex)

Параметры

objID - Идентификатор объекта для проверки.
textureIndex - Индекс текстуры для проверки, первая текстура находится в индексе 1.

Пример кода


GetObjectSizeMinZ

Описание

Возвращает минимальный экстент объекта в направлении Z, это может быть объединено с GetObjectSizeMaxZ для определения размера объекта в направлении Z. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, что означает, что его размер составляет 2 единицы в направлении Z. Эта команда берет границы всех сеток, составляющих этот объект, чтобы проверить границы одной сетки, используйте GetObjectMeshSizeMinZ.

Определение

float agk::GetObjectSizeMinZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectSizeMinY

Описание

Возвращает минимальный экстент объекта в направлении X, это может быть объединено с GetObjectSizeMaxY для определения размера объекта в направлении Y. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, что означает, что его размер составляет 2 единицы в направлении Y. Эта команда берет границы всех сеток, составляющих этот объект, для проверки границ одной сетки используйте GetObjectMeshSizeMinY.

Определение

float agk::GetObjectSizeMinY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectSizeMinX

Описание

Возвращает минимальный экстент объекта в направлении X, это может быть объединено с GetObjectSizeMaxX для определения размера объекта в направлении X. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, что означает, что его размер составляет 2 единицы в направлении X. Эта команда берет границы всех сеток, составляющих этот объект, чтобы проверить границы одной сетки, используйте GetObjectMeshSizeMinX.

Определение

float agk::GetObjectSizeMinX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectSizeMaxZ

Описание

Возвращает максимальный экстент объекта в направлении Z, это может быть объединено с GetObjectSizeMinZ для определения размера объекта в направлении Z. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, то есть его размер составляет 2 единицы в направлении Z. Эта команда берет границы всех сеток, составляющих этот объект, чтобы проверить границы одной сетки, используйте GetObjectMeshSizeMaxZ.

Определение

float agk::GetObjectSizeMaxZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectSizeMaxY

Описание

Возвращает максимальный экстент объекта в направлении X, это можно объединить с GetObjectSizeMinY для определения размера объекта в направлении Y. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, что означает, что его размер составляет 2 единицы в направлении Y. Эта команда берет границы всех сеток, составляющих этот объект, чтобы проверить границы одной сетки, используйте GetObjectMeshSizeMaxY.

Определение

float agk::GetObjectSizeMaxY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectSizeMaxX

Описание

Возвращает максимальный экстент объекта в направлении X, это может быть объединено с GetObjectSizeMinX для определения размера объекта в направлении X. Обратите внимание, что объект может быть смещен от центра, поэтому его минимальное значение может быть равно 10, а максимальное-12, то есть его размер составляет 2 единицы в направлении X. Эта команда берет границы всех сеток, составляющих этот объект, чтобы проверить границы одной сетки, используйте GetObjectMeshSizeMaxX.

Определение

float agk::GetObjectSizeMaxX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectReceiveShadowMode

Описание

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

Определение

int agk::GetObjectReceiveShadowMode( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectRayCastZ

Описание

Возвращает Z-компоненту точки столкновения для заданного индекса столкновения в последней проверке столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastZ( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectVisible

Описание

Возвращает текущий режим видимости для этого объекта

Определение

int agk::GetObjectVisible( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectRayCastY

Описание

Возвращает компонент Y точки столкновения для заданного индекса столкновения в последней проверке столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastY( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastX

Описание

Возвращает компонент X точки столкновения для заданного индекса столкновения в последней проверке столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastX( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastSlideZ

Описание

Возвращает Z-компоненту конечной точки покоя для скользящих столкновений. Это допустимо только для индекса 0 и после вызова ObjectSphereSlide. Поместите объект здесь, чтобы он выглядел так, как будто он скользил после столкновения.

Определение

float agk::GetObjectRayCastSlideZ( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastSlideY

Описание

Возвращает компонент Y конечной точки покоя для скользящих столкновений. Это допустимо только для индекса 0 и после вызова ObjectSphereSlide. Поместите объект здесь, чтобы он выглядел так, как будто он скользил после столкновения.

Определение

float agk::GetObjectRayCastSlideY( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastNormalZ

Описание

Возвращает Z-компонент нормальной коллизии при последней проверке коллизии. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastNormalZ( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastSlideX

Описание

Возвращает компонент X конечной точки покоя для скользящих столкновений. Это допустимо только для индекса 0 и после вызова ObjectSphereSlide. Поместите объект здесь, чтобы он выглядел так, как будто он скользил после столкновения.

Определение

float agk::GetObjectRayCastSlideX( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastNormalY

Описание

Возвращает компонент Y нормальной коллизии при последней проверке коллизии. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastNormalY( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastHitID

Описание

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

Определение

UINT agk::GetObjectRayCastHitID( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastDistance

Описание

Возвращает расстояние между начальной точкой луча и точкой столкновения.

Определение

float agk::GetObjectRayCastDistance( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastBounceZ

Описание

Возвращает Z-компоненту вектора отскока для последней проверки столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits. Расположите объект здесь так, чтобы он выглядел так, как будто отскочил после столкновения.

Определение

float agk::GetObjectRayCastBounceZ( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastBounceY

Описание

Возвращает компонент Y вектора отскока для последней проверки столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits. Расположите объект здесь так, чтобы он выглядел так, как будто отскочил после столкновения.

Определение

float agk::GetObjectRayCastBounceY( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectRayCastBounceX

Описание

Возвращает X-компоненту вектора отскока для последней проверки столкновения. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits. Расположите объект здесь так, чтобы он выглядел так, как будто отскочил после столкновения.

Определение

float agk::GetObjectRayCastBounceX( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectQuatZ

Описание

Возвращает Z-компонент текущего вращения объекта, преобразованный в кватернион.

Определение

float agk::GetObjectQuatZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectQuatY

Описание

Возвращает компонент Y текущего вращения объекта, преобразованный в кватернион.

Определение

float agk::GetObjectQuatY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectQuatW

Описание

Возвращает W-компонент текущего вращения объекта, преобразованный в кватернион.

Определение

float agk::GetObjectQuatW( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectRayCastNumHits

Описание

Возвращает количество коллизий, произошедших при последней проверке коллизий. В случае ObjectRayCast и ObjectSphereCast это будет 0 или 1. Для ObjectSphereSlide это может быть где-то между 0 и 4.

Определение

UINT agk::GetObjectRayCastNumHits()

Параметры

Пример кода


GetObjectRayCastNormalX

Описание

Возвращает компонент X нормальной коллизии при последней проверке коллизии. Вы можете проверить количество допустимых индексов с помощью GetObjectRayCastNumHits.

Определение

float agk::GetObjectRayCastNormalX( UINT index )

Параметры

index - Индекс столкновения проверить, начиная с индекса 0.

Пример кода


GetObjectNumTextures

Описание

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

Определение

UINT agk::GetObjectNumTextures(UINT objID)

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectNumMeshes

Описание

Возвращает количество сеток, принадлежащих этому объекту. Объект может иметь несколько сеток, обычно это происходит в случае мультиматериальных объектов, где объект разделен на несколько сеток, каждая из которых использует другую текстуру. Обратите внимание, что экземпляры объектов могут не иметь никаких сеток.

Определение

UINT agk::GetObjectNumMeshes( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectNumBones

Описание

Получает количество костей, которые были загружены в результате загрузки этого объекта. Это происходит только в том случае, если объект был загружен с помощью LoadObjectWithChildren. Если объект имеет анимацию конечностей, как в DarkBasic Classic, то кости представляют иерархию конечностей, и каждая конечность загружается как дочерний объект, прикрепленный к кости. Если объект имеет взвешенную вершинную анимацию, то кости представляют скелет, а кожа загружается как единая сетка, хранящаяся в корневом объекте. Эти две формы анимации могут быть объединены, так что взвешенная вершинная костная структура может иметь объекты, прикрепленные к ее костям одновременно с деформацией кожной сетки.

Определение

UINT agk::GetObjectNumBones( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectName

Описание

Возвращает имя объекта, определенное в файле модели. Это полезно при использовании LoadObjectWithChildren для идентификации дочерних объектов, к которым можно получить доступ с помощью GetObjectChildID. Если вы вызываете эту команду из уровня 2, то возвращаемая строка должна быть удалена с помощью agk::DeleteString, когда вы закончите с ней.

Определение

char* agk::GetObjectName( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectQuatX

Описание

Возвращает компонент X текущего вращения объекта, преобразованный в кватернион.

Определение

float agk::GetObjectQuatX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectMeshSizeMinY

Описание

Возвращает минимальную протяженность сетки в направлении Y, это может быть объединено с GetObjectMeshSizeMaxY для определения размера сетки в направлении Y. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении Y.

Определение

float agk::GetObjectMeshSizeMinY( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectNumChildren

Описание

Возвращает количество дочерних объектов, которые были загружены в результате загрузки этого объекта. Например, объект анимированного персонажа из кости может иметь модель пистолета, прикрепленную к кости, представляющей его руку, эта модель пистолета будет загружена как отдельный объект и получит свой собственный идентификатор, которым вы можете манипулировать отдельно от основного объекта. Вы даже можете отсоединить пистолет от руки с помощью FixObjectToBone(ID,0), чтобы сделать его нормальным объектом, который не будет двигаться при движении персонажа. Однако он всегда будет оставаться в этом списке дочерних объектов для справки и будет удален, если DeleteObjectWithChildren вызывается для объекта character. Для тех из вас, кто знаком с DarkBasic, объекты, содержащие конечности в DarkBasic, будут загружены как дочерние объекты в AGK. Однако в дочерних объектах нет иерархии, у них не было бы собственных детей. Вместо этого в корневом объекте создается костная структура, представляющая иерархию конечностей, а дочерние объекты присоединяются к соответствующим костям.

Определение

UINT agk::GetObjectNumChildren( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectNumAnimations

Описание

Возвращает количество анимаций, назначенных объекту в данный момент. Только объекты, загруженные с помощью LoadObjectWithChildren, получают назначенные им анимации.

Определение

int agk::GetObjectNumAnimations( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectMeshSizeMinX

Описание

Возвращает минимальный экстент сетки в направлении X, это можно объединить с GetObjectMeshSizeMaxX для определения размера сетки в направлении X. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении X.

Определение

float agk::GetObjectMeshSizeMinX( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectMeshSizeMaxZ

Описание

Возвращает максимальную протяженность сетки в направлении Z, это может быть объединено с GetObjectMeshSizeMinZ для определения размера сетки в направлении Z. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении Z.

Определение

float agk::GetObjectMeshSizeMaxZ( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectMeshSizeMaxY

Описание

Возвращает максимальную протяженность сетки в направлении Y, это может быть объединено с GetObjectMeshSizeMinY для определения размера сетки в направлении Y. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении Y.

Определение

float agk::GetObjectMeshSizeMaxY( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectMeshSizeMaxX

Описание

Возвращает максимальный экстент сетки в направлении X, это может быть объединено с GetObjectMeshSizeMinX для определения размера сетки в направлении X. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении X.

Определение

float agk::GetObjectMeshSizeMaxX( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectMeshVSSource

Описание

Возвращает исходный код вершинного шейдера, используемого в данный момент на этом объекте. Если вы не назначили шейдер для этой сетки, то он генерируется автоматически, и вы можете использовать эту команду, чтобы получить его исходный код, если хотите внести в него коррективы. Затем вы можете загрузить этот модифицированный источник шейдера с помощью LoadShader и назначить его SetObjectMeshShader. Обратите внимание, что изменение количества текстур или использование SetObjectLightMode обычно генерирует новый шейдер для обработки изменений, однако если вы использовали SetObjectMeshShader, то AGK больше не будет изменять ваш шейдер, предполагая, что вы сами учли эти изменения. Обратите внимание, что шейдеры, использующие освещение, будут иметь функции GetVSLighting() и GetPSLighting (), которые будут заполняться AGK во время выполнения в зависимости от того, сколько огней находится рядом с сеткой. Удаление этих функций из источника шейдера приведет к удалению всего освещения из сетки. Если вы вызываете эту команду из уровня 2, вы должны удалить строку, когда закончите с ней.

Определение

char* agk::GetObjectMeshVSSource( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки, первая сетка находится в индексе 1.

Пример кода


GetObjectMeshSizeMinZ

Описание

Возвращает минимальный экстент сетки в направлении Z, это может быть объединено с GetObjectMeshSizeMaxZ для определения размера сетки в направлении Z. Обратите внимание, что сетка может быть смещена от центра, поэтому ее минимальное значение может быть равно 10, а максимальное-12, что означает, что ее размер составляет 2 единицы в направлении Z.

Определение

float agk::GetObjectMeshSizeMinZ( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки.

Пример кода


GetObjectMeshPSSource

Описание

Возвращает исходный код пиксельного шейдера, используемого в данный момент на этом объекте. Если вы не назначили шейдер для этой сетки, то он генерируется автоматически, и вы можете использовать эту команду, чтобы получить его исходный код, если хотите внести в него коррективы. Затем вы можете загрузить этот модифицированный источник шейдера с помощью LoadShader и назначить его SetObjectMeshShader. Обратите внимание, что изменение количества текстур или использование SetObjectLightMode обычно генерирует новый шейдер для обработки изменений, однако если вы использовали SetObjectMeshShader, то AGK больше не будет изменять ваш шейдер, предполагая, что вы сами учли эти изменения. Обратите внимание, что шейдеры, использующие освещение, будут иметь функции GetVSLighting() и GetPSLighting (), которые будут заполняться AGK во время выполнения в зависимости от того, сколько огней находится рядом с сеткой. Удаление этих функций из источника шейдера приведет к удалению всего освещения из сетки. Если вы вызываете эту команду из уровня 2, вы должны удалить строку, когда закончите с ней.

Определение

char* agk::GetObjectMeshPSSource( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки, первая сетка находится в индексе 1.

Пример кода


GetObjectMeshName

Описание

Получает имя сетки, как определено в файле модели, из которого она была загружена, но сетки не гарантированно имеют имена. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes включительно. Если вы вызываете эту команду из уровня 2, вы должны удалить возвращенную строку с помощью agk::DeleteString, когда закончите с ней.

Определение

char* agk::GetObjectMeshName( UINT objID, UINT meshIndex )

Параметры

objID - Идентификатор объекта для проверки.
meshIndex - Индекс сетки для проверки, первая сетка находится в индексе 1.

Пример кода


GetObjectIsTweening

Описание

Возвращает 1, если объект в данный момент находится в кадре анимации, или в начале, или в готовящейся к воспроизведению анимации. Это происходит только сразу после PlayObjectAnimation или SetObjectAnimationFrame, если вы указали время анимации больше 0. Это не происходит в любое другое время во время анимации.

Определение

int agk::GetObjectIsTweening( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectIsAnimating

Описание

Возвращает 1 если объект в данный момент воспроизводит анимацию, это включает твин до начала анимации, но не твин до одного кадра. По сути, он возвращает 1, если объект должен воспроизводить анимацию. Если анимация настроена на цикл заданное количество раз или воспроизводится только один раз, то эта команда вернет 0, когда анимация будет закончена.

Определение

int agk::GetObjectIsAnimating( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectHeightMapHeight

Описание

Если объект был создан с помощью CreateObjectFromHeightMap, то эта команда может быть использована для быстрого получения высоты объекта в определенном мировом положении. Это объясняет положение объекта и поворот Y, чтобы обеспечить высоту независимо от того, где находится объект. Если объект повернут под углом X или Z, то это приведет к неправильным значениям. Вы должны указать координаты X и Z в мировых единицах измерения, если точка лежит вне объекта, то будет возвращено 0.

Определение

float agk::GetObjectHeightMapHeight( UINT objID, float x, float z )

Параметры

objID - Идентификатор объекта для проверки.
x - X компонент позиции для проверки
z - Z компонент позиции для проверки

Пример кода


GetObjectInScreen

Описание

Возвращает 1, если AGK считает, что объект в данный момент находится на экране, и 0, если нет. Это оценка, и если вы сомневаетесь, предположим, что объект находится на экране. Таким образом, если эта команда возвращает 0, то объект определенно находится вне экрана, если она возвращает 1, то объект может быть или не быть на экране.

Определение

int agk::GetObjectInScreen( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectExists

Описание

Возвращает 1, если объект существует с заданным идентификатором, и 0 в противном случае.

Определение

int agk::GetObjectExists( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectDepthWrite

Описание

Возвращает текущий режим записи глубины для этого объекта

Определение

int agk::GetObjectDepthWrite( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectDepthReadMode

Описание

Возвращает текущий режим чтения глубины для этого объекта

Определение

int agk::GetObjectDepthReadMode( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectColorRed

Описание

Возвращает текущее красное значение цвета этого объекта, заданное параметром SetObjectColor.

Определение

int agk::GetObjectColorRed( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectColorGreen

Описание

Возвращает текущее зеленое значение цвета этого объекта, заданное параметром SetObjectColor.

Определение

int agk::GetObjectColorGreen( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectColorBlue

Описание

Возвращает текущее синее значение цвета этого объекта, заданное параметром SetObjectColor.

Определение

int agk::GetObjectColorBlue( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectChildID

Описание

Возвращает идентификатор объекта для указанного дочернего объекта, который был загружен в результате этого объекта. Чтобы найти количество дочерних объектов, используйте GetObjectNumChildren. childIndex находится в диапазоне от 1 до количества детей включительно. Для тех из вас, кто знаком с DarkBasic, объекты, содержащие конечности в DarkBasic, будут загружены как дочерние объекты в AGK. Однако в дочерних объектах нет иерархии, у них не было бы собственных детей. Вместо этого в корневом объекте создается костная структура, представляющая иерархию конечностей, а дочерние объекты присоединяются к соответствующим костям.

Определение

UINT agk::GetObjectChildID( UINT objID, int childIndex )

Параметры

objID - Идентификатор объекта для проверки.
childIndex - Индекс ребенка получить.

Пример кода


GetObjectCastShadowMode

Описание

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

Определение

int agk::GetObjectCastShadowMode( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectBoneZ

Описание

Возвращает текущее Z - положение кости.

Определение

float agk::GetObjectBoneZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneY

Описание

Возвращает текущее положение кости по оси Y.

Определение

float agk::GetObjectBoneY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneX

Описание

Возвращает текущее положение X кости.

Определение

float agk::GetObjectBoneX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldZ

Описание

Возвращает текущее Z - положение кости в мировых координатах.

Определение

float agk::GetObjectBoneWorldZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectDepthBias

Описание

Возвращает текущее смещение глубины для этого объекта

Определение

float agk::GetObjectDepthBias( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectBoneWorldY

Описание

Возвращает текущее положение кости по оси Y в мировых координатах.

Определение

float agk::GetObjectBoneWorldY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectCullMode

Описание

Возвращает текущий режим отбраковки для этого объекта

Определение

int agk::GetObjectCullMode( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectBoneWorldQuatZ

Описание

Возвращает Z-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneWorldQuatZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldQuatY

Описание

Возвращает Y-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneWorldQuatY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldQuatX

Описание

Возвращает X-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneWorldQuatX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldQuatW

Описание

Возвращает W-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneWorldQuatW( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldAngleZ

Описание

Возвращает Z-компоненту текущего вращения кости, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneWorldAngleZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldAngleY

Описание

Возвращает Y-компоненту текущего вращения кости, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneWorldAngleY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldAngleX

Описание

Возвращает X-компоненту текущего вращения кости в мировых координатах, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneWorldAngleX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneQuatZ

Описание

Возвращает Z-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneQuatZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneQuatY

Описание

Возвращает Y-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneQuatY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneQuatX

Описание

Возвращает X-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneQuatX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneQuatW

Описание

Возвращает W-компонент текущего вращения кости, преобразованный в кватернион.

Определение

float agk::GetObjectBoneQuatW( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneWorldX

Описание

Возвращает текущее положение кости X в мировых координатах.

Определение

float agk::GetObjectBoneWorldX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneByName

Описание

Получает индекс кости по ее имени. Имена загружаются из файла модели при использовании LoadObjectWithChildren, в противном случае кости не загружаются. Индексы будут находиться в диапазоне от 1 до num bones или 0, если они не найдены.

Определение

UINT agk::GetObjectBoneByName( UINT objID, const char *name )

Параметры

objID - Идентификатор объекта для проверки.
name - Имя кости, которую нужно найти.

Пример кода


GetObjectBoneAngleZ

Описание

Возвращает Z-компоненту текущего вращения кости, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneAngleZ( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectBoneAngleY

Описание

Возвращает Y-компоненту текущего вращения кости, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneAngleY( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectAnimationTime

Описание

Возвращает текущее время воспроизводимой анимации, или если анимация остановилась, то возвращается последнее время, использованное для интерполяции.

Определение

float agk::GetObjectAnimationTime( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectBoneAngleX

Описание

Возвращает X-компоненту текущего вращения кости, преобразованную в углы Эйлера.

Определение

float agk::GetObjectBoneAngleX( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetObjectAnimationName

Описание

Возвращает имя указанной анимации для данного объекта. Вы можете найти количество анимаций для этого объекта с помощью GetObjectNumAnimations. Индекс должен находиться в диапазоне от 1 до numAnimations включительно.

Определение

char* agk::GetObjectAnimationName( UINT objID, int index )

Параметры

objID - Идентификатор объекта для проверки.
index - Индекс анимации для проверки, индексы начинаются с 1.

Пример кода


GetObjectAnimationDuration

Описание

Возвращает длительность указанной анимации в секундах.

Определение

float agk::GetObjectAnimationDuration( UINT objID, const char *animName )

Параметры

objID - Идентификатор объекта для проверки.
animName - Название проверяемой анимации, определяемое программой моделирования

Пример кода


GetObjectAngleZ

Описание

Возвращает Z-компоненту текущего вращения объекта, преобразованную в углы Эйлера.

Определение

float agk::GetObjectAngleZ( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectAngleY

Описание

Возвращает Y-компоненту текущего вращения объекта, преобразованную в углы Эйлера.

Определение

float agk::GetObjectAngleY( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectAngleX

Описание

Возвращает X-компоненту текущего вращения объекта, преобразованную в углы Эйлера.

Определение

float agk::GetObjectAngleX( UINT objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectAlpha

Описание

Возвращает текущее альфа-значение цвета этого объекта, заданное SetObjectColor или SetObjectAlpha.

Определение

int agk::GetObjectAlpha( int objID )

Параметры

objID - Идентификатор объекта для проверки.

Пример кода


GetObjectBoneName

Описание

Возвращает имя кости. Если эта команда вызывается с уровня 2, то вы должны удалить возвращенную строку, когда закончите с ней.

Определение

char* agk::GetObjectBoneName( UINT objID, UINT boneIndex )

Параметры

objID - Идентификатор объекта, содержащего кость для проверки.
boneIndex - Индекс кости нужно проверить.

Пример кода


GetFogMode

Описание

Возвращает 1, если 3D fog в данный момент включен, в противном случае он возвращает 0.

Определение

int agk::GetFogMode()

Параметры

Пример кода


GetCameraZ

Описание

Возвращает текущее положение Z камеры.

Определение

float agk::GetCameraZ( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraX

Описание

Возвращает текущее положение X камеры.

Определение

float agk::GetCameraX( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraY

Описание

Возвращает текущее положение Y камеры.

Определение

float agk::GetCameraY( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraWorldZ

Описание

Возвращает текущее Z-положение камеры после всех преобразований, вызванных FixCameraToObject.

Определение

float agk::GetCameraWorldZ( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraWorldY

Описание

Возвращает текущее положение Y камеры после всех преобразований, вызванных FixCameraToObject.

Определение

float agk::GetCameraWorldY( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraWorldX

Описание

Возвращает текущее положение X камеры после всех преобразований, вызванных FixCameraToObject.

Определение

float agk::GetCameraWorldX( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraQuatY

Описание

Возвращает Y-компоненту текущего вращения камеры, преобразованную в кватернион.

Определение

float agk::GetCameraQuatY( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraQuatZ

Описание

Возвращает Z-компоненту текущего вращения камеры, преобразованную в кватернион.

Определение

float agk::GetCameraQuatZ( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraQuatX

Описание

Возвращает компонент X текущего вращения камеры, преобразованный в кватернион.

Определение

float agk::GetCameraQuatX( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraFOV

Описание

Возвращает текущее поле зрения для указанной камеры

Определение

float agk::GetCameraFOV( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraAngleY

Описание

Возвращает Y-компоненту текущего поворота камеры, преобразованную в углы Эйлера.

Определение

float agk::GetCameraAngleY( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraAngleZ

Описание

Возвращает Z-компоненту текущего поворота камеры, преобразованную в углы Эйлера.

Определение

float agk::GetCameraAngleZ( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraAngleX

Описание

Возвращает X-компоненту текущего поворота камеры, преобразованную в углы Эйлера.

Определение

float agk::GetCameraAngleX( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


GetCameraQuatW

Описание

Возвращает W-компонент текущего вращения камеры, преобразованный в кватернион.

Определение

float agk::GetCameraQuatW( UINT cameraID )

Параметры

cameraID - Идентификатор камеры для проверки, основная камера-ID 1.

Пример кода


Get3DVectorYFromScreen

Описание

Преобразует 2D-точку на экране в вектор, указывающий в 3D-мир. Вектор нормализуется на 1 единицу длины, чтобы расширить его в мир, просто умножьте его на желаемое расстояние. Если камера использует ортогональную проекционную матрицу, то эта команда ведет себя несколько иначе, поскольку все точки на экране будут производить один и тот же вектор, направленный в сторону от камеры, но каждый из них исходит из другой точки в трехмерном пространстве. Это отличается от перспективной проекции, где все векторы начинаются в положении камеры и расходятся веером по мере удаления от камеры. Поэтому при использовании ортогональной проекционной матрицы эта команда вместо этого возвращает боковой ненормализованный вектор из положения камеры в точку в 3D-пространстве, с которой должен начинаться вектор. Затем это может быть объединено с вектором, который указывает в сторону от камеры, чтобы создать луч, брошенный в сцену.

Определение

float agk::Get3DVectorYFromScreen( float x, float y )

Параметры

x - X-компонент положения экрана.
y - Компонент Y положения экрана.

Пример кода


Get3DVectorXFromScreen

Описание

Преобразует 2D-точку на экране в вектор, указывающий в 3D-мир. Вектор нормализуется на 1 единицу длины, чтобы расширить его в мир, просто умножьте его на желаемое расстояние. Если камера использует ортогональную проекционную матрицу, то эта команда ведет себя несколько иначе, поскольку все точки на экране будут производить один и тот же вектор, направленный в сторону от камеры, но каждый из них исходит из другой точки в трехмерном пространстве. Это отличается от перспективной проекции, где все векторы начинаются в положении камеры и расходятся веером по мере удаления от камеры. Поэтому при использовании ортогональной проекционной матрицы эта команда вместо этого возвращает боковой ненормализованный вектор из положения камеры в точку в 3D-пространстве, с которой должен начинаться вектор. Затем это может быть объединено с вектором, который указывает в сторону от камеры, чтобы создать луч, брошенный в сцену.

Определение

float agk::Get3DVectorXFromScreen( float x, float y )

Параметры

x - X-компонент положения экрана.
y - Компонент Y положения экрана.

Пример кода


Get3DVectorZFromScreen

Описание

Преобразует 2D-точку на экране в вектор, указывающий в 3D-мир. Вектор нормализуется на 1 единицу длины, чтобы расширить его в мир, просто умножьте его на желаемое расстояние. Если камера использует ортогональную проекционную матрицу, то эта команда ведет себя несколько иначе, поскольку все точки на экране будут производить один и тот же вектор, направленный в сторону от камеры, но каждый из них исходит из другой точки в трехмерном пространстве. Это отличается от перспективной проекции, где все векторы начинаются в положении камеры и расходятся веером по мере удаления от камеры. Поэтому при использовании ортогональной проекционной матрицы эта команда вместо этого возвращает боковой ненормализованный вектор из положения камеры в точку в 3D-пространстве, с которой должен начинаться вектор. Затем это может быть объединено с вектором, который указывает в сторону от камеры, чтобы создать луч, брошенный в сцену.

Определение

float agk::Get3DVectorZFromScreen( float x, float y )

Параметры

x - X-компонент положения экрана.
y - Компонент Y положения экрана.

Пример кода


FixObjectToObject

Описание

Фиксирует объект к другому объекту, так что любое движение родителя также влияет на ребенка. Фиксируемый объект использует свое текущее положение, поворот и масштаб в качестве смещения по отношению к родительскому объекту. Например, если родитель был помещен в 10,5,0 и объект был закреплен на нем с текущей позицией 0,10,0, то ребенок теперь унаследует позицию родителя, объединит ее со своей собственной, и ребенок будет помещен в 10,15,0. То же самое относится к вращению и масштабированию, поэтому, если родитель был повернут вокруг оси Y, то и ребенок будет вращаться на ту же величину. Обратите внимание, что использование GetObjectY на дочернем объекте будет показывать только его локальное положение относительно родительского (в этом случае он вернет 10). Чтобы получить конечную мировую позицию ребенка, используйте GetObjectWorldY на нем, который в этом случае вернет 15. Нет предела количеству объектов, которые объект может зафиксировать на себе, и нет предела тому, чтобы объекты были зафиксированы на объектах, которые фиксированы на других объектах, просто не создавайте никаких циклов. Чтобы остановить фиксацию объекта к чему-либо, установите toObjID в 0, и он снова станет независимым.

Определение

void agk::FixObjectToObject( UINT objID, UINT toObjID )

Параметры

objID - Идентификатор объекта для исправления.
toObjID - Идентификатор объекта для его фиксации.

Пример кода


FixObjectToBone

Описание

Аналогично FixObjectToObject, за исключением того, что родитель будет костью в другом объекте.

Определение

void agk::FixObjectToBone( UINT objID, UINT toObjID, UINT toBoneIndex )

Параметры

objID - Идентификатор объекта для исправления.
toObjID - Идентификатор объекта для его фиксации.
toBoneIndex - Указательный палец кости, чтобы зафиксировать его.

Пример кода


FixObjectPivot

Описание

Сбрасывает положение и вращение объекта на 0, сохраняя при этом вершины объекта там, где они находятся. Это можно использовать для изменения центра вращения объекта или настройки его ориентации по умолчанию, когда его вращение равно 0. Эта команда изменяет вершины сеток объекта, поэтому не рекомендуется вызывать ее каждый кадр, если только целевая платформа не является достаточно мощной, то есть Windows, Mac или Linux.

Определение

void agk::FixObjectPivot( UINT objID )

Параметры

objID - Идентификатор объекта для изменения.

Пример кода


FixCameraToObject

Описание

Фиксирует камеру на объекте таким образом, что любое движение объекта также влияет на камеру. Камера использует свое текущее положение, поворот и масштаб в качестве смещения по отношению к объекту. Например, если объект был помещен в 10,5,0 и к нему была прикреплена камера с текущим положением 0,10,0, то камера теперь унаследует положение объекта, объединит его со своим собственным, и камера будет помещена в 10,15,0. То же самое относится к вращению и масштабированию, поэтому, если объект был повернут вокруг оси Y, то камера будет вращаться на ту же величину. Обратите внимание, что использование GetCameraY покажет только его локальное положение относительно родительского объекта (в этом случае он вернет 10). Чтобы получить конечное мировое положение камеры, используйте GetCameraWorldY, который в этом случае вернет 15. Нет предела количеству объектов или камер, которые объект может зафиксировать на себе, и нет предела тому, что объекты фиксируются на объектах, которые фиксируются на других объектах, просто не создавайте никаких петель. Чтобы остановить фиксацию камеры к чему-либо, установите ObjId в 0, и она снова станет независимой.

Определение

void agk::FixCameraToObject( UINT cameraID, UINT objID )

Параметры

cameraID - Идентификатор камеры, которую нужно зафиксировать, должен быть равен 1
objID - Идентификатор объекта для его фиксации.

Пример кода


DrawObject

Описание

Немедленно рисует объект к текущей цели рендеринга в его текущем положении, размере и повороте. Это полезно, если вы хотите нарисовать определенные объекты, такие как небесные ящики, перед любыми другими объектами. В этом случае обязательно сделайте объект невидимым для вызовов Render() или Sync (), иначе объект может появиться дважды.

Определение

void agk::DrawObject( UINT objID )

Параметры

objID - Идентификатор объекта для рисования.

Пример кода


DeletePointLight

Описание

Удаляет указанный точечный свет. Если точечный свет не существует, эта команда ничего не делает.

Определение

void agk::DeletePointLight( UINT lightID )

Параметры

lightID - Идентификатор света, который нужно удалить.

Пример кода


DeleteObjectWithChildren

Описание

Удаляет объект с заданным идентификатором, если объект не существует, то эта команда ничего не делает. Эта команда также удаляет все дочерние объекты, которые были созданы при загрузке этого объекта, если вы не хотите их удалять, то вместо этого используйте DeleteObject. Если вы используете эту команду для объекта, который был загружен с помощью LoadObject, то он удаляет его как обычно.

Определение

void agk::DeleteObjectWithChildren( UINT objID )

Параметры

objID - Идентификатор объекта для удаления.

Пример кода


DeleteObjectTree

Описание

Удаляет объект с заданным идентификатором, если объект не существует, то эта команда ничего не делает. Эта команда также удаляет все дочерние объекты, созданные при загрузке этого объекта, и все объекты, которые в данный момент прикреплены к этому объекту, из использования FixObjectToObject или FixObjectToBone.

Определение

void agk::DeleteObjectTree( UINT objID )

Параметры

objID - Идентификатор объекта для удаления.

Пример кода


DeleteObject

Описание

Удаляет объект с заданным идентификатором, если объект не существует, то эта команда ничего не делает. Обратите внимание, что если объект был загружен с помощью LoadObjectWithChildren, то все дочерние объекты, созданные в ходе этого процесса загрузки, не будут удалены этой командой. Вы можете использовать GetObjectChildID для получения и удаления этих объектов вручную или использовать DeleteObjectWithChildren для удаления всего, что было создано при загрузке этого объекта.

Определение

void agk::DeleteObject( UINT objID )

Параметры

objID - Идентификатор удаляемого объекта.

Пример кода


DeleteShader

Описание

Удаляет шейдер и освобождает идентификатор. Шейдер в данный момент не должен быть назначен ни одному объекту, сетке, квадрату или спрайту, иначе он может вызвать сбой при попытке рисования.

Определение

void agk::DeleteShader( UINT shaderID )

Параметры

shaderID - Идентификатор шейдера для удаления

Пример кода


DeleteAllObjects

Описание

Удаляет все объекты, созданные с идентификатором. Это также сбрасывает идентификатор автоматического объекта до 10000.

Определение

void agk::DeleteAllObjects()

Параметры

Пример кода


CreatePointLight

Описание

Создает точечный свет, который светит одинаково во всех направлениях. Это влияет на все объекты, использующие внутренний шейдер по умолчанию с SetObjectLightMode равным 1. Если вы используете пользовательский шейдер, то AGK добавит функции освещения в ваш шейдер во время загрузки, если вы ссылаетесь на них, см. Руководство по шейдерам для получения дополнительной информации об этом. По умолчанию свет создается в режиме вершин, это быстрее, чем в пиксельном режиме, но более низкого качества. Чтобы изменить это, используйте SetPointLightMode. Значения цвета должны находиться в диапазоне 0-255, но не ограничиваться им. Значения больше 255 будут чрезмерно насыщать вещи, а значения меньше 0 будут отнимать свет.

Определение

void agk::CreatePointLight( UINT lightID, float x, float y, float z, float radius, int red, int green, int blue )

Параметры

lightID - Идентификатор источника света для ссылки на него в других командах.
x - X-компонент положения света.
y - Y-компонент положения света.
z - Z-компонент положения света.
radius - Диапазон, на который влияет свет.
red - Красная составляющая светлого цвета.
green - Зеленая составляющая светлого цвета.
blue - Синяя составляющая светлого цвета.

Пример кода


CreateObjectQuad

Описание

Создает плоскость, которая заполнит весь экран и может быть использована для рендеринга полноэкранных шейдеров.

Определение

void agk::CreateObjectQuad( UINT objID )
UINT agk::CreateObjectQuad()

Параметры

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

Пример кода


CreateObjectPlane

Описание

Создает трехмерную двустороннюю плоскость с заданными шириной (X) и высотой (Y). Плоскость создается в плоскости XY и не имеет размера в направлении Z.

Определение

void agk::CreateObjectPlane( UINT objID, float width, float height )
UINT agk::CreateObjectPlane( float width, float height )

Параметры

objID - Идентификатор, используемый для нового объекта.
width - Ширина плоскости.
height - Высота самолета.

Пример кода


CreateObjectCylinder

Описание

Создает 3D-цилиндр с заданным диаметром и высотой, а также необязательным количеством полигонов. Параметр segments определяет, сколько столбцов полигонов составляет цилиндр и должно быть не менее 3. Формула для вычисления общего числа полигонов, используемых в цилиндре, равна 3*сегментам. Возвращает идентификатор, который можно использовать для ссылки на этот объект в других командах.

Определение

UINT agk::CreateObjectCylinder( float height, float diameter, int segments )
void agk::CreateObjectCylinder( UINT objID, float height, float diameter, int segments )

Параметры

height - Высота цилиндра.
diameter - Диаметр основания цилиндра.
segments - Число столбцов многоугольников, составляющих цилиндр.
objID - Идентификатор, используемый для нового объекта.

Пример кода


CreateObjectFromHeightMap

Описание

Создает объект из заданной карты высот, полезный для создания рельефа. Изображение должно быть PNG 8-битным в оттенках серого или RGB, если это RGB, то считывается только красный канал. В будущем может быть добавлена поддержка 16-битных оттенков серого. Объект будет иметь один УФ-канал с диапазоном от 0 до 1, отображенным на всю местность. Если вы хотите изменить это, то вы можете использовать SetObjectUVOffset и SetObjectUVScale или использовать шейдер, который умножает UV-координаты на заданную величину. Шейдер также можно использовать для создания нескольких УФ-каналов из этого одного канала, применяя к каждому из них различные масштабные коэффициенты. Для удаления артефактов шага рекомендуется использовать значение сглаживания 1, при необходимости корректируя его. Значение split позволяет создавать несколько сеток, которые могут повысить производительность, так как невидимые сетки не будут нарисованы. Значение разделения указывает, сколько сеток нужно создать вдоль каждого ребра, например, значение разделения 5 создаст в общей сложности 5x5 = 25 сеток. В отличие от других объектов, данные о столкновениях не генерируются по умолчанию на этом объекте, так как он может потреблять много памяти, используйте SetObjectCollisionMode, если вы хотите включить его. Для ландшафтов больше 1024x1024 это не рекомендуется на мобильных устройствах, и вы должны использовать GetObjectHeightMapHeight вместо этого, если это возможно. Включение физики для этого объекта будет использовать еще больше памяти и не рекомендуется на местности больше 1024x1024 на любой платформе.

Определение

void agk::CreateObjectFromHeightMap( UINT objID, const char* szImageFile, float width, float height, float length, int smoothing, int split )
UINT agk::CreateObjectFromHeightMap( const char* szImageFile, float width, float height, float length, int smoothing, int split )

Параметры

objID - Идентификатор создаваемого объекта
szImageFile - Имя файла изображения для использования в качестве карты высоты, предпочтительно PNG, также поддерживает JPEG
width - Желаемая ширина нового объекта в направлении X
height - Желаемая высота нового объекта в направлении Y
length - Желаемая длина нового объекта в направлении Z
smoothing - Величина сглаживания, применяемая к значениям высоты, 0=нет, 1=один проход, 2=два прохода и т. Д.
split - 1=одна сетка, 2=четыре сетки, 3=девять сеток, 4=шестнадцать сеток и т. Д.

Пример кода


CreateObjectSphere

Описание

Создает 3D-сферу с заданным диаметром и необязательным количеством полигонов. Параметр rows определяет, сколько рядов полигонов составляет сферу и должно быть не менее 2. Параметр columns определяет, сколько столбцов полигонов составляет сферу и должно быть не менее 3. Формула для расчета общего количества полигонов, используемых в сфере, равна 2столбцам(строкам-1)

Определение

void agk::CreateObjectSphere( UINT objID, float diameter, int rows, int columns )
UINT agk::CreateObjectSphere( float diameter, int rows, int columns )

Параметры

objID - Идентификатор, используемый для нового объекта.
diameter - Диаметр сферы.
rows - Число рядов многоугольников, составляющих сферу.
columns - Число столбцов многоугольников, составляющих сферу.

Пример кода


CreateObjectCone

Описание

Создает 3D-конус с заданным диаметром и высотой, а также необязательное количество полигонов. Параметр segments определяет, сколько столбцов полигонов составляет конус и должно быть не менее 3. Формула для вычисления общего числа полигонов, используемых в конусе, равна 2*сегментам. Возвращает идентификатор, который можно использовать для ссылки на этот объект в других командах.

Определение

UINT agk::CreateObjectCone( float height, float diameter, int segments )
void agk::CreateObjectCone( UINT objID, float height, float diameter, int segments )

Параметры

height - Высота конуса.
diameter - Диаметр основания конуса.
segments - Количество столбцов многоугольников, составляющих конус.
objID - Идентификатор, используемый для нового объекта.

Пример кода


CreateObjectCapsule

Описание

Создает примитив Капсулы.

Определение

void agk::CreateObjectCapsule( UINT objID, float diameter, float height, int axis )
UINT agk::CreateObjectCapsule( float diameter, float height, int axis )

Параметры

objID - Идентификатор, используемый для нового объекта.
diameter - Диаметр капсулы.
height - Высота капсулы
axis - 0 = X, 1 = Y, Z = 2

Пример кода


CreateObjectFromRawHeightMap

Описание

Создает объект из заданной карты высот .raw или .dat, полезной для создания рельефа. Файл должен содержать необработанные 16-битные данные. Если вы используете расширение .dat в szFilename, он будет ожидать, что это 32-битная необработанная карта высоты GameGuru, и преобразует ее в 16-битную. Если файл не является картой высоты GameGuru, то вы должны изменить расширение на .raw. Если вы конвертируете файл GameGuru height map (.dat), то rawWidth и rawHeight всегда должны быть равны 1024. Объект будет иметь один УФ-канал с диапазоном от 0 до 1, отображенным на всю местность. Если вы хотите изменить это, то вы можете использовать SetObjectUVOffset и SetObjectUVScale или использовать шейдер, который умножает UV-координаты на заданную величину. Шейдер также можно использовать для создания нескольких УФ-каналов из этого одного канала, применяя к каждому из них различные масштабные коэффициенты. Обычно при использовании 16-битных данных вам не нужно устанавливать значение сглаживания, но если оно еще не было сглажено, отрегулируйте его по мере необходимости. Значение split позволяет создавать несколько сеток, которые могут повысить производительность, так как невидимые сетки не будут нарисованы. Значение разделения указывает, сколько сеток нужно создать вдоль каждого ребра, например, значение разделения 5 создаст в общей сложности 5x5 = 25 сеток. В отличие от других объектов, данные о столкновениях не генерируются по умолчанию на этом объекте, так как он может потреблять много памяти, используйте SetObjectCollisionMode, если вы хотите включить его. Для ландшафтов больше 1024x1024 это не рекомендуется на мобильных устройствах, и вы должны использовать GetObjectHeightMapHeight вместо этого, если это возможно. Включение физики для этого объекта будет использовать еще больше памяти и не рекомендуется на местности больше 1024x1024 на любой платформе.

Определение

UINT agk::CreateObjectFromRawHeightMap( const char* szFilename, float width, float height, float length, int smoothing, int split, int rawWidth, int rawHeight)
void agk::CreateObjectFromRawHeightMap( UINT objID, const char* szFilename, float width, float height, float length, int smoothing, int split, int rawWidth, int rawHeight )

Параметры

szFilename - Имя файла карты высот должно заканчиваться на .raw или .dat
width - Желаемая ширина нового объекта в направлении X
height - Желаемая высота нового объекта в направлении Y
length - Желаемая длина нового объекта в направлении Z
smoothing - Величина сглаживания, применяемая к значениям высоты, 0=нет, 1=один проход, 2=два прохода и т. Д.
split - 1=одна сетка, 2=четыре сетки, 3=девять сеток, 4=шестнадцать сеток и т. Д.
rawWidth - Ширина данных карты высот
rawHeight - Высота данных карты высот
objID - Идентификатор создаваемого объекта

Пример кода


CreateObjectBox

Описание

Создает 3D-окно с заданными шириной (X), высотой (Y) и длиной (Z). Возвращает идентификатор, который можно использовать для ссылки на этот объект в других командах.

Определение

UINT agk::CreateObjectBox( float width, float height, float length )
void agk::CreateObjectBox( UINT objID, float width, float height, float length )

Параметры

width - Размер объекта в направлении X.
height - Размер объекта в направлении Y.
length - Размер объекта в направлении Z.
objID - Идентификатор, используемый для нового объекта.

Пример кода


CreateObjectFromObjectMesh

Описание

Создает объект путем копирования одной сетки из другого объекта. Объект может содержать много сеток, и использование CloneObject скопирует их все. Используйте эту команду, если вы хотите скопировать только одну сетку. Индексы сетки находятся в диапазоне от 1 до GetObjectNumMeshes включительно.

Определение

void agk::CreateObjectFromObjectMesh( UINT objID, UINT fromObjID, UINT meshIndex )
UINT agk::CreateObjectFromObjectMesh( UINT fromObjID, UINT meshIndex )

Параметры

objID - Идентификатор нового объекта
fromObjID - Идентификатор объекта, содержащего сетку для копирования
meshIndex - Индекс сетки для копирования

Пример кода


CloneObject

Описание

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

Определение

void agk::CloneObject( UINT newobjID, UINT objID )
UINT agk::CloneObject( UINT objID )

Параметры

newobjID - Идентификатор нового объекта.
objID - Идентификатор объекта для копирования.

Пример кода


ClearPointLights

Описание

Удаляет все точечные огни.

Определение

void agk::ClearPointLights()

Параметры

Пример кода