![]() |
Ответ: [TrueHorror] - разработка
Я вообще хз че планировать. Сейчас мой движок искаропки тащит:
1) Deferred Shading 2) FXAA 3) Лайтмапы 4) Кривой скиннинг :-D 5) Экспорт сцены из макса, причем максовские источники света работают в движке 6) Звук с учетом окружения 7) Мелкие плюшки и т.п. 8 ) Физика( Bullet ) 9 ) Оптимизация Octree'ями При современных реалиях отсутствие кроссплатформенности это жирный минус. Скоро добавлю сасао ( SSAO ) Ну и АПИ простое - типа как хорсовское. При небольших затратах можно даже враппер под б3д написать. вот только мой движок на хер ни кому не нужен, кроме меня. |
Ответ: [TrueHorror] - разработка
Поэтому лучше сосредоточься на том, что нужно тебе для игры, я думаю блиц явно лишнее.
|
Ответ: [TrueHorror] - разработка
|
Ответ: [TrueHorror] - разработка
У меня опять вопросы по скелетке. Сейчас я рассчитываю вершины таким макаром:
Код:
newPosition += ( ( boneNode->globalTransform * boneNode->invBoneBindTransform ) Код:
newPosition += ( ( boneNode->globalTransform * boneNode->invBoneBindTransform ) ) boneNode->globalTransform * boneNode->invBoneBindTransform Эта строчка позволяет получить относительную трансформацию относительно первого кадра? Или трансформацию в локальных координатах? Пжлста разъясните, а то криповый момент в игру не добавить :-D |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
То есть получение вершин в мировых координатах это нормально?
|
Ответ: [TrueHorror] - разработка
имхо в этом нет ничего плохого. а есть какие-то проблемы из-за подхода?
|
Ответ: [TrueHorror] - разработка
В принципе проблем нет, я просто думал что накосячил и сделал не как все. При загрузке модели из файла создается пустая нода и к ней цепляются объекты из файла, поэтому когда модель с костями одна в файле то все норм, но если несколько, то приходится за корневую кость таскать\вертеть объект, вот такая хуня.
( блин я б к тебе в скайп постучался бы - практически один отвечаешь на мои вопросы, но вот не хочу просто так беспокоить ) |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Так как игра сделана на 60 % как и говорил выкладываю демку. Пока в игре 3 уровня из 5 задуманных.
Сюжет немного подправлен, убрал зажигалку и добавил фонарик( банально, я знаю ). В меню можно покрутить общие настройки( сенса мыши, громкость звуков и музыки ) и одна настройка графона :-D вкл\выкл FXAA Кирпичи в наличии. КАЧАТЬ ТУТ |
Ответ: [TrueHorror] - разработка
Кажется прошел, если концом считать вылетание из тоннеля в пустоту.
Ну явно не 60%, иначе итоговый вариант игры будет весьма убогим. * Короче первым делом нужно обратить внимание на физику персонажа - перемещение очень неудобное, перс постоянно цепляется за камни, шпалы, крышу (нету приседания?) и другие предметы. * Сенса странно высокая, с большим шагом, я выбирал между 5.0 и 7.5 и удобный вариант должен был быть где-то посередине. * Настройки не сохраняются, причем из главного меню, если не начал новую игру, сенса тоже не сохраняется - нужно начать и потом настраивать. * В целом по дизайну освещения видно что иногда использовался ниже описанный подход, но почему-то не всегда, например дорога до шахты - очень плохое место. Цитата:
* Включение питания перед лифтом сделано криво, надо как-то странно повернуться чтобы его включить. * Так-же перед лифтом самопроизвольно отключается фонарь. * Вообще над светом (даже больше над его дизайнерской составляющей) нужно поработать - сделать мягче переход полутени конуса фонаря, сделать блумы от ярких источников (уж hdr необязательно, ладно), может добавить какие-то эффекты линзы, в общем любыми средствами добиваться ощущения того что свет яркий, а шахта тёмная, в общем контраста. |
Ответ: [TrueHorror] - разработка
60 процентов я конечно загнул, здесь от силы жалкие 40. Нужно очень много мелких деталей добавить для более цельной картинки. К тому же никак не используется инвентарь.
Вообще я выбрал очень сложный путь - и движок пишу и игру. Причем движок без игры писать не получается - не понятно что вообще нужно будет в движке, поэтому они развиваются параллельно - из-за этого так медленно разработка идет. К тому же я "и швец, и жнец и на дуде игрец" - модели, карты, сюжет, текстурки, движок и прочее прочее лежит на мне. Таким образом я плетусь как черепаха. В принципе, если бы я взял юнити в качестве движка, то 60 процентов было бы уже готово. Насчет света я согласен, но в то же время встречный вопрос: ты бывал ночью в лесу? Где нибудь в сентябре-октябре, когда охуенно темные ночи. Так вот это пздц, вообще нереально понять куда идешь даже с фонарем. Цитата:
Странные баги с физикой постараюсь убрать. Я сам не понял после чего появились эти залипания - буду искать причину. Управление сделаю поудобнее. И настраиваемое - ну там переназначение кнопок и все такое. Про HDR. Тут такая же ситуевина как и с деферредом, думал что сложно сделать а в реальности сделал за один вечер( без оптимизаций ). Надо только начать. + сасао надо начать делать. Напрягает еще и то, что форумчане не тестируют игрушку и не высказывают предложений по её улучшению, ну кроме тебя и еще нескольких ребят( Wegox, Arton ). Возможно я не умею завлекать людей, не выкладываю скриншоты( просто не понимаю за чем? ведь это игра а не кинцо ) или жанр такой, что не каждый хочет мотать себе нервы. В общем не знаю. Из-за этого пропадает желание что-либо делать. |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
Цитата:
Цитата:
Просто попробуй сделать лестницу и посмотри сможет ли перс на неё подняться. Цитата:
Цитата:
Вот смотри чел уже несколько лет делает игрулю и вроде выкладывает всякие завлекалки или где-то технические особенности движка описывает, но толком об игре до сих пор не ясно, тем более никаких головоломок и их прохождения не выкладывается. |
Ответ: [TrueHorror] - разработка
Вложений: 1
Сделал сасао. Лепил по статье Борескова. Взял предпоследний шейдер и перевел на HLSL.
Код:
texture depthTexture; Но результат как-то не очень ( картинка в аттаче результат AO ). Киньте шейдер AO, который можно перевести ( или уже на HLSL ) без плясок с бубном. |
Ответ: [TrueHorror] - разработка
жестяк какой-то вышел. шейдер западло изучать, но выглядит будто лучи недостататочно разшумляются, а фокусируются сильно.
|
Ответ: [TrueHorror] - разработка
Вложений: 1
Ну хз. Подправил шейдер. В аттаче результат.
Вообще меня как-то не впечатляет графоний вместе с сасао. Жрет много( при 2560х1440 ( на скрине фпс с этим разрешением ) ) а толку как то совсем немного. |
Ответ: [TrueHorror] - разработка
какой-то едждетект, а не ссао, да и у борескова голимо выглядит. поищи статьи нормальные.
по факту, в идеале, что тебе надо симулировать, это кидание лучей полусферой относительно нормали поверхности во все стороны в некотором радиусе и подсчитывание сколько лучей врезалось/сколько нет. с экранными нормалями обычно лучше выходит поэтому, чем с одной глубиной, т.к. с глубиной приходится вообще как попало швырять лучи, и они менее эффективно расходуются. |
Ответ: [TrueHorror] - разработка
|
Ответ: [TrueHorror] - разработка
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
вот gl_FragColor = vec4 ( val, 1, 1, val );
когда я беру в следующем проходе из фраментного texture2D().x - будет одно значение, а texture2D().w уже другое. |
Ответ: [TrueHorror] - разработка
ну тут я только одну причину знаю - это если у тебя включена sRGB гамма коррекция при записи цвета.
тогда да, цвет будет аппаратно проходить через быстрый pow(rgb, 0.45), а альфа не будет меняться. |
Ответ: [TrueHorror] - разработка
А где она может быть включена? Я ничего не писал - открыл пустой шейдер и начал кодить ( в RenderMonkey)
|
Ответ: [TrueHorror] - разработка
хз, могу только по d3d сказать
|
Ответ: [TrueHorror] - разработка
переписал на d3d9 - там точно также =)
ты точно уверен что там w записывается не как-нибудь 1/w или 1-(1/w)? =) я вообще A16B16G16R16F использую, на неё распространяется гамма коррекция? ---- upd: всё я разобрался - надо было фон в белый цвет очищать просто :-) |
Ответ: [TrueHorror] - разработка
Цитата:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Цитата:
Цитата:
пишешь в ту же текстуру, из которой читаешь, может? какие именно различия наблюдаются в R/A? |
Ответ: [TrueHorror] - разработка
Цитата:
Кстати в общем и без нормалей получается неплохой ssao, только нужно еще размывать его немного - там алиасинг сильный, завтра доделаю. Я еще в RenderMonkey не могу MRT найти как сделать - приходится лишний проход делать, и сложно оценить производительность. Нужно потом уже на d3d еще раз собрать. |
Ответ: [TrueHorror] - разработка
а, это ж: блендинг выключай и ZEnable = false
|
Ответ: [TrueHorror] - разработка
Вложений: 4
Кароч, ссао пока отложил и занялся более важными делами. Сделал нормальную настройку в меню. Все сохраняется в конфиг и без багов.
И да поправил чувствительность мыши - теперь норм настраивается. 2Mr_F_ как ты вытаскивал нормали из макса через максскрипт? а то в ручную вычисленные нормали кал - я уже понял :-D. |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
эт я знаю, мне интересно конкретно как зная правильные нормали вершин фейса, прикрутить их к вершинам. Если smooth group разный у двух соседних фейсов( общие вершины есть ), то и нормаль в вершине будет для каждого фейса( где находится эта вершина ) другой. Как тут быть? Делать отдельный меш( чтобы заиметь вершины в одной и той же позиции, но с разными нормалями ) для этой ситуации как-то убого получается.
|
Ответ: [TrueHorror] - разработка
ну т.к. в максе раздельно живущие позиционные/нормалевские/текстурные вертексы, то я ничего лучше не придумал, чем собирать меш по фейсам, а там где все параметры совпадают, записывать как один.
|
Ответ: [TrueHorror] - разработка
хм. я так же делаю. ладно добавлю в проверку вершин на равенство , проверку совпадения нормалей.
|
Ответ: [TrueHorror] - разработка
А размер SSAO должен быть относительный? Вот если поверхность находится на расстоянии 10 метров и затемнение распространяется на 1 метр от угла, то если подойти ближе то затемнение тоже изменяется в меньшую сторону? По идее в реале распространение света не зависит от положения камеры, с другой стороны, если камера приближается то будут появляться мелкие объекты детализации и их тоже нужно затенять, а таким большим ssao уже не затенить - всё будет монотонным.
|
Ответ: [TrueHorror] - разработка
нужно стараться чтобы радиус выгдядел ворлдспейсным и не зависел от экрана.
к сожалению, не очень реально сделать ссао с гигантским радиусом на пол экрана (огромные промахи кеша, недостаток семплов), так что будет фейково уменьшаться оно при приближении камеры вблизи. есть такая тема как multi-resolution ssao, когда в нескольких разрешениях эффект рендерят разной частоты, помимо этого ещё слыхал о юзании мипов (автогенерированных с глубины) в зависимости от радиуса лучей в экране, вроде как последнее должно шустрее всего работать, я думаю попробовать. |
Ответ: [TrueHorror] - разработка
Mr_F_ еще сопутствующий вопрос, вот раньше делал блюр, пинг-понг и гаусс горизонтальный/вертикальный, так вот в обоих случаях возникала пикселизация на ровных вертикальных/горизонтальных объектах, разрешение текстур для блюра практически не влияло на результат, но ставить выше 512 как-то медленно - нужно большое ядро для блюра. Билинейную фильтрацию ставил. Хотя вот на естественных объектах типа листвы, травы ничего так выглядело.
|
Ответ: [TrueHorror] - разработка
ну не знаю уж, если в лоуресе считал, значит в том и трабла, или семплы брал не со сдвигом в 1 пиксель, а ошибочно шире.
чтобы не было ступенчатости при лоурес блюре, можно попробовать шумом семплы брать, типа poisson disk, правда может из-за того же кеша и чтения оффсетов быть тормознее регулярного. |
Ответ: [TrueHorror] - разработка
А вот например если есть две текстуры 128 и 256 и исходное изображение 1080p, первый проход делает 1080p->128 или 1080p->256 и в этот момент фильтрация может некорректно сгладить. Может попробовать так: 1080p->512->( 256<->128 )->256->512->1080p.
|
Ответ: [TrueHorror] - разработка
ну да, если ты из 1920 суёшь в 512 одной выборкой, много алиасинга вылезет, хотя на ровных поверхностях то ок должно быть.
|
Ответ: [TrueHorror] - разработка
Вложений: 2
Теперь использую максовские нормали. В аттаче скриншоты для сравнения. Сцена осталась та же, разные только нормали.
Вот кусок кода экспорта нормалей. Код:
fn WriteVector3 vec3 = Но в меню какая-то наркомания. Мне больше нраицца первый вариант с рассчитанными нормалями, но оставлю максовские - там их изменить хотя бы можно. P.S. А я смотрю вы тут без меня не скучаете :-D |
Ответ: [TrueHorror] - разработка
Цитата:
а на скрине у тебя TBN сломался Цитата:
|
Ответ: [TrueHorror] - разработка
cacheWriteFloat - пишет в файл. вообще это костыль
Код:
global cacheWriteFloat = WriteFloat Код:
global cacheGFaceRNormals = meshop.GetFaceRNormals Как TBN сломался, я ж тангенты вычисляю нормально( ты как-то кидал ссылку ). Как лечить? Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
мне причина не видна у стены нормаль не должна была поменяться никак скажи какие значения нормали у неё были и какие стали |
Ответ: [TrueHorror] - разработка
Вложений: 1
Самое интересное что в игре, на третьем уровне на том же месте( меш в этом месте копипаста ) все норм. Пруф в аттаче. А разница только в масштабе, в игре масштаб маленький - чтоб физика хорошо работатала( не как на луне ). А в меню масштаб огромный - потому что там игрок не шастает.
Upd: Цитата:
|
Ответ: [TrueHorror] - разработка
Вложений: 2
Цитата:
Я в общем немного SSAO поделал - он у меня помягче и по больше радиус. Я вообще считаю что естественный SSAO должен быть незаметный, если его видно - значит переборщили. Но там ещё я хочу над бросанием лучей поработать и с размерами радиуса в зависимости от расстояния, так как выглядит не очень пока. Я вообще по минимуму инструкций использую и возможно его получиться упаковать в 96 инструкций, то есть в версию 2.0. Вложение 20855 Вложение 20856 |
Ответ: [TrueHorror] - разработка
ну у тебя его вообще не видно - смысла в таком нет.
на нижней картинке сплошной блюр - не забывай с учётом глубины блюрить, чтоб чёткие границы объектов оставались. имхо хороший пример depth-only SSAO это Mafia 2. |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
Цитата:
|
Ответ: [TrueHorror] - разработка
Вложений: 2
Цитата:
Первый в игре, второй в меню. Видно что в игре нормалей по три штуки на вершину - то есть как надо, в меню по одной. Поправлю И еще видны ужасно наложенные текстуры :-D |
Ответ: [TrueHorror] - разработка
Чуваки, открыл для себя Object Paint в максе - можно рисовать объектами по объекту. До этого расставлял деревца и траву в ручную( первый уровень ). Я впичали, ну почему я не нашел эту мегафичу раньше? Столько времени проебал.
|
Ответ: [TrueHorror] - разработка
Я уже не в восторге от RenderMonkey, оно уже пару раз зависало, а один раз зависло вместе с видеодрайвером - естественно вся не сохранённая работа терялась. Сам по себе RM вещь неплохая, но у него давно закончился жизненный цикл и AMD его предоставляет без какой либо поддержки и обновлений, видимо от сюда и проблемы на новых системах.
Сейчас попробую найти альтернативы. |
Ответ: [TrueHorror] - разработка
Вложений: 1
Настало время сделать HDR. Кароч внизу скрин, как я понял суть методы в том чтобы в спец текстуру( например R32F ) отрисовать только HDR объекты( на скрине это лампа и отражатель прожектора ), затем размазать ее и замешать с уже отрисованным графонием. Поправьте если что не правильно сказал.
|
Ответ: [TrueHorror] - разработка
Цитата:
В моём представлении хороший HDR это когда всё в широком диапазоне, в том числе и текстуры для всех объектов. Но это нереально и обычно пользуются множеством упрощений и уж точно экономят на битности текстур. Скинь ссыль на статью по которой делаешь. |
Ответ: [TrueHorror] - разработка
|
Ответ: [TrueHorror] - разработка
хдр это когда всё хдр.
когда источники света в более-менее реальных физ диапазонах, а не от балды 0-255. глоу это уже доп эффект. по твоей ссылке у них тоже кубмапы содержат значения в широком диапазоне. то бишь там окошки в кубмапе не 1.0 яркости, а хоть 8, хоть 16, хоть 200. затемняешь такую хдрку, одни окошки остаются - такое же и в реале видишь на объектах с невысоким коэфом отражательности, вроде как зеркало не выглядят, а источники света отражают, будто спекуляр. тупо потому что он яркий дофига, и умножение на маленький коэф не убивает его до конца. |
Ответ: [TrueHorror] - разработка
Ну я хз тогда что мне нужно, запутали окончательно. Для источников света глоу обязателен.
Вообще я уже налепил эффектов, что видеопамяти много отжирает: Гбуфер - 3 текстуры A8R8G8B8, сасао( пока пылится на задворках ) - еще 1 A8R8G8B8 FXAA - еще 1 A8R8G8B8 Глоу - будет еще одна. Ну а если сюда добавить мое большое разрешение экрана( 2560х1440 ) то памяти на текстуры маловато остается( хотя DDS решит эту проблему ). Кароч, эффекты эффектами, а память не резиновая( у меня 512 Мб видеопамяти ). |
Ответ: [TrueHorror] - разработка
Цитата:
http://http.download.nvidia.com/deve...eagues_HDR.pdf http://www.uraldev.ru/articles/id/23/page/3#hdr По возможности посмотри еще у Crytek что-нибудь - там всегда хорошие презентации есть, а также GPU Gems и на AMD ATI тоже есть статьи разные. Кстати в двух словах HDR это когда диапазон яркости монитора 0-255 меньше чем диапазон яркости рендерящегося изображения и диапазон монитора как-бы плавает внутри большего диапазона отрендеренного изображения (это легко представить), таким образом подбирая наиболее хорошо сбалансированное по свету/цвету изображение (примерно также как ты в звуковом движке пытался большую амплитуду втиснуть в возможности звукового выхода). |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Если я не пользуюсь msvs, то где можно смотреть информацию, которая будет выводить при включении отладочного режима в dx control panel?
|
Ответ: [TrueHorror] - разработка
Debug View
http://technet.microsoft.com/en-us/s...rnals/bb896647 Но он на самом деле как-то коряво работает, ну например студия ловит сообщения раньше этой проги и она вообще какая-то слоупочная. |
Ответ: [TrueHorror] - разработка
Да надо просто на дх11 переходить - там всё намного лучше, в том числе и отладка. А у меня тоже под дх9 много кода понаписано.
|
Ответ: [TrueHorror] - разработка
Все забываю спросить - ты тоже игру ваяешь какую-то? А то я может чё не доглядел.
|
Ответ: [TrueHorror] - разработка
Нет я делаю движок (очередной). Игру на нём делать пока рано.
Хотя кое что отдельно пытаюсь собирать, но играбельной демки еще нет. |
Ответ: [TrueHorror] - разработка
Цитата:
* А есть гарантия что нормали перед упаковкой будут нормализованы (там в формуле в знаменателе 1 - x предполагает что нормали нормализованы) или лучше вызывать нормализацию перед упаковыванием? * И вот насчёт знака значения z, он нужен для того чтобы восстановить потерю знака x, y когда они отсекаются по [ 0, 1 ] во время записи в G-Buffer? Ведь если бы они записывались со знаком, то можно было бы восстановить z целиком из x, y. |
Часовой пояс GMT +4, время: 06:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot