Страница 1 из 11
Форум - Russian Tournament » Общение » Творчество » Unreal Tournament: Renaissance Continuation (sml[pho])
Unreal Tournament: Renaissance Continuation
DragonFlyPilot
Проект продолжает развиваться. За время моего отсутствия, я успел немного освоить графические библиотеки DirectX 9.0 Да, теперь я буду использовать именно девятку, программирование под нее гораздо проще, чем под десятую версию. Да и есть она у большинства игроков.

Мне удалось, наконец-то создать графический двиг, со следующими возможностями:

1) Теперь можно создавать неограниченные по кол-ву точек и треугольников карты.
2) Карта подгружается отдельно. Пока она статическая, в формате txt и ее можно свободно изменять.
3) Есть хороший конвеер текстур. Кол-во текстур также не ограничено.
4) Существует тестовое освещение (из камеры) по нормалям. Также организован фильтр нормалей, для сглаживания освещения по нормалям. В будущем, введу точечные и другие источники света, также загружаемые из карты.

Управление свободное, физика взаимодействия отсутствует. Собственно, потому-что тут раздел про графику:)

Необходимо протестировать версию движка, назовем ее v1.0.0. Основной вес в архиве имеют текстуры.

P.S. Обязательно отпишитесь при обнаружении ошибок или если все ОК=) Вот только НЕ ЗДЕСЬ, а в теме про обсуждение!

Добавлено (03 Апрель 11, 22:24)
---------------------------------------------
В архив вложена недостающая библиотека.

Прикрепления: Engine.rar(1174Kb)

RT - это Rammstein=)
Сообщение отредактировал DragonFlyPilot - Воскресенье, 03 Апреля 11, 22:25
noname
все ок не считая того, что я умудрился положить камеру набок =)

UnShame
Felix
Quote
Запуск программы невозможен, так как на компьютере отсутствует d3dx9_43.dll. Попробуйте переустановить программу


https://account.hirezstudios.com/tribesascend/?referral=3143364&utm_campaign=email
sanchoooo1
same( в потесть хочется(
Felix
Dragon, выложи скрины движкa.
А вообщe в идeaлe двиг:
1. Нужны стaтик мeши
2. Нужны скeлeтaл мeши
3. Нужно точeчноe освeщeниe 3 видов: обычноe кaк лaмпочкa, скaй лaйт который покрывaeт всю кaрту однородным свeтом и aнaлог прожeкторов.

Вопрос:
Какое ограничение имеют текстуры на разрешение в движке?

Добавлено (30 Март 11, 15:50)
---------------------------------------------
eщё должны быть хорошиe тeни



https://account.hirezstudios.com/tribesascend/?referral=3143364&utm_campaign=email
UnShame
DragonFlyPilot
Проект продолжает развиваться. За время моего отсутствия, я успел немного освоить графические библиотеки DirectX 9.0 Да, теперь я буду использовать именно девятку, программирование под нее гораздо проще, чем под десятую версию. Да и есть она у большинства игроков.

Мне удалось, наконец-то создать графический двиг, со следующими возможностями:

1) Теперь можно создавать неограниченные по кол-ву точек и треугольников карты.
2) Карта подгружается отдельно. Пока она статическая, в формате txt и ее можно свободно изменять.
3) Есть хороший конвеер текстур. Кол-во текстур также не ограничено.
4) Существует тестовое освещение (из камеры) по нормалям. Также организован фильтр нормалей, для сглаживания освещения по нормалям. В будущем, введу точечные и другие источники света, также загружаемые из карты.

Управление свободное, физика взаимодействия отсутствует. Собственно, потому-что тут раздел про графику:)

Необходимо протестировать версию движка, назовем ее v1.0.0. Основной вес в архиве имеют текстуры.

P.S. Обязательно отпишитесь при обнаружении ошибок или если все ОК=) Вот только НЕ ЗДЕСЬ, а в теме про обсуждение!

