Вопрос про редактор уровней

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Вопрос про редактор уровней

Сообщение d3drm » 15.12.2006 (Пт) 13:30

Привет всем, давно не виделись!

После долгого отсутствия (диск со всеми данными по программированию iR был, казалось, безвозвратно утерян, но удалось все-таки эти данные оживить) вот я снова появился тут =)

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

Первые вопросы касаются текстур. Каким образом следует реализовать возможность натягивать текстуры на объекте на карте?

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

Жду Ваших комментариев, уважаемые друзья по программированию )
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 15.12.2006 (Пт) 14:53

Какие люди :)

Мне кажется, наилучший вариант - как в максе.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 15.12.2006 (Пт) 16:24

Поддерживаю nekeda... Нужна возможность задавать TU,TV в редакторе материалов... Который тоже хотелось бы увидеть ибо не у всех поддерживает Parallax!
ЗЫ. Наконец-то ты появился! :D
#define ROFL 0xDDDD

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 15.12.2006 (Пт) 16:28

Да, появился =) Всех рад видеть )

Я с редакторами плохо знаком, даже с 3дс максом :oops:

Обьясните плиз, детально, если можно со скринами, как надо делать =)

На счет паралакса. ИМХО, это пока технология будущего, пока апаратные средства сковывают полет фантазии и ловкость кривых рук (моих), нормальную реализацию паралакса видел только на 3.0 шейдерах, я не потяну =)

Вернемся к редактору (который, скорее всего, скоро появится тут), прошу Вас детально рассказать об этой опции, если не сложно...
ХЎ

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 15.12.2006 (Пт) 16:39

Должно быть коно Material Editor. В нём кнопкой можно натянуть текстуру на выбраный объект и выбрать нужные карты(diffuse,specular,normal)
Изображение
Вот на скрине, как сделано в MAX... Точнее самое главное :)
#define ROFL 0xDDDD

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 15.12.2006 (Пт) 16:53

Изображение


Ы. пока фоткал опередили :roll:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 15.12.2006 (Пт) 17:11

Кажется въехал =) Спасибо огромное ))) Как сделаю - выложу редактор, если будут вопросы - отпишусь =)
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 16.12.2006 (Сб) 10:42

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

TRIALGLEFAN неспособен отобразить некоторые невыпуклые многоугольники.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 16.12.2006 (Сб) 13:03

Mikle
Я всё равно думаю что TRIANGLEFAN оптимальный вариант для закрытых пространств... В BSP используеться именно он, и всё отлично рисуеться! :) Кстати кто видел карты в Doom III Там тоже TRIANGLEFAN!
#define ROFL 0xDDDD

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 17.12.2006 (Вс) 22:31

TRIANGLEFAN используется в картах потому, что технологии BSP и PVS предполагают, что каждый многоугольник будет лежать в одной плоскости, при этом многоугольник должен быть выпулым. Ввиду этого проблема с невозможностью отобразить невыпуклые многоугольники - отпадает. В общем всю прелесть TRIANGLEFAN'а я ощутил, когда строил функцию вырезания примитивов друг из друга (кстати, работает неплохо =).

В общем, как будет на что глянуть - сразу выложу =)
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 17.12.2006 (Вс) 22:54

Вот далось вам это BSP :P

по моему, самый удобный инструмент для рисования чего бы то ни было, в том числе уровней - всё тот же 3д макс :) не понимаю почему бы не нарисовать всю сцену там, и не загрузить её из 3ds файла..

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.12.2006 (Пн) 1:00

nekeda
+545654 :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 4:16

nekeda, в том, что ты не понимаешь, нет ничего плохого. плохо если не хочешь понять. BSP - это алгоритм отсечения невидимых граней, 3Д макс - инструмент для рисования моделей. Все равно что сравнивать ж-у с п-цем, в общем =)

То есть можно рисовать сцену хоть в пейнте (серьезно), не перед тем как выводить ее на экран следует просчитать дерево видимости, иначе будет не игра, а слайд шоу.

Теперь относительно самого вопроса, почему не нарисовать сцену там? Потому, что формат, который предоставляет нам 3Д Макс довольно сложен для создания БСП на его основе. Я НЕ умею строить дерево БСП для формата 3дс, поэтому я и делаю собственный редактор, в котором формат примитивов будет соответствовать моим нуждам (большим или скромным =)

Так что, уважаемые, низачот вам двоим за последние 2 постинга =)
ХЎ

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.12.2006 (Пн) 4:27

Мне не надо низачота. Фтопку само отсечение :)
По крайней мере, максимим на что я пойду, так это конус видимости (с углом раствора = FOV), с условием, что рендерится только то что в конусе.

Так что я за саму идею построение уровня из мэшей. :)

