.::Russian Blood Community Forum::. »Blood: The Game We Playing In » Editing Center » 3D-Engines
Страниц (8): « 1 2 3 4 [5] 6 7 8 »
105. jm - 10 Августа, 2005 - 04:48:58
Цитата:
Какие, например? Если ты имешь ввиду сам движок, то я разницы не заметил, потому как все элементы игры (зеркала, этажи) присутствуют везде. Мне очень интересно.


Ну к примеру "этаж над этажом". То есть если 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 - получишь две текстуры на грани. Нет, я видимо тебя не понимаю, на пальцах давай Улыбка Цвет пикселя (не фильтрации) по сути задается комбинированием лайтмапа и оригинальной текстуры, то есть на блоке мультитекстурирования или расчитывается в шейдере. Вобщем чтобы было ясно, что ты имеешь ввиду приложи какую нибудь картинку с примером.

106. Гость - 10 Августа, 2005 - 21:11:52
Я предлагаю сделать Blood под Windows на базе мода Quake 2 или как говорил LifeKILLED на базе JFDuke, но этот путь, думаю, сложнее.

Движок Quake II:

a) Отлично оптимизирован.
б) Работает на ЛЮБОМ даже самом древнем компьютере.
в) Абсолютно без багов (я имею в виду версию 3.20)
Г) Работает на всех версиях Windows одинаково хорошо, нет никаких проблем с совместимостью.
д) Занимает смешные обьемы оперативной памяти.
e) В подтверждение всего этого скажу, что исходный код Quake 2 был открыт даже позже Quake 3, разве это ничего не говорит ? Подмигивание

Из минусов только одно: сильно устаревшая графика, но опять же, есть исходный код. Улыбка

P.S. Я занимался программированием, но программист из меня некудышный, могу писать только самые примитивные расчетные программки.

107. LifeKILLED - 11 Августа, 2005 - 03:08:25
Цитата:
Ты что, собрался рисовать лайтмапы руками ?


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

Цитата:
Вобщем забудь, расчет лайтмапов на ходу это извращение.


А я что, хотел это сделать?! Я наоборот с тобой согласен! И вообще, про извращение я первый сказал :(

Цитата:
Я предлагаю сделать Blood под Windows на базе мода Quake 2


Да, можно, и мод Блуда делали создатели Переливания2, но у них проблем накопилось... Как сказал JM, легче самому сделать рендер, а в движке Quake2 не так уж и много фичей, и их самому можно воспроизвести в два счета.

О растяжении прямоугольников я плохо объяснил... Ну и ладно, забудь. Сам подумаю.

И вот еще. Кто-нибудь слышал о проекте "Darkplace Quake 1"? Вполне рабочая штука: как порт для дума под OpenGL, только это порт для Кваки под движок Дума3 :))))))) Весит всего 2 мега, суешь в папку с первой Квакой и наслаждаешься реальными тенями и бликами, которые накладываются на корявые модельки Кваки... :) Есть ли у них исходник, и можно ли его использовать, как основу для игр с реальными тенями? Просто вопрос на засыпку...

108. jm - 11 Августа, 2005 - 04:09:18
Цитата:

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 исходники молчу Улыбка Про них все знают.

Цитата:

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


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

109. jm - 17 Августа, 2005 - 04:39:13
В течении недели Кармак обещал открыть исходные тексты Quake3 (не путать с game src). Это исходники именно движка.

110. Blackwinged - 21 Августа, 2005 - 18:10:45
Джон Кармак, ведущий программист 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

111. LifeKILLED - 15 Октября, 2005 - 00:13:43
Лично мне в исходниках интересна единственная вещь - динамические тени. Для тех, то не знает, вы можете набрать в консоли Третьей Кваки:
Код:
cg_shadows 2

, после чего под вашим персонашем будет ползать тень, покруче Шейдерной. Тень обтекает все нюансы пола и даже падает НА САМОГО ПЕРСОНАЖА (скажем, тени от рук падают на туловище). Тени работают лишь при 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" относительно подразумеваемой стены.

112. Blackwinged - 15 Октября, 2005 - 04:45:34
Цитата:
Для тех, то не знает, вы можете набрать в консоли Третьей Кваки:
Код:cg_shadows 2

, после чего под вашим персонашем будет ползать тень, покруче Шейдерной. Тень обтекает все нюансы пола и даже падает НА САМОГО ПЕРСОНАЖА (скажем, тени от рук падают на туловище). Тени работают лишь при 32-ч битах цвета и только на карточках с 64-мя мегами (у меня сейчас встроенная видюха, и на ней не идет, а раньше, со ЖиФорсом2 (64 меговая модель) шло). Хотелось бы выведать эту тайну...


О! Я этого не знал. Так, где мой shotgun под кодовым именем ASUS N6600 с 256 метрами памяти онбоард? Круто! Пойду проверять.

LifeKILLED , а что с видюшкой у тебя случилось? Померла, что ли?


(Добавление)
Сорри, но немножко оффотопа... LifeKILLED меня заинтриговал этими тенями, но мне их не врубить. рёв в три ручья Если в консоль забиваешь, то это появляется в виде как будто персонаж ляпнул это сочетание слов. смех Гуру Quake3, если здесь есть такие, как забить в консоль чтобы действие-то произошло? Или это версия 1.32 такая кривая? Шпион

(Добавление)
Ух, ещё одно добавление, но последнее, клянусь.

Включил всё-таки это дело вставкой команды напрямик в q3config. Через консоль - ни в какую. Но, к делу. Ну и весёлые же тени. Помираю со смеху! Да, от коробок с патронами, броников, оружия, armor shards и прочих фичек игры отражаются, даже изменяют свою форму. Но также и пропадают нередко, словно проваливаются. И опять - от ботов тени есть, а от меня - нет. Обокрали на тень, редиски. Голливудская улыбка

113. jm - 15 Октября, 2005 - 10:25:04
К слову. Шейдерных теней не бывает Улыбка Вернее... Вобщем неправильное название. То, о чем вы говорите есть обыкновенные стенсильные (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.
И это означает полную переработку всего - движка, моделей, текстур, уровней. Я сразу говорю - я пас Улыбка


Powered by ExBB 1.9.1
Original Style v1.5a2 created by Daemon.XP