Добавлено (03 Апрель 11, 22:24)
---------------------------------------------
В архив вложена недостающая библиотека.

Прикрепления: Engine.rar(1174Kb)

RT - это Rammstein=)
Сообщение отредактировал DragonFlyPilot - Воскресенье, 03 Апреля 11, 22:25
DragonFlyPilot
Не могу понять, почему программа требует этот файл. И почему у меня на компе он есть, а на остальных машинах они отсутствуют. В любом случае, проблема решена простым копированием. Правда, этот файл весит 2 мегабайта, что не сравнимо по степени, с самим ядром движка.

Добавлено (03 Апрель 11, 22:28)
---------------------------------------------
Да, я не работал над движком с 28 марта) И сегодня не получиться. Возможно, завтра продолжу.


RT - это Rammstein=)
Felix
так, затестил.
ФПС огромен, там текстуры любого формата можно сувать? BMP например?
Квадраты там можно создавать и менять их размер?
Ну а пожелания - смотри пост номер 6 =)
Если тебе нужны картинки на HUD, я тебе их найду, ты только попроси


https://account.hirezstudios.com/tribesascend/?referral=3143364&utm_campaign=email
Rasiel
Давай с пнг)))))
DragonFlyPilot
Ах, да, забыл ответить на вопросы)

- Нужны стaтик мeши

Уже реализовано на DirectX, функции загрузки сужествуют, можно будет добавить, когда усовершенствую движок. У них вроде формат .X и из можно в 3DMAXе делать или др. редакторе, где есть плагины конвертации в формат статик-мешей. Но сейчас я думаю, что это тупость, они ухудшат карту своей статичностью. Я пока не знаю, как вытащить из них список треугольников.

2. Нужны скeлeтaл мeши

-Это уже надо создавать. Поговорим об этом, когда будет хоть какая-то графическая часть.

3. Нужно точeчноe освeщeниe 3 видов: обычноe кaк лaмпочкa, скaй лaйт который покрывaeт всю кaрту однородным свeтом и aнaлог прожeкторов.

В DirectX 9.0 уже есть 3 типа источников света:

1)point light или лампочка
2)direct light - аналог дневного направленного света
3)spot light - что-то вроде конуса или фонарика.
4)простое увеличение освещения, похоже на всеобщий свет.

Сейчас освещение расчитывается по нормалям (векторам) и пока нет карты освещения на текстурах. Т.е. расчет идет по точкам в углах треугольника. Это хорошо работает с direct light, но для других нужны "текстуры освещения". Вообщем, еще предстоит работать над этим.

- Какое ограничение имеют текстуры на разрешение в движке?

Это ограничего типом видеокарты. Для большинства современных, размер 256x256 или 512x512 будет максимальним. Ширину текстуры рекомндуется брать равной степени двойки, т.к. это ускоряет расчет, но это не обязательное условие работы, т.к. эта необходимость исчезла с уходом старых видях

- eщё должны быть хорошиe тeни

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

- там текстуры любого формата можно сувать? BMP например

Если с jpg работает, то bmp формат точно будет грузиться. Можешь потестить различные форматы и огласить список) Функция загрузки уже была прописана в инклудниках, я не знаю, на что она способна)

-Если тебе нужны картинки на HUD, я тебе их найду, ты только попроси

=) Спасибо. Я пока экспериментирую. Можешь сам добавить в карту (файл map.txt)

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

Хорошо, сейчас в соседнем теме дам описание формата.

И всем спасибо за тестирование движка)

Добавлено (03 Апрель 11, 23:27)
---------------------------------------------
До HUD'а еще далеко) Сделать хотя-бы основу...


RT - это Rammstein=)
Сообщение отредактировал DragonFlyPilot - Воскресенье, 03 Апреля 11, 23:24
Rasiel
Quote (DragonFlyPilot)
Если с jpg работает

че жпг работает? омг!)) прикольно
DragonFlyPilot
Со временем будет редактор, и данная статья устареет, но пока его нет, писать будем в блокноте)

Итак, из чего состоит этот формат? Тут есть 4 пункта (по порядку):

1) Данные о камере (пока, только ее начальное положение)
2) список треугольников (тут говориться, что с чем связывается для их образования)
3) список вершин (тут расставляются различные координаты)
4) список текстур (они лежат в той же папке, что и игра)

Итак, #1:

Начинается и заканчивается 1 пункт тремя координатами, записаными через пробел. Дробная часть отделяется ТОЧКОЙ, а не запятой. Это координаты по X, Y, Z.

X и Z - именно Z а не Y - координаты на плоскости, X - вправо, Z - вперед, а координата Y - ВЫСОТА.

Например:

Quote
3.0 1.0 5.0

Т.е. X = 3 Y = 1 Z = 5 и камера смещена на 3 еденицы вправо, на 1 еденицу вверх, и на 5 едениц вперед. Это не так уж и сложно.

Пункт #2:

Вначале, стоит число, задающее кол-во треугольников. Обязательно, при КАЖДОМ изменение количества треугольников ПРОВЕРЯТЬ и ИЗМЕНЯТЬ это число. Иначе, движок вылетит с ошибкой)

Кол-во треугольник может быть ТОЛЬКО ЦЕЛЫМ и ПОЛОЖИТЕЛЬНЫМ. Слишком большое также не желательно, поскольку ограничения на их кол-во не существуе и тогда:

- у компа просто не хватит памяти
- поскольку, пока рисуются все треугольники в списке, FPS будет очень мал и игра просто зависнет
- скорее всего, движок вылетит с ошибкой

Итак, число написано и перепроверено, теперь необходимо писать свойства треугольников.

В них пишется:
- Номера трех вершин, которые связываются в треугольник.
- Номер текстуры, используемой для окраски этого треугольника.