Собственно, если уж взялся писать редактор то обязательно делай его с кистями. Т.е. чтобы можно было взять "кисть-кубик", поставить её на грань чего-либо, и вырезать из этого чего-либо куб. Или же наоборот добавить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 4:33

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

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 18.12.2006 (Пн) 9:15

Выбор самого удобного на данном этапе инструмента может обернуться неудобством дальше. Сначала человек рисует всю сцену в максе, а потом появляются темы:
"Проект почти готов, только нужно оптимизировать и прикрутить физику, подскажите, как?"

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 18.12.2006 (Пн) 12:44

Я собственно работал с давольно таки не маленькими сценами.. попробую совсем уж большую ради интереса.

Всегда казалось, что стандартных средств Дх хватает с головой для вывода не всей сцены, а нужных её частей.

з.ы. да, кстати, надеюсь понятно что я не имел ввиду грузить всю сцену в один файл и работать с одним мешем? :)

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 14:34

DX не предоставляют никаких средств оптимизации, относительно отсечения невидимых граней. Про какую большую сцену ты говоришь? Я тебе могу показать как будет рисоваться уровень из HL (первой) без оптимизации, при этом будет слайд шоу даже у тебя на компьютере. Что уж там говорить об огромных размеров карте (как сейчас принято) с огромной кучей эффектов?
ХЎ

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 18.12.2006 (Пн) 14:35

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

Что-то типа Intersect/Deintersect в Unreal? Я тоже над ткаой функцией задумывался, по идее должна иметть довольно красивое (хоть и длинное) решение через отсечение треугольника плоскостью.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 18.12.2006 (Пн) 14:51

хм. введём, скажем, две переменные X и Y. (X<Y). Задаются пользователем в настройках.

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

Те объекты, что лежат на расстоянии (до камеры) больше Х - на них кладём в два раза меньшую текстуру (mipmap), а так же не рендерим мелкие детали. (скажем если речь о доме - дом рендерим, антену на крыше - нет)

Те, что лежат на расстоянии большем Y - не рендерим вообще.
При этом, у нас остаётся нужный нам фон.

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.12.2006 (Пн) 15:21

d3drm
Можно взглянуть на интерморду твоего редактора?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 15:25

nekeda, а как на счет закрытых помещений?

Tarantul, я сначала реализовал двумерный случай вырезания одной выпуклой фигуры из другой, затом спроецировал на 3Д. То есть найдя пересечение 2х фигур в 3Д, я просто переношу все в 2Д и делаю обрезку там, затем снова перевожу в 3Д.


Хакер, скоро будет можно =) Получается примерно один в один с редактором Unreal =)
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 18.12.2006 (Пн) 15:33

d3drm
а чем они отличаются от открытых?

ты имеешь ввиду не рендерить комнату, если человек находится в коридоре, за стенкой?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 15:35

nekeda, хотя бы этот случай =) как ты буждешь решать такую задачу? )
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 18.12.2006 (Пн) 15:43

я не буду редерить внутренние объеты комнаты, если координаты камеры находятся за её пределами.

...но я буду их рендерить, если луч камеры пересекается с прямоугольником, совпадающим по координатам с дверью. (Человек смотрит на комнату через дверной проём из коридора)

Как вариант, рендерить только крупные объекты и не рендерить детализацию.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 16:06

nekeda писал(а):...но я буду их рендерить, если луч камеры пересекается с прямоугольником, совпадающим по координатам с дверью. (Человек смотрит на комнату через дверной проём из коридора)


вот тебе и PVS, а ты сам спрашиваешь, нафига он нужен.
ХЎ

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.12.2006 (Пн) 16:20

d3drm
Неее... в унреальном я хрен разобрался... лучше делать один в один с максом.

ЗЫ. Вот мой, если кому интересно:

ЗЫ2. Пусть вас не смущает "кривизна пространства", оно так понятнее левелмейкерам.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 18.12.2006 (Пн) 16:40

Я не спрашиваю, я рассуждаю на тему.. )) подобные методы оптимизации вывода безусловно необходимы, но я не вижу проблем с их применением к обычной сцене..

Я, собственно, ни на чём не настаиваю :) Разумеется, тебе виднее как писать iRender :) это так, мысли вслух..)

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 18.12.2006 (Пн) 17:06

Хакер, посмотрел, выглядит мощно =) Какова была цель создания редактора?
ХЎ

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 18.12.2006 (Пн) 18:47

Неее... в унреальном я хрен разобрался... лучше делать один в один с максом.


Я например, перед тем как начал программировать, сделал десятка два карт для unreal (на nalicity.beyondunreal.com), как по мне, так это самый простой и эффективный тип редактора :), лучше всего для создания игр

След.

Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList  
cron