|
|
|
|
|
Профиль : |
|
Цитата:Какие, например? Если ты имешь ввиду сам движок, то я разницы не заметил, потому как все элементы игры (зеркала, этажи) присутствуют везде. Мне очень интересно.
|
Ну к примеру "этаж над этажом". То есть если Duke был 2,5D то Blood уже где то 2,8-2,85555D А вообще эта штука реализовывается очень просто - либо перерасчетов геометрии на стадии загрузки (который и так по идее должен быть) либо транслированием геометрии уже на этапе рендера (тоже просто, но нельзя забывать о контроле столкновений). Далее основное это всё таки специфичные для blood вещи вроде XSprites, XWalls и XSectors. Полного описания их у меня нет. Снова реверсировать код ?
Цитата: стараниями... Я не хочу перекроить трудоемкую работу картостроителей, я хочу наоборот улучшить и облегчить им задачу, и ни одно затенение не пропадет даром, все будет на виду, а все тени-свет я подгоню эксперементально. <<поедено слонами>> Но если все-таки решишь сделать рендер уровней, пожалуйста, оставь там возможность наложения карт теней (хотя бы ввиде пустых строчек). А уж их рассчетом займусь я когда-нибудь...
|
Это не спектрум васик Строчки втиснуть всегда можно. Да и архитектурно это не проблема. Только одно но. Ты что, собрался рисовать лайтмапы руками ? Если так, то это плохая идея. Дело дизайнера в таком деле - расставить источники освещения на уровне, а остальное сделает light компилятор. А может вообще попиксельное освещени ? Хотя на открытых пространствах при большом количестве динамических источников освещения это будет смерть игре
Цитата: придется рассчитывать заново, но ведь рассчет обычно проводится во время загрузки уровня...
|
Во первых оставь идею перерасчета лайтмапов в реальном времени. Не делается так. И не вовремя загрузки уровня, а во время создания уровня. light компилятор обычно последняя стадия обработки уровня, причем самая длительная (от нескольких часов до нескольких дней в зависимости от геометрии). Хорошо же ты придумал считать лайтмапы для уровня на лету Выдашь на экран табличку - подождите пару часиков, пока я перерасчитаю освещение. Причем перерасчитывать для одного лишь полигона не получится - ты не знаешь, как реально будет влиять источник света не пересчитав его на всю видимую геометрию. А видимую (в идеале) геометрию получить нельзя. Можно отсечь большую часть, да (опять же в зависимости от геометрии), но толку это не даст - генерация лайтмапов всё равно будет длительной. Ещё и будет зависеть от алгоритма тобой используемого. Вобщем забудь, расчет лайтмапов на ходу это извращение.
Цитата: Конечно, пока можешь не делать поддержку карт теней, ведь элементерно прокрасить вершины полигонов,
|
Это то, что по сути есть сейчас в Build'е
Цитата: Я, скорее всего, займусь рассчетом кода на основе 2-д графики, так как затенения будут рассчитываться относительно прилегающих и почти не изогнутых поверхностей.
|
Ещё раз акцентирую - это не твоя работа, это работа light-компилятора (назовём его так) расчитывать освещение. Кстати изогнутость поверхности при расчете не играет роли - всё равно у тебя всё это апроксимируется полигонами (плоскими )
Цитата: Мое личное мнение на счет моделей: пока тоже можешь не делать, так как никто еще ничего не сделал, и проверить можно будет разве что на Калебе Трансфужена, Гордоне или на Думе. В этом просто нет смысла (imho), так что не грузи себя. Ах, да! У меня в milkshape до сих пор торчит мой собственный Калеб с числом полигонов где-то 4000 (то есть, можно смело сохранять в md2, если, конечно, я доделаю анимацию). Уж во что это дело сохранить, мне как-то все равно, так что скелетная, покадровая, мне по-фигу...
|
Да я не гружу, всё уже готово просто Класс работающий с md5mesh и md5anim (doom3 форматы)
Цитата: Кстати, я давно хотел спросить. Растяжение текстур происходит относительно трех точек каждого из полигонов (если разместить координаты полигона, а затем его растянуть, получается растянутая штучка). Так вот, нельзя ли как-нибудь сделать так, чтобы текстура растягивалась относительно четырех вершин прямоугольника (или относительно двух противоположных линий этого четырехугольника)? Я замышлял такую штучку в начале этой темы, как размытые тени реального времени, и то, что меня беспокоило, это то, что для создания границ света-тени требуется градиентное размытие именно на основе четырехугольников (линия свет-тень при размытии должна образовать четырехугольник). Если попробовать соединить два полигона, образовав из них квадрат, и попробовать присвоить правым точкам белый цвет, а левым - черным, то так тоже можно... Но если объект находится под углом по отношению к источнику света, такие линии превращаются в произвольную трапецию (две стороны-границы направлены в направлении буквы "V" друг к другу), то градиентное размытие между этими линиями превращается в букву "Г" (на стыке полигонов). Это смотрится просто ужасно... А можно ли сделать "правильное" размытие в прямоугольнике? (я имею ввиду аппаратно, хотя, если есть возможность сделать это программно без ощутимой траты ресурсов, то скажи, как...) Я имею ввиду, можно или нельзя, и за счет чего? Только, пожалуйста, не надо критиковать это в отношении траты ресурсов, я и сам знаю, что над оптимизацией и урезанием "заетости" такого движка придется посидеть очень и очень долго
|
Я плохо понимаю о чем ты Есть вершины и есть текстурные координаты (в пределах от 0,0(левый верхний угол) и до 1,1(правый нижний угол) ). Рисовать ты можешь как угодно и чем угодно. Квады (прямоугольники) в конечном итоге всё равно разбиваются тесселятором на два треугольника. Посмотри примеры по интернету - на том же http://nehe.gamedev.net Там полно текстурированных кубиков и никаких искажений или растяжений при наложении текстур не наблюдается. А там эти кубики состоят из треуголников Ты просто устанавливаешь текущую текстуру, и вместе с координатами скармливаешь видеокарте текстурные координаты. Неясен вопрос на счет растяжения. Тебе нужен тайлинг ? Задай текстурные координаты более 1.0, скажем 2.0 - получишь две текстуры на грани. Нет, я видимо тебя не понимаю, на пальцах давай Цвет пикселя (не фильтрации) по сути задается комбинированием лайтмапа и оригинальной текстуры, то есть на блоке мультитекстурирования или расчитывается в шейдере. Вобщем чтобы было ясно, что ты имеешь ввиду приложи какую нибудь картинку с примером.
----- Shine on you crazy diamond WBR jm ( aka x-ray aka ведьМЫШ ) http://vedmysh.livejournal.com |
|
Всего записей: 528 : Дата рег-ции: Март 2005 : Отправлено: 10 Августа, 2005 - 04:48:58 |
|
|
|
|
|
|
Я предлагаю сделать Blood под Windows на базе мода Quake 2 или как говорил LifeKILLED на базе JFDuke, но этот путь, думаю, сложнее.
Движок Quake II:
a) Отлично оптимизирован. б) Работает на ЛЮБОМ даже самом древнем компьютере. в) Абсолютно без багов (я имею в виду версию 3.20) Г) Работает на всех версиях Windows одинаково хорошо, нет никаких проблем с совместимостью. д) Занимает смешные обьемы оперативной памяти. e) В подтверждение всего этого скажу, что исходный код Quake 2 был открыт даже позже Quake 3, разве это ничего не говорит ?
Из минусов только одно: сильно устаревшая графика, но опять же, есть исходный код.
P.S. Я занимался программированием, но программист из меня некудышный, могу писать только самые примитивные расчетные программки.
|
|
|
|
|
|
WWW : Профиль : |
|
Цитата:Ты что, собрался рисовать лайтмапы руками ? |
Не-а, эксперементировать с формулами, чтобы выглядело как можно ближе к фото, и составлять програмку, заполняющую бюферы тюней. Ну, что мне, по три раза что ли одно и то же повторять надо?!
Цитата:Вобщем забудь, расчет лайтмапов на ходу это извращение. |
А я что, хотел это сделать?! Я наоборот с тобой согласен! И вообще, про извращение я первый сказал :(
Цитата:Я предлагаю сделать Blood под Windows на базе мода Quake 2 |
Да, можно, и мод Блуда делали создатели Переливания2, но у них проблем накопилось... Как сказал JM, легче самому сделать рендер, а в движке Quake2 не так уж и много фичей, и их самому можно воспроизвести в два счета.
О растяжении прямоугольников я плохо объяснил... Ну и ладно, забудь. Сам подумаю.
И вот еще. Кто-нибудь слышал о проекте "Darkplace Quake 1"? Вполне рабочая штука: как порт для дума под OpenGL, только это порт для Кваки под движок Дума3 :))))))) Весит всего 2 мега, суешь в папку с первой Квакой и наслаждаешься реальными тенями и бликами, которые накладываются на корявые модельки Кваки... :) Есть ли у них исходник, и можно ли его использовать, как основу для игр с реальными тенями? Просто вопрос на засыпку...
----- Я убиваю не рукой; тот кто убивает рукой, забыл лицо своего отца. Я убиваю сердцем. |
|
Всего записей: 1694 : Дата рег-ции: Июль 2004 : Отправлено: 11 Августа, 2005 - 03:08:25 |
|
|
|
|
Профиль : |
|
Цитата: e) В подтверждение всего этого скажу, что исходный код Quake 2 был открыт даже позже Quake 3, разве это ничего не говорит ?
|
Чтобы вы знали мой юный друг - исходные тексты Quake3 недоступны и по сей день. То, что доступно вам это game src а не исходники движка. В свое время были открыты исходные тексты progs.dat (Quake1) и исходные тексты gamex86.dll (в случае Intel PC варианта) и это не значит что был открыт исходный текст движка. Вы, я надеюсь, понимаете, что использование q2 повлечет за собой переделку ВСЕГО контента. Видимо не совсем. По сути это будет то же самое, чем занимаются трансфюженовцы (или трансклюженовцы). У них Q1. Только архитектурно Q2 движок не очень далеко ушел от Q1. Поверьте мне как человеку написавшему статью по BSP алгоритмам и рендеры Q1, Q2 и Q3 уровней. Вобщем я буду продолжать гнуть свою линию. А вы можете брать чужое
Цитата: И вот еще. Кто-нибудь слышал о проекте "Darkplace Quake 1"? Вполне рабочая штука: как порт для дума под OpenGL, только это порт для Кваки под движок Дума3 )))))) Весит всего 2 мега, суешь в папку с первой Квакой и наслаждаешься реальными тенями и бликами, которые накладываются на корявые модельки Кваки... Есть ли у них исходник, и можно ли его использовать, как основу для игр с реальными тенями? Просто вопрос на засыпку...
|
На сколько я знаю это по сути новая игра, просто на базе Q1. А зачем тебе исходники ? Я тебе пачку таких подгоню, гораздо более простых на восприятие А вообще на счет дарк плейс не знаю, глянь на их сайте. Есть сурсы Tenebrae - вот это уже именно римейк Q1 - стеньсильные тени, попиксельное освещение. Просто я не понимаю, что ты в этих исходниках хочешь увидеть. Там ничего нового нет. А учиться начинать лучше с чего нибудь попроще. А вообще есть ещё исходники Cat Mother, HL2 (не очень свежие), Kreed (не очень свежие) и ещё нескольких коммерческих игр. Про id исходники молчу Про них все знают.
Цитата: Не-а, эксперементировать с формулами, чтобы выглядело как можно ближе к фото, и составлять програмку, заполняющую бюферы тюней. Ну, что мне, по три раза что ли одно и то же повторять надо?!
|
Умные люди говорят, если вас не поняли, значит вы недостаточно хорошо излагаете. А что, сложно так повторить ? А что ты подразумеваешь под буферами теней тут ?
----- Shine on you crazy diamond WBR jm ( aka x-ray aka ведьМЫШ ) http://vedmysh.livejournal.com |
|
Всего записей: 528 : Дата рег-ции: Март 2005 : Отправлено: 11 Августа, 2005 - 04:09:18 |
|
|
|
|
Профиль : |
|
В течении недели Кармак обещал открыть исходные тексты Quake3 (не путать с game src). Это исходники именно движка.
----- Shine on you crazy diamond WBR jm ( aka x-ray aka ведьМЫШ ) http://vedmysh.livejournal.com |
|
Всего записей: 528 : Дата рег-ции: Март 2005 : Отправлено: 17 Августа, 2005 - 04:39:13 |
|
|
|
|
Профиль : |
|
Джон Кармак, ведущий программист id Software, сдержал своё обещание, данное на последнем фестивале QuakeCon, и выпустил иходный код игры Quake III под лицензией GPL. Кроме исходного кода самой игры, в архиве содержится исходный код редактора карт Q3Radiant.
Движок игры Quake III выпущенной в 1999 году, послужил основой для целого ряда игровых проектов, и вплоть до недавнего времени был одним из основных графических движков, доступных на рынке. Сейчас id Software выдвигает в качестве замены графический движок Doom 3.
Взять исходники можно здесь - ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip
----- [4Game.ru] Ulthar |
|
Всего записей: 402 : Дата рег-ции: Июль 2005 : Отправлено: 21 Августа, 2005 - 18:10:45 |
|
|
|
|
WWW : Профиль : |
|
Лично мне в исходниках интересна единственная вещь - динамические тени. Для тех, то не знает, вы можете набрать в консоли Третьей Кваки: Код: , после чего под вашим персонашем будет ползать тень, покруче Шейдерной. Тень обтекает все нюансы пола и даже падает НА САМОГО ПЕРСОНАЖА (скажем, тени от рук падают на туловище). Тени работают лишь при 32-ч битах цвета и только на карточках с 64-мя мегами (у меня сейчас встроенная видюха, и на ней не идет, а раньше, со ЖиФорсом2 (64 меговая модель) шло). Хотелось бы выведать эту тайну...
ТЕПЕРЬ ОТВЕЧУ JM'У http://www.bloodgame.ru/forum/topic.php?forum=1&topic=51&start=2
Цитата:Давай определимся с рельефными объектами полностью. Ты хочешь честные геометрические формы или же обойдешься фейком вроде bump mapping'а (или лучше нормал мэппинга). Первое не применяется пока нигде |
Знаю, поэтому и предлагаю честную геометрию. Далее, ты говоришь о понижении детализации. Ты имеешь ввиду, на расстоянии? Я пока не думал об этом, но первое мое предложение - просто плавно растворять геометрию при большом удалении, как исщезают балконы домов в Gta3, и при полной невидимости их попросту стирать. Конечно, это какое-то извращение, но что делать-то... Если ты имел ввиду оптимизацию самих моделей, то это еще в 3dsmax'е можно сделать перед сохранением
Что касается дисплейсменда, то по-моему это полная ерунда, поскольку я видел эту лажу в 3dsmax. Полигонов ОЧЕНЬ много, а толку ОЧЕНЬ м ало. Поскольку рассчет ведется относительно растровой картинки, на каждый для каждого пиксела ресуется два полигона квадратиком... Все торчит, выпирает... Ужас, короче.
Цитата:Кстати первый назовем его так же "геометрический способ" по моему тоже не имеет смысла без динамического освещения. |
Как же, а подойти и посмотреть на подоконники и ручки шкафоф? Помоему, это добавит нашему порту большое привосходство над другими... а мы им исходников не дадим
Цитата:Работы в и том и в другом случае будет много. |
Не сыпь мне соль на рану... Ты чертовски прав...
Вообще, по-конкретнее разъясню механизм. Как я предполагаю, чудным механизмом будут использоваться те же файлы карт, поскольку для загрузки этого кошмара потребуются только параметры секторов и отдельно 3d-модели "стен". (предлагаю сделать свой формат, без всяких там UVW, текстур и объектов, а простое перечисление координат полигонов). В результате при загрузке карты (или при обработке их чем-нибудь вроде утилитки "glbsp" JDoom'а) будут создаваться два варианта карт: с этими моделями и упрощенная версия без них. А уже сам движок будет вблизи использовать первый вариант, а на указанном расстоянии заменять его вторым.
Что касается системы наложения таких вот объектов. Система Displacement'а была бы самым легким вариантом, но поскольку мне чертовски хочется очистить картинку от лишних полигонов, я предложил накладывать на стены сложенные как бы кафельной плиткой взятые за основу модели. (контуры моделей будут совпадать при совмещении левого и правого варианта, поэтому, если на огромной стене сложить в клеточном порядке эти модели, получится одно целое, без дыр). Но в этом случае (с моделами вместо Displacement'а) придется, по избежании "дыр" на краях стен и между разными текстурами (для них будут использоваться разные объекты, а значит "дыр" на стыке отсеченных краев будет не избежать) не просто отсекать полигоны, выходящие за край стены, но и дополнять их новыми полигонами, закрывая эти "дырки". В общем, мы тут имем полный джентельменский набор головной боли. Я попробую сделать все это, когда буду готов, а пока можешь относиться ко всему этому, как к глупой шутке... Но, в конце концов, есть полигоны, так почему же с ними не почумиться?
Ах, да. Как я уже сказал, текстура будет рассчитываться самым варварским способом - по координатам "x" и "y" относительно подразумеваемой стены. |
|
Всего записей: 1694 : Дата рег-ции: Июль 2004 : Отправлено: 15 Октября, 2005 - 00:13:43 |
|
|
|
|
Профиль : |
|
Цитата:Для тех, то не знает, вы можете набрать в консоли Третьей Кваки: Код:cg_shadows 2
, после чего под вашим персонашем будет ползать тень, покруче Шейдерной. Тень обтекает все нюансы пола и даже падает НА САМОГО ПЕРСОНАЖА (скажем, тени от рук падают на туловище). Тени работают лишь при 32-ч битах цвета и только на карточках с 64-мя мегами (у меня сейчас встроенная видюха, и на ней не идет, а раньше, со ЖиФорсом2 (64 меговая модель) шло). Хотелось бы выведать эту тайну... |
О! Я этого не знал. Так, где мой shotgun под кодовым именем ASUS N6600 с 256 метрами памяти онбоард? Пойду проверять.
LifeKILLED , а что с видюшкой у тебя случилось? Померла, что ли?
(Добавление) Сорри, но немножко оффотопа... LifeKILLED меня заинтриговал этими тенями, но мне их не врубить. Если в консоль забиваешь, то это появляется в виде как будто персонаж ляпнул это сочетание слов. Гуру Quake3, если здесь есть такие, как забить в консоль чтобы действие-то произошло? Или это версия 1.32 такая кривая?
(Добавление) Ух, ещё одно добавление, но последнее, клянусь.
Включил всё-таки это дело вставкой команды напрямик в q3config. Через консоль - ни в какую. Но, к делу. Ну и весёлые же тени. Да, от коробок с патронами, броников, оружия, armor shards и прочих фичек игры отражаются, даже изменяют свою форму. Но также и пропадают нередко, словно проваливаются. И опять - от ботов тени есть, а от меня - нет. Обокрали на тень, редиски.
----- [4Game.ru] Ulthar |
|
Всего записей: 402 : Дата рег-ции: Июль 2005 : Отправлено: 15 Октября, 2005 - 04:45:34 |
|
|
|
|
Профиль : |
|
К слову. Шейдерных теней не бывает Вернее... Вобщем неправильное название. То, о чем вы говорите есть обыкновенные стенсильные (stencil или буфер трафарета если угодно) тени те же самые что составляют основу теней в Doom3. На счет работы на 64 мегабайтах не очень уверен. Думаю что и на TNT это будет работать Вопрос только с какой производительностью На счет 32 бит ты прав. Объясняется это просто - Nv карты поддерживают аппаратный стенсил только в 32 битном цвете. Единственное в Q3 похоже есть самозатенение с твоих слов Вообще тени это очередная holywar в 3д графике - кто то предпочитает stencil shadows, кто то shadow mapping. У обоих методов есть свои плюсы и минусы. Один из главных минусов ss это нагрузка Попробуйте отключить ss в doom3 и вы увидите как сильно вырастет fps
Стеньсильные тени далеко не новинка. Не знаю как в Q3, а к Unreal (первому !) давным давно был патч для TNT карт в котором была введена тестовая поддержка стеньсильных теней. Во всеми нами любимом Lithtech (Blood2/Shogo) тоже были стенсильные тени Только там некоректно отрабатывался овердро полигонов результате на тенях лезли артефакты. Во всяком случае в Shogo так было точно.
Цитата: Знаю, поэтому и предлагаю честную геометрию. Далее, ты говоришь о понижении детализации. Ты имеешь ввиду, на расстоянии? Я пока не думал об этом, но первое мое предложение - просто плавно растворять геометрию при большом удалении, как исщезают балконы домов в Gta3, и при полной невидимости их попросту стирать. Конечно, это какое-то извращение, но что делать-то... Если ты имел ввиду оптимизацию самих моделей, то это еще в 3dsmax'е можно сделать перед сохранением
|
Ох. Я надеюсь ты отдаешь себе отчет при слове "честная геометрия" и сколько это потянет за собой работы Да именно - на расстоянии. Если быть точным то скорее всего придется использовать что нибудь вроде PM(progressive meshes) и его аналогов. То, что используют ребята в Сталкере и Дальнобойщиках 3. Это то, что я знаю. Вероятнее всего этот же алгоритм используется в том же Serious Sam i/ii и многих других игрушках. С другой стороны использовать LOD алгоритмы для замкнутых пространст (приимущественно, ведь всё в Blood это сектора) это наверное оверкил. Всё равно там придется использовать что нибудь вроде BSP или Octree или просто порталов. А это очень сильно сократит количество отображаемой геометрии.
Цитата: Что касается дисплейсменда, то по-моему это полная ерунда, поскольку я видел эту лажу в 3dsmax. Полигонов ОЧЕНЬ много, а толку ОЧЕНЬ м ало. Поскольку рассчет ведется относительно растровой картинки, на каждый для каждого пиксела ресуется два полигона квадратиком... Все торчит, выпирает... Ужас, короче. |
Я бы поостерегся применять терминологию 3ds max. Слово дисплейс очень распространено. Я бы дал тебе ссылочку на презентации ATI с одного из последних GDC. Но боюсь я не помню где и что. Если коротко - дисплейсмент меппинг это вытягивание пикселей вдоль нормали к плоскости полигона на базе некоторой карты высот. Но могу и ошибаться. Как я уже говорил - я это не щупал вообще.
Цитата: Что касается дисплейсменда, то по-моему это полная ерунда, поскольку я видел эту лажу в 3dsmax. Полигонов ОЧЕНЬ много, а толку ОЧЕНЬ м ало. Поскольку рассчет ведется относительно растровой картинки, на каждый для каждого пиксела ресуется два полигона квадратиком... Все торчит, выпирает... Ужас, короче.
|
Все будет зависеть на сколько я понимаю от качества карты высот.
Цитата: Система Displacement'а была бы самым легким вариантом, но поскольку мне чертовски хочется очистить картинку от лишних полигонов
|
Опять же не смешнивай понятия 3ds max с реальной игрой. Ты не будешь делать displacement mapping в реальном времени. Ты подготовишь всё заранее.
А вообще некислые у тебя желания - стеньсильные тени, бампмеппинг, попиксельное освещение. Ничего не напоминает ? Это уже Doom3. И это означает полную переработку всего - движка, моделей, текстур, уровней. Я сразу говорю - я пас
----- Shine on you crazy diamond WBR jm ( aka x-ray aka ведьМЫШ ) http://vedmysh.livejournal.com |
|
Всего записей: 528 : Дата рег-ции: Март 2005 : Отправлено: 15 Октября, 2005 - 10:25:04 |
|
|
|