Главная | Форум | Мой профиль | Выход | 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!

    Всё о камерах.
    Multiple cameras По умолчанию у Вас есть точно один объект камеры в Вашей игре. Но есть специфические ситуации, в которых требуется больше объектов камеры. Например Вы можете хотеть заставить раскол показать на экране игру мультиигрока. Или Вы можете хотеть добавить камеры безопасности к своей игре, которые снимают, который может быть показан на мониторах. Кроме того, Вы можете хотеть добавить реальные размышления к своим водным самолетам или к другим объектам. Для всех этих вещей Вы нуждаетесь в дополнительных объектах камеры.
    В Окончательном трехмерный Вы можете использовать до 32 объектов камеры в то же самое время. Используя них весьма просто. В принципе вся камера возражает работе таким же образом как первому. Единственное различие - то, что Вы должны определить предназначение, к которому должны отдать другие объекты камеры. Есть два различных видов предназначения. Вы можете или отдать к определенной части пользователя экрана как обычно, или Вы можете отдать к специальной структуре. Эти специальные структуры могут быть применены к объектам, точно так же как стандартные структуры. Они могут также быть привлечены к экрану, используя DrawTex(...) или DrawTexEx(...).


    Добавление новой камеры к сцене


    У каждого объекта камеры есть те же самые переменные как первый объект камеры, которые являются следующим: x, y, z, высота, rotx, roty, rotz, представление, min_range, max_range, падение, falling_speed, следует, перспектива, и расстояние. Чтобы получить информацию об этих переменных, взгляните на обучающую программу, Начинающую . Есть также несколько новых переменных, о которых Вы должны знать. У первого объекта камеры есть они также, но если Вы не настраиваете их вручную, они установлены в ценности по умолчанию. Таким образом вот новые переменные:
    число

    Индекс этого объекта камеры. У первого объекта камеры есть индекс 0 (там, всегда должна быть камера с number=0). Самая высокая действительная ценность для этой переменной 31. У Вас никогда не должно быть двух объектов камеры с тем же самым индексом в то же самое время.

    v_left, v_top, v_width, v_height

    Положение и измерения viewport Вы хотите использовать для камеры. Это - область, к которой отдаст эта камера. Отметьте, что эти ценности должны быть даны относительно левой вершины первого представления Производителя Игры.

    actual_aspect

    Если Вы не нуждаетесь в этой переменной, Вы можете просто проигнорировать ее. По умолчанию, Окончательный трехмерный вычислит аспект viewport, делясь v_width/v_height. Но с тех пор отдают целевые структуры, должны были составить измерения полномочий два, может случиться, что этот фактор не аспект, который Вы фактически хотите. В этом случае Вы можете использовать эту переменную, чтобы настроить другой.

    render_target
    Если Вы не хотите отдавать к структуре, Вы можете просто проигнорировать эту переменную. Иначе, Вы должны установить это в индекс отдавать целевой структуры, которую Вы хотите. Отдайте целевые структуры, может быть создан, используя функцию CreateTextureRenderTarget(...) (см. ниже).


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


    Обрыв самолетов и ортогональных камер

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

    Multiple cameras
    SetClippingPlane(
    ClippingPlaneIndex,
    PlaneOriginX, PlaneOriginY, PlaneOriginZ,
    PlaneOrientationLongitude, PlaneOrientationLatitude
    )


    ClippingPlaneIndex

    Может быть до шести самолетов обрыва за камеру, в зависимости от графического устройства. GetClippingPlaneSupport () возвращает число поддержанных самолетов обрыва. Через этот параметр Вы определяете, какой обрыв самолета Вы хотите установить. Это может быть ценность в диапазоне от 0 до 5.

    PlaneOriginX/Y/Z
    Это - произвольный пункт, который находится в самолете, который Вы хотите настроить как обрыв самолета.

    PlaneOrientationLongitude, PlaneOrientationLatitude
    Эти две переменные определяют ориентацию самолета (руководство, перед которым самолет стоит).
    Другая маленькая, но полезная особенность Окончательных трехмерный - то, что это позволяет использование камер с ортогональным проектированием. Они главным образом используются для утилит как редакторы уровня или моделирование программ. В орфографических объектах представления, которые более далеки, кажется, не меньше (и при этом они не кажутся больше). Нет никакого исчезшего пункта. У Вас нет угла, дающего область представления, потому что границы видимой области всегда параллельны. Вместо этого Вы даете прямоугольную область, которая должна быть видимой, давая высоту и ширину. Ортогональные камеры - кое-что, что не может существовать в действительности, но для различных видов редакторов они очень полезны, потому что они уменьшают замеченное изображение до двух топоров.

    Эта функция позволяет ортогональное проектирование для камеры, которой это называют.
    SetOrtho(
    UseOrthogonalProjection,
    SeenAreaWidth, SeenAreaHeight
    )

    UseOrthogonalProjection

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

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


    Создание отдает целевые структуры и отдающий, чтобы возвести в куб карты
    Предоставление к структурам - техника очень широко годная к употреблению. Вы можете отдать изображение к структуре и использовать это как любая другая структура. Кроме того, отдайте к функциям структуры, обязаны заставлять почту показать на экране shaders <PostScreenShader.htm>, который может использоваться для эффектов, таких как HDR, размывание движения или эффекты, которые заставляют Вашу игру быть похожей на действительно старое кино. Используя почтовый экран shader означает, что Вы отдаете свою сцену к структуре вместо того, чтобы отдать это непосредственно к экрану. Тогда Вы отдаете структуру, которая содержит картину сцены к экрану, применяя некоторый эффект shader к этому. Более поздняя версия Окончательных трехмерный сделает использование почтового экрана shaders немного легче.

    Так как Вы уже знаете, как настроить структуру как отдавать цель для камеры, единственная вещь, о которой Вы должны узнать теперь, как создать отдавать целевую структуру. Чтобы сделать это, Вы нуждаетесь только в одной простой функции:

    Эта функция создает отдавать целевую структуру с данными измерениями и связывает это с данным индексом.

    CreateTextureRenderTarget(
    TextureIndex,
    RequestedWidth, RequestedHeight
    )

    TextureIndex
    Индекс структура должен быть связан с. Это может быть произвольным целочисленным значением в диапазоне от 0 до 998.

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

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

    CreateCubeTextureRenderTarget(
    TextureIndex,
    RequestedEdgeLength
    )


    TextureIndex
    Индекс структура должен быть связан с. Это может быть произвольным целочисленным значением от 0 до 998.

    RequestedEdgeLength

    Длина стороны структуры куба Вы хотите создать. Структура куба будет составлена из шести 2-ых структур с размером RequestedEdgeLength * RequestedEdgeLength. Вы должны войти во власть два для этого параметра, так как большинство графических устройств не поддерживает другие размеры структуры.

    Предоставление, чтобы возвести в куб структуры не сделано, используя объект камеры. Это намного легче. Так как все указания представлены структурой куба, нет никакой потребности дать руководство представления или угол представления. Единственная информация, которая дела - положение, и возможно цвет с альфа-ценностью. Когда целая сцена была предоставлена к структуре куба, дворы вершины с этой ценностью цвета и прозрачности будут оттянуты по законченной структуре. Вы должны всегда входить в альфа-ценность ниже чем 255, или иначе целый процесс предоставления не имел бы никакого смысла, так как результаты не будут видимы. Вы должны обычно помещать кое-что как r=g=b=0 и a=128. Вот функция:

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

    RenderToCubeTexture(
    CubeTextureIndex,
    PositionX, PositionY, PositionZ,
    ColorR, ColorG, ColorB, ColorA
    RoomIndex1, RoomIndex2, ..., RoomIndex8
    )

    CubeTextureIndex

    Индекс структуры куба отдает цель, к которой Вы хотите отдать. Это должно быть индексом структуры куба, отдают цель, которая была создана, используя CreateCubeTextureRenderTarget(...), иначе эта функция потерпит неудачу.

    PositionX, PositionY, PositionZ

    Положение от того, где сцена должна быть предоставлена.

    ColorR, ColorG, ColorB, ColorA
    Цвет дворов вершины, которые должны быть предоставлены к структуре куба после предоставления сцены. Ценности для этих параметров должны быть в диапазоне от 0 до 255. Если Вы не хотите, чтобы эти дворы вершины были оттянуты, только поместите 0 для ColorA. Прохождение 255 для ColorA не имеет никакого смысла, потому что тогда Вы не видели бы сцену.

    RoomIndex1, RoomIndex2..., RoomIndex8
    Индексы комнат, которые должны быть предоставлены. За дополнительной информацией о комнате индексы взглянули на продвинутые функции отбора. Комната 0 будет всегда предоставляться, независимо от ценностей, которые Вы передаете для этого параметра.


    Графика рисунка 2-ого к структурам

    Я назвал бы этот подраздел "Рисунком структур и текста к структурам", если это не казалось слишком фантастическим. Но это только, что Вы будете в состоянии сделать, как только Вы прочитали и поняли это. Предположите, что у Вас есть пульт управления в Вашей игре, на которой показаны разные параметры настройки. Таким образом Вы должны потянуть 2-ую графику к структуре, которая может использоваться как структура для монитора. Это только, для чего эта особенность предназначается, чтобы использоваться. Вы уже знаете функции, которые могут использоваться для рисунка структур и текста к структурам: DrawTexEx(...) и DrawText(...). Есть только один дополнительный параметр, о котором я не говорил Вам в секции новичка избегать смущать Вас. Таким образом вот полный синтаксис этих двух функций.

    Multiple cameras
    DrawTexEx(
    TextureIndex, Left,Top, Width,Height, X,Y, ScalingX,ScalingY, Rotation, R,G,B,A,
    CameraIndex
    )

    CameraIndex
    Индекс камеры, к тому, чей отдают цель, Вы хотите потянуть структуру.

    Multiple cameras

    DrawText(
    FontIndex, X, Y, Text,
    CameraIndex
    )

    CameraIndex
    См. выше.
    Отметьте, что структура не будет оттянута к отдавать целевой структуре прежде, чем соответствующий объект камеры назовет RenderToTexture().







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




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