Все номера вершин и текстур отсчитываются с НУЛЯ, а не единицы! Разумеется,все они целые, положительые и не превышают число вершин и текстур (об этих числах в пунктах #3 и #4)

Пример:

Quote
1 3 0 0

Итак, берем вершину номер 1, номер 3 и 0, окрашиваем их текстурой под номером 0 и радуемся, что его увидели) Или нет? Ведь он односторонне-проецируемый! Т.е. когда вы создадите список вершин (#3), посмотрите на их координаты, вы должны помнить - Если смотреть на треугольник, визуально, точки должны идти ПО ЧАСОВОЙ СТРЕЛКЕ! Иначе, вы увидете треугольник только с обратной стороны! Итак, если номера вершин в файле записаны в порядке A B C, То да данной картинке левый преугольник будет виден (порядок обхода вершин по часовой стрелка), а правый - нет (порядок обхода против часовой):

Теперь полный пример части #2:

Quote
3
1 2 0 0
3 4 2 0
5 3 2 1

Итак, здесь 3 треугольника (кэп). НУЛЕВОЙ треугольник (порядок как и везде, с нуля!) соединяет вершины 1 2 0, первый - 3 4 2, второй - 5 3 2. Нулевой и первый окрашены в текстуру под номером 0, а второй - в текстуру с номером 1!

Но при подсчете от нуля до второго получается именно ТРИ треугольника, а не два. Это число и записывает в начало блока!

Такой тип оформления, как разделение на строки НЕ ОБЯЗАТЕЛЕН, это лишь для удобства восприятия текста в сполбик и раздения по группам. Главное, что-бы числа были отделены пробелом друг от друга и не было других посторонних символов, как точки, буквы и т.д.

И САМОЕ ГЛАВНОЕ:

Сгрупируйте все треугольники по номерам текстур, т.к. при их совпадении не происходит переключения загруженных ресурсов (текстур) и fps сильно возврастает. Т.е вот так писать нежелательно:

Quote
5
1 2 0 0
3 4 2 1
5 3 2 2
9 4 2 0
7 5 1 0

Ведь сначала используется текстура с 0 номером, потом 1, затем 2, и снова две текстуры с нулевым номером. Лучше все отсортировать:

Quote
5
1 2 0 0
9 4 2 0
7 5 1 0
3 4 2 1
5 3 2 2

А теперь про рисование четырехугольниками:

Эта фигура состоит из 2 треугольников, имеющих 2 общие вершины (одинаковые номера вершин), и форма записи такова:

A B C T C B D T - тут две общие точки B и С, раздельные A и В, и номер текстуры T (Он может быть разный у данных двух треугольников)

Можно писать и так:
A B C T
C B D T

Точки идут в порядке A, B, C, D и по ЧАСОВОЙ стрелке:

Разумеется, четырехугольник увеличивает число треугольников при добавление на ДВА.

Пример:

Quote
6
0 4 1 0 1 4 5 0
1 5 2 0 2 5 6 0
2 6 3 0 3 6 7 0

3 четырехугольника, т.е. 6 треугольников (кэп)

Конец.

Нет, теперь пункт #3:

Начинается все с кол-ва вершин. Правила теже, что и для кол-ва треугольников в #2.

Далее, свойства каждой вершины:

X Y Z U V - В начале, 3 координаты в пространстве. А потом, числа U и V - это координаты на текстуре! Т.е. положение картинки, натягиваемой на текстуру, в данной точке. Все числа записаны через ТОЧКУ!

Пример:

Quote
3
6.0 1.5 6.0 3.0 3.0
4.0 0.2 6.0 2.0 3.0
2.0 0.3 6.0 1.0 3.0

Три точки:
Нулевая: X = 6.0 Y = 1.5 Z = 6.0 U = 3.0 V = 3.0
и т.д.

X, Y, Z - как у камеры, вправо-вверх-вперед. А вот U - координата по ширине текстуры, а V - по высоте.

Фактически, U и V лежат в промежутке от 0.0 до 1.0 (от левого края картинки, до правого по U. И от нижнего края, до верхнего, по V) Вычитается целый период и остается только дробная часть, т.е. 1.5 -> 0.5, а в -3.2 -> -3.2 + 4.0 -> 0.8 Что влияет на положние пикселей... Проще просто поэкспериментировать с различными числами, что-бы понять суть чисел U и V.

Пока оставлю так, потом допишу этот пункт #3...

А теперь разгрузка мозгов и пункт #4:

Вначале, число текстур, потом их имена. Вначале имени, пишем процент %, в конце имени тоже пишем процент %. Между концом названия и началом следующего, т.е. между %% любая фигня, кроме %, можно комментарии:

Quote
4
%Metall.jpg%
%Glass.jpg%
%Plane.jpg%
%Wood.jpg%

4 текстуры, с четырьмя названиями. Название любое, CalsLock не влияет, обязательно расширение, т.е. %Metall.jpg% и %meTALL.jpg% - одинаковые текстуры.

Пока все) Пример всего, в котором уже не должно оставаться непонятного:

Quote
0.5 0.5 -1.0

2
0 1 3 0
3 1 2 0

4
0.0 0.0 1.0 0.0 0.0
0.0 1.0 1.0 0.0 1.0
1.0 1.0 1.0 1.0 1.0
1.0 0.0 1.0 1.0 0.0

1
%Texture.jpg%

Всем удачи в строительстве карт=)

Прикрепления: 2555627.jpg(27Kb) · 0413129.jpg(22Kb)

RT - это Rammstein=)
Сообщение отредактировал DragonFlyPilot - Понедельник, 04 Апреля 11, 01:21
DragonFlyPilot
Quote (Rasiel)
че жпг работает? омг!)) прикольно

Работают форматы картинок:
- png
- jpg
- bmp

А вот gif и tif не загружаются DirectX'ом)


RT - это Rammstein=)
Форум - Russian Tournament » Общение » Творчество » Unreal Tournament: Renaissance Continuation (sml[pho])
Страница 1 из 11
Поиск: