Изучаю DromEd

Автор Romero, 01 апреля 2012 15:03:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Force

[off]Zontik, у меня подобная фигня с утечками памяти. Место нашел, устранил, а всё равно где-то течет и неясно где же еще. Я, правда, тяжелую артиллерию еще не применял, пока решил повременить, вдруг само отыщется :cheesy:, но, возможно, придется. Основные превентивные меры вроде как главную утечку устранили, но продолжает течь 64-битная версия, что странно. 32 вроде успокоилась.[/off]

Zontik

[off]Прямо какой-то форум сантехников.[/off]
Дайте глазам отдохнуть! Тёмное место

nemyax

[off]Лучше сантехника, чем "притомился" и "дичь".[/off]
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Maxim

#573
ЦитироватьСтало быть надо каким-то образом уменьшить общее количество вершин.
Да нечего там уменьшать! Там полный примитив. По-быстрому накинуты пара стен и пара зданий. Миссия вводная, своего рода промежуточное звено и к ней когда угодно вернуться можно. Иногда заглядываю, пару комнат сделаю и сваливаю. Основные работы идут в других миссиях. Но именно эта зараза и самая странная. Я создавал более комплексные строения, в том числе со всякого рода поворотами кистей, с узкими зазорами, образующимися от, например, делания небольших срезов на краях зданий (буквально одна клеточка при сетке в 11) и не было проблем. А когда они возникали — я сам находил и поправлял свои косяки. А тут на ровном месте! На самом деле я давно уже мог просто переделать, пересобрать там большие кисти пространств или вообще целую область с нуля. Но мне чисто любопытно и принципиально узнать что это за паразит такой завёлся.
Цитироватьно в пределах этой области перепробовал, кажется, всё. И безуспешно.
Во! Ну тоже самое. И ты тоже не один месяц с этим боролся. Кроме разве что этого:
Цитироватьуже точно зная, где находится проблемная область
У меня почему-то эти области "скачут" как на Майдане. То в одном месте, то вообще в другом. Причём цифра одна и та же 2741. Короче, это послание свыше, что в 2741 году настанет Конец Света. Вот так, тафферюги.

Хм... говоришь локализовал участок после расстановки освещения? А как это выглядело, можешь описать? Типа выделялось тенью? А что если создать крупный omni light и пройтись им по потенциальным областям? Прокатит?
У тебя, ты говоришь, всё было выровнено по сетке, да ещё и крупной, но это не помогло. Вот это "с точки зрения движка" меня прикалывает. Пойди пойми какая у него там точка зрения...
Вот ещё такой вопрос. Я — любитель создавать сначала предполагаемое большое пространство, а потом в нём уже накидывать твёрдые/воздушные кисти. Заметил, что бывало ловил такую же ошибку на стыках таких больших кистей. Правда, я устранял их, но всё же... Как вообще движок - любит или не любит подгонку таких больших массивов между собой? В принципе, в Оригинале большие пространства тоже создавались как общие, а потом уже внутри них работали. Да, я понимаю, что такое есть у многих, но в тоже время встречал при просмотре в редакторе такие миссии у людей, где всё как бы "выдолблено в скале" или большие куски поделены на более мелкие и подогнаны друг к другу, образуя большой массив. Интересно, в таком подходе меньше ошибок?
Still they talk anyway
When there's nothing to say
There's so much said in empty words...

nemyax

Цитата: Maxim от 05 октября 2018 15:52:32Причём цифра одна и та же 2741.
Цифра одна и та же, потому что ошибка одна и та же. Ты читал, чё я тебе выше ответил про цифру?
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Zontik

Я не настолько хорошо это помню. И не факт, что это вообще было связано с освещением, просто пока развешивал фонари - смотрел на мир немного под другими углами и более внимательно. Так что не надо ничего делать с освещением специально.
ЦитироватьПойди пойми какая у него там точка зрения...
Ты же знаешь, что движок оперирует координатами центров кистей. А помимо центров у них есть еще и стороны, и вершины, и их положение в пространстве автор с помощью цифр напрямую контролировать не может. А если фигура чуть сложнее параллелепипеда - то и вообще никак не может.
Локализуй, в общем, потихоньку, только не забывай, что проблема может оказаться и в самой большой из кистей, которая даже не входит в область целиком. И еще - в зависимости от проведенной границы области проблемное место может немного скакать туда-сюда.
А могилки с номером 2741, похоже, не будет... Некого там хоронить-то.
Дайте глазам отдохнуть! Тёмное место

Maxim

#576
Я отредактировал своё сообщение выше, если что. Там ещё вопросы.
nemyax Конечно читал. Но кажется ты не о том говоришь. Каждая проблемная зона обладает своим id клетки и писаться может разное число, им соответствующее. Короче, Зонтик в теме. Щас всё разрулит
Still they talk anyway
When there's nothing to say
There's so much said in empty words...

Zontik

Maxim, послушай специалиста. Не меня. 2741 - номер строки в программе. Тебе это ничего не дает, если ты только не собираешься переписывать движок.
Насчет подхода - выемка в твердом теле как бы считается более оптимальной для движка. Правда, количество ошибок зависит в основном не от этого, просто при методе строительства в Большой Пустоте чуть повышается (на проценты) вероятность их появления, поскольку увеличивается количество ячеек.
Но чтобы построить хотя бы одну городскую улицу таким методом, нужно какое-то нечеловеческое 3D-мышление.
Поэтому строй как больше нравится, иначе наляпаешь ошибок просто из-за неудобства.
Дайте глазам отдохнуть! Тёмное место

Force

Maxim
ЦитироватьИнтересно, в таком подходе меньше ошибок?
Меньше ошибок в "выдалбливании". По крайней мере с точки зрения оптимальности результирующей 3d-модели уровня. Подход с Большой Пустотой он хоть и понятнее для человеческого мышления, чреват избыточностью. Стоит тебе СЛУЧАЙНО допустить микроскопическую брешь между брашами, причем, не исключаю ситуации, что это возможно даже в результате погрешности хранения нецелых чисел в памяти, как сразу же невидимые глазу ВНЕШНИЕ стороны стен начнут обрабатываться движком и участвовать в рендеринге. И влиять на общее количество вершин. Отследить такую утечку крайне сложно, но алгоритмы построения bsp-деревьев это как-то умеют делать, хоть иногда и неточно.

Поэтому, если применялся подход с Большой Пустотой, то скорее всего, ошибка именно в этом - в утечке во вне - слишком много внешних невидимых полигонов и, соответственно, вершин, о чем и говорит движок в этой ошибке.

Maxim

#579
Сила, спасибо, интересно было почитать. Даже кажется более-менее понятно. Стало быть, лучше поделить Большую Пустоту на секторы? Может тогда легче будет движку? Хотя вообще по логике в итоге всё равно одно количество жрать придётся. Я понимаю если бы (ну просто представим) возможно были паузы. Прожевал (просчитал) кусок, проглотил (отобразил), взял новый. А пауз же нет, всё надо тут же отображать.
Цитироватьскорее всего, ошибка именно в этом - в утечке во вне - слишком много внешних невидимых полигонов
Да мистика в том, что пространства-то не такие уж большие. У меня были куда больше и не было таких проблем с одной и той же ошибкой. Не, ну я там ловил эту извечную ошибку, но устранял проблему.
А по-другому сложно города строить. Это пещеры можно выдалбливать в скале. А как вот построить сеть улиц таким методом я даже не представляю.

Zontik
Что номер строки в программе? И ты туда же ))) Там же ошибка эта извечная "Слишком много вершин Too many vertices ". 2741 это номер области проблемы! Потому что когда в других областях проблемы там другие цифры, а текст такой же! Ты ж сам не первый раз слышишь и сталкиваешься с такой ошибкой. И знаешь, что визуальная локализация идёт через команду бравых CC  ;D
Ладно, я пересоберу короче область эту. Придётся, конечно, дофига заново там расставлять кистей и объектов, но зато одним махом уж. Посмотрим, выживет ли ошибка или нет. Кстати, узнать это можно весьма скоро, потому что эту ошибку тоже ждать не приходится долго. Через пять-шесть портализаций она регуляром вылезала.
Still they talk anyway
When there's nothing to say
There's so much said in empty words...

Zontik

Force, а ты уверен? Это все-таки не Doom 3 и не Dark Radiant. Здесь микроскопическая брешь между воздушными бррр... элементами будет означать только то, что они друг с другом не соединяются. Никаких утечек не последует.
Если, конечно, я понял концепцию утечек правильно.
Maxim, в Dark Engine нет понятия "линия" (Line). А в программировании есть. Выводы делай сам.
ЦитироватьFile: PTDRAWHW.C, Line: 2741
Неужели это можно понять как-то неправильно?
Когда диагностируется проблемная ячейка, про нее так и пишут - cell 2741.
Дайте глазам отдохнуть! Тёмное место

Force

Zontik, только не воздушными бр... кистями, а твёрдыми. Могу дать совет - заполняйте невидимые области брашами с текстурой неба с очень крупным scale. Прям топите всю эту невидимую геометрию в одном двух таких брашах, они "съедят" всё лишнее. Думаю, это известный совет.

nemyax

Цитата: Maxim от 05 октября 2018 18:38:17
когда в других областях проблемы там другие цифры, а текст такой же!
В том файле одинаковые куски кода с таким сообщением в нескольких местах.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Soul_Tear

#583
Цитата: Maxim от 04 октября 2018 17:25:06

Что я только ни делал  — периодически всё равно появляется. Введёшь команду cc 2741, получаешь белым выделением якобы проблемную область. Тыщу раз всё проверишь, переделаешь, убедишься, что всё прилепляется к сетке как положено  (да и размер там 13, а это более чем нормально), никаких мелких зазоров нет, оптимизируешь и вроде всё хорошо. До какой-то поры. Пройдёт время, и в какой-то момент снова бац, и та же самая хреновина. Вот только после cc 2741 получаешь подсвечиванием совсем другую область! (хоть и располагающуюся недалеко). 
This drivin' me crazy!  :confused1:
(на скриншоте выделение это не то; это просто выделен был куб в момент скрина)
Наверное я этому злополучному числу 2741 поставлю памятник-пасхалку там где-нить.
А лучше наверное могилку! Точно. Когда и если решу эту хрень.

Цифры не то, о чем надо думать. В сообщении все четко сказано - "слишком много вершин", их у тебя видно невооруженным глазом. Возможно, дело не в количестве в целом на уровне, а в ячейке, в видимой сцене. Спрячь нижние вершины ступенек лестницы в клин/куб, если она висит в воздухе. Если лестница прилегает к стене, убедись, что там нет щели. Вершины с наружной/внешней стороны ступенек можно спрятать в длинный куб: его нижний край убрать в пол, а верхний срезать воздушным клином. Я такую ошибку ловлю, увлекаясь балками, выходящими из стены на улицу, что под потолком первого каменного этажа средневековых зданий.

Лестницы можно замоделить со смещенным центром, а внутрь спрятать плоский куб. И ГГ и НПЦ будут ходить по ним без проблем. Экономия ресурса колоссальная. Только лайтмапы красиво не лягут. Но если в таком помещении темно или приглушенный свет, сойдет.

Soul_Tear

Вообще вершинная ошибка безобидная. Редактор от нее не падает, как раньше. Я просто отменяю сообщение. В игре тоже ничего не происходит. Но лучше исправить :)