Главная | Форум | Мой профиль | Выход | RSS
Меню сайта
Мини-чат
200
Наш опрос
Расширение спектра деятельности. Тоесть принимать и по возможности помогать не только Ultimate 3D
Всего ответов: 298
Кабинет

Логин:
Пароль:
Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Наши друзья
  • Официальный cайт U3D
  • Лучший сайт по GM
  • Сайт по геймдеву
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Мы рады приветствовать Вас на русскоязычном официальном сайте игрового движка Game Maker+Ultimate3D. Этот сайт создан для всех тех, кто хотел бы своими силами создать хотя бы одну компьютерную 3D игру, но не знает, как это сделать и с чего начать.Вы всегда хотели заняться разработкой компьютерных игр, но не знали как?Тогда вы попали по адресу. Game Maker с Ultimate3D это микс, который позволит делать захватывающие компьютерные игры с неограниченными возможностями. Так же есть форум на котором можно задовать свои вопросы по Ultimate 3D!

    Примитивы
    Понятие позади примитивных объектов (короче говоря, примитивы) должно дать Вам возможность создать простые сцены легко. Большое количество примитивов может также быть предоставлено очень эффективно. Определение объекта в Окончательных трехмерных работах следующим образом. Поскольку я уже сказал, каждый объект в Окончательном трехмерный должен быть представлен случаем объекта в Производителе Игры. Таким образом Вы должны создать новый объект сначала. Тогда Вы должны определить несколько переменных для объекта. Наконец Вы вызываете функцию, которая передает ценности переменных к Окончательному трехмерный и создает объект. Столь давайте начнем с первым видимым объектом.


    Стенные объекты
    Стенной объект является полностью плоским и ориентируемым вертикально. Прежде, чем создать это Вы должны установить следующие переменные:
    высота
    Эта переменная указывает высоту стены.
    x2, y2
    Эти две переменные указывают, куда стена идет в от ее x-и y-положения. Следующая графика иллюстрирует это:
     
    структура
    Вы должны установить эту переменную в один из индексов, на которые Вы назначали структуру, используя функцию LoadTexture (Start.htm (...)). Эта структура будет тогда использоваться для стены. Если Вы не хотите использовать структуру, Вы можете установить эту переменную в-1.
    texx1, texy1, texx2, texy2 (дополнительный)
    Эти переменные являются дополнительными. Если Вы не установите эти переменные тогда, то целая структура будет использоваться. Они определяют две так называемых координаты структуры. Координаты x=0 и y=0 структуры (вкратце (0|0)) обращаются к верхней левой из структуры. Координаты структуры (0.5|0.5) обращаются к середине структуры, координаты структуры (0|1) к нижней левой из структуры, координаты структуры (1|1) к нижнему правому, и так далее. Стенной объект будет использовать часть структуры, которая находится между двумя данными координатами структуры. Координаты структуры могут также быть составлены из ценностей, больше чем 1. Тогда структура будет обернута (то же самое как черепица, но для структур).
    Есть две дополнительных переменные, но в настоящее время Вы не должны знать о них. У пола и примитивов куба есть они, также. Они описаны в огнях Добавления обучающей программы <Light.htm>.

    Теперь, когда Вы настроили все необходимые переменные, Вы можете назвать CreateWall () однажды. Эта функция не берет параметров. Это получает всю информацию, в которой требуется от переменных. Однако, Вы должны поместить Шаг () в случай шага объекта и Разрушить () в разрушаемые случай. Ни один из них не требует никаких параметров. Разрушьте <Primitive.htm> (), должен быть помещен в разрушить случай, потому что иначе Окончательный трехмерный не знал бы, когда объект разрушен. Это просто не исчезло бы в этом случае. То, Что делает Шаг <Primitive.htm> (), является темой следующей части этой обучающей программы. Так держитесь ;).


    Преобразование примитивов
    Преобразование... странное слово. Звуки, немного сложные, не так ли? Хорошо, не бойтесь, Вы уже знаете, как преобразовать кое-что; Вы только не знаете, что это назвало преобразование. Преобразование кое-чего означает изменять свою ориентацию. Если Вы берете объект и перемещаете это, это - преобразование. Если Вы вращаете это, это - преобразование также. Есть одно преобразование, которое не может быть сделано в действительности, но Вы уже знаете это от 2-ого материала: вычисление кое-чего. Вычисление средств, изменяющих размер объекта. Объект может быть измерен на трех топорах. Все эти процессы называют преобразованиями. Таким образом вещь, которую Вы должны помнить, - то, что преобразование - комбинация вычисления (изменяющий размер), вращение, и перевод (перемещение).
    И теперь преобразовать примитивы. Вы действительно знаете, как сделать это, потому что Вы преобразовали другой объект прежде (если Вы читаете обучающие программы полностью пока): объект камеры. Как объект камеры, у каждого примитива есть переменные x, y, z, rotx, roty и rotz. Дополнительно, у них есть scalx, чешуйчатый, scalz. Так как объяснение значения rotx, roty и rotz не состояло в том, что детализированный в обучающей программе об объектах камеры <Start.htm>, вот более детальный и описание scalx, чешуйчатого и scalz.
    rotx, roty, rotz
    Поскольку я уже сказал в обучающей программе об объектах камеры <Start.htm>, переменная rotx дает вращение подачи объекта, переменная roty дает вращение отклонения от курса, и переменная rotz дает вращение рулона. Следующая графика иллюстрирует это.
     
    Увеличение rotx будет вращать фронт объекта вниз, в то время как уменьшение этого продвинет объект. Вращение отклонения от курса (roty) вращает объект, не изменяя z-координаты пунктов объекта. Наконец есть вращение рулона. Я думаю, что нет очень, чтобы сказать об этом. Отметьте, что вращение рулона применено сначала, тогда вращение подачи следует, и наконец вращение отклонения от курса применено.
    Короткий комментарий, что: Если Вы читали тщательно, Вы, возможно, заметили, что roty вращается вокруг оси Z, тогда как rotz вращается вокруг оси Y. Эта небольшая несогласованность - остаток от первых версий Окончательных трехмерный. Эти переменные называют согласно системе координат, это используется Окончательным трехмерный внутренне. Вы не должны заботиться, о котором, только имеют в виду, что roty вращается вокруг оси Z, и rotz вращается вокруг оси Y.
    scalx, чешуйчатый, scalz
    Понятие вычисления весьма легко понять. Измеряющая ценность каждый подразумевает, что ничто не изменяется, измеряющая ценность двух средств, которыми все становится дважды как большой, и измеряющая ценность 0.5 средств, что все становится половиной размера. Обычно Вы не используете отрицательные ценности вычисления. Единственная вещь, которую этому оставляют объяснить, - то, почему есть три измеряющих ценности. Поэтому этот путь у Вас есть возможность измерить объект по-другому вдоль трех топоров трехмерной системы координат. Но в большинстве случаев Вы хотите измерить свой объект таким же образом вдоль всех топоров, таким образом Вы должны настроить ту же самую ценность за все три измеряющих ценности. Отметьте, что вычисление сделано перед вращением.
    Другая вещь, которую Вы никогда не должны забывать, - то, что каждый Окончательный трехмерный объект должен содержать звонок в Шаг <Primitive.htm> () функция в пределах ее случая шага. Иначе, переменные не будут затрагивать преобразование модели!


    Объекты пола
    У объектов пола нет расширения вдоль оси Z, означая, что они являются полностью плоскими и горизонтальными. Переменные, которые Вы должны настроить прежде, чем создать объекты пола, являются следующим:
    ширина, высота
    ширина описывает расширение объекта пола вдоль оси X и высоты расширение вдоль оси Y.
    структура
    Индекс структуры, которая должна использоваться для этого объекта или-1 ни для одного. Поскольку более детальное описание взглянули на текст о стенных объектах.
    texx1, texy1, texx2, texy2 (дополнительный)
    Часть структуры, которая должна использоваться. Поскольку более детальное описание взглянули на текст о стенных объектах.


    Поскольку Вы можете видеть, что нет многих изменений по сравнению со стенными объектами. Снова есть две дополнительных переменные, которые будут введены в обучающей программе об источниках света <Light.htm>. После настраивания этих переменных Вы должны назвать CreateFloor (), чтобы калибровать объект пола. И как обычно Вы нуждаетесь в Шаге <Primitive.htm> () и Разрушаете <Primitive.htm> () в соответствующих событиях.


    Объекты куба
    Объекты куба немного более сложны чем этажи и стены, но они могут использоваться для довольно прохладных вещей. В старом демонстрационном примере Окончательных трехмерный v. 1.31 всех здания были составлены из простых кубов. Как с другими примитивами, Вы должны настроить несколько переменных прежде, чем Вы сможете создать куб. Вот список их:
    ширина, высота, depth2
    Измерения куба. ширина дает расширение вдоль оси X, depth2 дает расширение вдоль оси Y, и высота дает расширение вдоль оси Z. depth2 называют "depth2" вместо "глубины", потому что переменная глубина используется Производителем Игры.
    texx1, texy1, texz1, texx2, texy2, texz2 (дополнительный)
    Часть структуры, которая должна использоваться. Поскольку более детальное описание этих параметров взглянули на текст о стенных объектах. Так как объекты куба являются трехмерными, тогда как стены два размерные, у объектов куба есть три пары этих параметров.
    структура
    Индекс структуры, которая должна использоваться для этого объекта или-1 ни для одного. Поскольку более детальное описание взглянули на текст о стенных объектах.
    (дополнительный) subdivide_texture
    Поскольку все знают, что у куба есть шесть сторон. Если Вы установите эту переменную в ложный, то все они будут использовать ту же самую часть структуры. Если Вы устанавливаете это в верный, что структура будет подразделена на шесть частей, и каждая сторона куба будет использовать различную часть структуры. Следующая графика иллюстрирует, как это работает.
     
    Когда dispart_texture ложен, вся структура показана на каждой стороне. Когда это верно, каждая сторона показывает только часть.
    originx, originy, originz (дополнительный)
    Эти переменные обычно берут ценности в диапазоне от 0 до 1. Они определяют, где происхождение куба находится. Например, вход 0.5 для всех их означал бы, что происхождение куба находится точно в середине. Вход в правильные ценности для этих переменных очень важен, особенно когда Вы вращаете куб. Следующая графика иллюстрирует, как она работает:
     


    После настраивания этих переменных Вы должны назвать CreateCube () однажды калибровать объект куба. И как обычно Вы нуждаетесь в Шаге <Primitive.htm> () и Разрушаете <Primitive.htm> () в соответствующих событиях.


    Объекты рекламного щита
    Рекламные щиты отличаются немного от всех других трехмерных объектов. Причина проста. Они не являются трехмерными. Часто случается, что чрезвычайно сложная геометрия требуется для специфических объектов. Деревья - лучший пример. Чтобы избежать этой сложной геометрии, Вы можете использовать рекламные щиты. В старших играх Вы часто видите, что деревья являются 2-ыми, в то время как все остальное является трехмерным. Это - каковы рекламные щиты. Рекламные щиты - 2-ые объекты в трехмерном месте. Они установлены к одному пункту в трехмерном месте и их размере на изменениях экрана в зависимости от расстояния камеры.
    Так или иначе, создание рекламных щитов не немного тяжелее чем создание других примитивных объектов. Вот переменные, которые Вы должны настроить для них:
    ширина, высота
    Измерения рекламного щита.
    originx, originy
    Эти переменные определяют происхождение рекламного щита. Происхождение - пункт рекламного щита, который не изменяет его положение в трехмерном месте, когда камера вращается. Обычно это находится где-нибудь в середине рекламного щита. В принципе это работает таким же образом как переменные originx/y/z объектов куба. Так взгляните на описание тех.
    структура
    Индекс структуры, которая должна использоваться для этого объекта или-1 ни для одного. Поскольку более детальное описание взглянули на текст о стенных объектах.
    texx1, texy1, texx2, texy2 (дополнительный)
    Часть структуры, которая должна использоваться. Поскольку более детальное описание взглянули на текст о стенных объектах.

    После настраивания этих переменных Вы должны назвать Create2D () однажды калибровать объект рекламного щита. И как обычно Вы нуждаетесь в Шаге <Primitive.htm> () и Разрушаете <Primitive.htm> () в соответствующих событиях.


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

    Многоугольники не становятся определенными несколькими переменными. Вместо этого Вы вызываете три функции. Вы нуждаетесь в случае объекта для каждого объекта многоугольника. Первая функция, которую Вы должны назвать, вызвана BeginPolygon (Primitive.htm (...)). Это говорит Окончательный трехмерный, что Вы хотите создать объект многоугольника, и это готовит все. Вот описание функции:
    BeginPolygon (
    VertexNumber)
    VertexNumber
    Число вершин многоугольник, который Вы собираетесь создать, будет иметь. Ценность этой переменной должна всегда быть больше чем или равной три, иначе Вы не будете получать реальный многоугольник.

    После запроса BeginPolygon (Primitive.htm (...)) Вы должны назвать AddVertex (Primitive.htm (...)) многократно в зависимости от ценности, которую Вы передали к BeginPolygon (Primitive.htm (...)). Вот описание AddVertex (Primitive.htm (...)):
    AddVertex (
    X, Y, Z,
    U, V)
    X, Y, Z
    Положение вершины. Отметьте, что это положение преобразовано в зависимости от ценностей, которые Вы настроили для x, y, z, scalx/y/z и rotx/y/z. Таким образом положение дано в месте объекта.
    U, V
    Координата структуры вершины. Чтобы получить детальное описание того, что координата структуры, взглянули на описание переменных texx1 и texy1 стенных объектов.

    Когда Вы назвали AddVertex (Primitive.htm (...)) достаточно часто, Вы можете назвать CreatePolygon (), чтобы создать объект многоугольника. Как с любым примитивным объектом у этого есть переменная структуры, и переменные преобразования (за дополнительной информацией взглянули на описание стенных объектов и в тексте о преобразовании примитивов). По этой причине Вы должны поместить Шаг <Primitive.htm> () в случай шага снова и Разрушить <Primitive.htm> () в разрушить случай.
    Вот кодовый пример, который демонстрирует, как создать простой объект многоугольника:
    BeginPolygon <Primitive.htm> (5);
    AddVertex <Primitive.htm> (0,0,0,0,1);
    AddVertex <Primitive.htm> (0,0,5,0,0.33);
    AddVertex <Primitive.htm> (0 2.5 7.5 0.5 0.0);
    AddVertex <Primitive.htm> (0,5,5,1,0.33);
    AddVertex <Primitive.htm> (0,5,0,1,1);
    CreatePolygon <Primitive.htm> ();
    texture=1;
    Эта картина показывает результат этих вызовов функции:
     

    Изменение объектов многоугольника
    Любая единственная вершина объектов многоугольника может быть изменена после создания многоугольника. Чтобы сделать это есть две функции: один, чтобы заставить данные об объекте многоугольника, и один изменять данные объекта многоугольника. Вот описание их обоих:

    Эта функция восстанавливает данные об объекте многоугольника, который вызывает функцию. Это можно назвать после CreatePolygon <Primitive.htm> ().
    GetVertex (
    VertexIndex,
    ElementIndex)
    VertexIndex
    Этот параметр идентифицирует вершину, о которой Вы хотите получить информацию. У вершины, которая была добавлена к многоугольнику сначала, есть индекс 0. Самый высокий действительный индекс - VertexNumber-1.
    ElementIndex
    Этот параметр говорит Окончательный трехмерный, какая информация должна быть восстановлена. Вот значение каждой ценности:
    0 = X;
    1 = Y;
    2 = Z;
    3 = U;
    4 = V

    Эта функция изменяет данные одной вершины в пределах объекта многоугольника, который вызывает функцию. Это можно назвать после CreatePolygon <Primitive.htm> ().
    SetVertex (
    VertexIndex,
    X, Y, Z,
    U, V)
    VertexIndex
    Этот параметр идентифицирует вершину, информацию которой Вы хотите изменить. У вершины, которая была добавлена к многоугольнику сначала, есть индекс 0. Самый высокий действительный индекс - VertexNumber-1.
    X, Y, Z
    Положение вершины. За дополнительной информацией взгляните на описание функции AddVertex <Primitive.htm> ().
    U, V
    Координата структуры вершины. Чтобы получить детальное описание того, какова координата структуры, взгляните на описание переменных texx1 и texy1 стенных объектов.
    Это - все, что Вы должны изменить геометрию многоугольника. Вот пример для этого. Если помещено в случай шага объекта многоугольника это перемещает третью вершину немного в каждый шаг.
    SetVertex <Primitive.htm> (2, GetVertex <Primitive.htm> (2,0), GetVertex <Primitive.htm> (2,1) +0.1, GetVertex <Primitive.htm> (2,2), GetVertex <Primitive.htm> (2,3), GetVertex <Primitive.htm> (2,4));

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

    Эта функция изменяет материал примитивного объекта, который называет это.
    SetMaterial (
    Красный,
    Зеленый,
    Синий,
    Альфа)
    Красный, Зеленый, Синий
    Эти параметры определяют новый цвет, который должен использоваться. Ценности для параметров могут быть в диапазоне от 0 до 255. (0|0|0) означает черный, и (255|255|255) означает белого.
    Альфа
    Этот параметр дает opacity объекта. Это может быть в диапазоне от 0 до 255. 0 средств никакой opacity (полностью прозрачный) и 255 полностью непрозрачных средств.

    Эта функция изменяет эмиссионную часть материала. Эмиссионная часть материала не под влиянием освещения. Хорошим примером для материала, который должен использовать эмиссионное освещение, является телевизионный экран. Это излучает свет, таким образом его яркость не зависит от света. Вы можете также использовать эмиссионные материалы, если Вы не хотите объекты быть под влиянием света. Например, обычно выглядит весьма странным, если рекламные щиты под влиянием света.
    SetMaterialEmissive (
    Красный,
    Зеленый,
    Синий)
    Красный, Зеленый, Синий
    Цвет, который должен использоваться для эмиссионной части материала. Снова ценности могут быть в диапазоне от 0 до 255.

    Обновление примитивных объектов

    Вы уже знаете, что Вы можете изменить преобразование примитива после его создания, используя переменные x, y, z, rotx/y/z, scalx/y/z. То же самое может быть сделано со структурой. В любое время это может быть изменено. Но что относительно других свойств примитива? Например, если Вы хотите оживить структуру, изменяясь texx1, texy1, texx2 и texy2? Если Вы заменяете эти переменные после создания примитива, объект не изменяется. По этой причине есть функция RecreatePrimitive (). Это делает точно, что говорит название. Это разрушает примитив и обновляет это с новыми данными переменных.




    © Shkola Ultimate 3D . Все права защищены.Макарский Роман (ASD_W_GAMES) And Беляков Вячеслав (ZXC76)
    Author:
    © Christoph Peters. Some rights reserved.




    Школа Ultimate3D 2009-2010 год