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

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

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

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

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

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

    Ultimate 3D аппаратные средства использования ускоряли тени трафарета. Вы не должны знать, как эти тени работают, но Вы должны знать о следующих преимуществах и неудобствах этой техники. Преимущества - главным образом чрезвычайно высокое качество получающихся теней, которые абсолютно точны для каждого пиксела, низкие необходимые способности аппаратных средств (никакой пиксел shader поддержка не требуется), надежность, безаварийная комбинация с эффектами shader как за освещение пиксела и факт, что они - полностью ускоренные аппаратные средства, таким образом они не подчеркивают центральный процессор что много. Неудобства - то, что Ваши модели должны выполнить некоторые условия быть действительными теневыми литейщиками; то, что они подчеркивают GPU довольно много; и что мягкие тени не возможны.


    Используя тени в реальном времени

    Использование теней в реальном времени в Ultimate 3D очень легко. Первая вещь, которую Вы должны сделать, удостоверяются, что они поддержаны. Раз так Вы можете позволить кастинг тени для специфических источников света, настроить специфические образцовые объекты как теневые литейщики и настроить образцовые объекты, объекты ландшафта или примитивные объекты как теневые приемники. Первая вещь, которую Вы должны сделать, чтобы быть в состоянии использовать тени, устанавливает глобальный u3d_z_buffer_format в 32 в Ultimate3DOptions() скрипт. За дополнительной информацией о значении этой переменной, пожалуйста обратитесь к главе об Ultimate3DOptions. Причина, что не может быть теней без 32-битового z-буфера, состоит в том, что 8 битов z-буфера используются как буфер трафарета, который необходим, чтобы вычислить тени. Если PC, который Вы используете, является достаточно текущим и если у z-буфера есть правильный формат, функция, которую GetShadowSupport () возвратит истинный, что означает, что Вы можете использовать тени в реальном времени. Иначе Вы не можете. Вся тень имела отношение, функции ничего не будут делать тогда.

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

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

    Real-time shadows
    SwitchShadows(
    Enable
    )

    Enable
    Если Вы пройдете верный для этого параметра, то Ultimate 3D позволит кастинг тени для этого источника света, иначе это повредит это.

    Затем Вы можете определить, какая модель возражает брошенным теням для который источники света.

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

    SwitchShadowCasting(
    LightSourceID,
    Enable
    )

    LightSourceID
    Game Maker id источника света возражает, что эта модель должна бросить тени для.

    Enable
    Должен ли теневой кастинг быть позволен (true) или повреждает (false).


    Наконец Вы должны быть в состоянии установить, какие объекты могут получить тени. Это столь легко.

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

    SwitchShadowReceiving(
    LightSourceID,
    Enable
    )

    LightSourceID

    Источник света Вы хотите позволить или повредить получение тени для.

    Enable

    Если вы если вы поставите true, то объект получит тени от данного источника света, иначе это не будет. Отметьте, что ландшафты не будут получать теней, если они не назвали CalculateTerrainLightMap (Terrain.htm (...) по крайней мере однажды после вызывания этой функции.

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

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

    Real-time shadows
    CreateShadowOptimizedGeometry(
    LODIndex,
    CreateConnectionPatches
    )

    LODIndex

    Через этот параметр Вы можете определить, для которого уровня деталей Вы хотите создать оптимизированную геометрию тени. Часто имеет смысл использовать более низкие уровни деталей для тени, бросая, так как тени не должны быть что точны. Высший уровень деталей с оптимизированной геометрией тени будет использоваться для теневого кастинга. Для этого параметра, 0 обращается к высшему уровню деталей (неизменная модель), 1 обращается к следующему более низкому уровню деталей и так далее.

    CreateConnectionPatches

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

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


     
    Геометрия слева могла быть оптимизирована отлично, потому что она составлена из единственного, примкнул, (синие) края и два примкнули края (зеленые) только. Но у части геометрии справа есть два края, которые разделены тремя (красными) треугольниками. По этой причине механизм, Ultimate 3 использование, чтобы заполнить отверстия в образцовой геометрии не может найти надлежащее решение и именно поэтому функцию, не будет приводить к оптимизированной геометрии действительной тени в этом случае. Именно поэтому ни у какой модели кастинга тени в Вашей сцене не может быть конфигурации треугольника как это. Вам решать сделать это уверенным. Ultimate 3D не может сделать этого для Вас, потому что математический механизм, который приводит к уникальному решению, не может быть найден в этой ситуации. Но это - низкая цена за абсолютно реалистические тени в реальном времени, не так ли ;)?


    Теневой контрольный список


    Недавно о проблемах с функциями кастинга тени сообщали относительно Ultimate 3D Сообщества весьма часто. В большинстве всех случаев это было результатом неправильного использования. Действительно весьма трудно отладить проблемы, связанные с затенением, потому что, если только один компонент является неправильным, целое затенение не будет работать и нет никакого способа узнать, является ли это источником света, теневым литейщиком или теневым приемником, это не функционирует. По этой причине вот контрольный список, с которым Вы можете работать, если Ваши тени не работают. Это объясняет все частые ошибки и объясняет, как исправить их. Прочитайте это прежде, чем Вы отправите любые вопросы, связанные с нефункционирующими тенями трафарета на форуме.

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

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

    Если у Вас есть проблемы с использованием объектов ландшафта как теневые приемники, Вы должны проверить возвращаемое значение GetSimultaneousTextureCount (Material.htm (...)). Если это меньше, чем три Ваших системы не поддерживают свет ландшафта, наносящий на карту в комбинации со структурой splatting. И без света, наносящего на карту Вас, не может получить тени. Другая вещь, которую Вы должны заметить, - то, что ландшафты с таможенной легкой картой не могут получить тени.

    Если Вы имеете функционирующие тени, но получаете странные теневые полосы, которые продолжаются к бесконечности, читают, объяснение три примкнуло края выше. Те обычно - причина этой проблемы. Другая возможная причина этой проблемы состоит в том, что Вы не называете CreateShadowOptimizedGeometry (Shadow.htm (...)) правильно.
    Одна последняя возможная причина нефункционирующих теней - несоответствующая пропорция между камерой min_range и камерой max_range. Если результат camera.max_range/camera.min_range чрезвычайно высок, может случиться, что округляющиеся ошибки заставляют далеко обрезающий самолет пойти бесконечный далеко. Так как далеко обрезающий самолет играет, важная роль для теневого кастинга тени литейщиков не будет работать в этом случае. Чтобы установить это, Вы просто должны увеличить камера max_range уменьшения и/или камера min_range.







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


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