Обычно в движках обычный oclussion culling, поэтому рендерятся если верхушку видно. Если бы были проверки на перекрытие каждого полика - проц бы загнулся.
Не разбираюсь в программировании, рассуждаю на уровне логики, разве нельзя вычислить параметры видимой части дерева и прорисовывать только ее? Мне интуиция подсказывает, что программно это посильная задача, а вычисление видимой части, по-моему, не особо напряжное для компа дело.
А вот грузить новые модели - это тяжеловесность игры. Можно ведь одним деревом все кусты делать :)
Разве нельзя задать ось координат XYZ на уровне земли, где отрицательные координаты просто не прорисовывались бы. Мне кажется, должен быть какой-то вариант, либо я слишком нуб в программировании.
Костыльно слишком. А если куст на холме и значительно выше уровня земли? А если моделька состоит из достаточно длинных полигонов и частично лежит над поверхностью, а частично под ней? Да и не забывайте, что придется прогонять эту проверку для кучи полигонов, хоть она и не хитрая, и работает далеко не во всех ситуациях.
Вот проверять бы вообще, какие полигоны видно в данный момент, а какие нет
Да, вот неровность ландшафта сильно меняет дело. А длинные полигоны не беда, координатную ось можно задать ниже уровня земли. То, что костыльно спору нет, но лучше же, чем в посте.
Я теоретик :) я ни разу в своей жизни даже "Hello, world" не написал, поэтому простите мне мою безграмотность.
Такого рода алгоритмы есть, но они стоят много ресурсов, поэтому имеют смысл только в сложных сценах, где много перекрытых объектов, а когда под землей 200-300 полигонов, дешевле их просто отрисовать, не высчитывая видимости.
Можно в теории хитрить, запускать алгоритм на этапе создания карты -обрезать те полигоны которые никогда не будут отрендерены.
То есть получится, что каждый куст - уникальная геометрия? По моему, это плохая идея, когда они все одинаковые, работает инстансинг.
Дело в том что полигон - не одна координта, а минимум три координаты вершин. Твой метод костыльное говно, извини уж. Даже если забить на неровность ландшафта и так далее, что мы имеем. Нам нужно проверить 3 или более вершин одного полигона и выяснить не под землёй ли они. И если над землёй хоть одна, хоть одна сраная вершина полигона - нам нужно его прорисовывать даже если он состоит из пяти и уходит на полкилометра в землю. Гораздо эффективнее тупо рисовать всё, с деревом из поста например просчитать несколько десятков вершин гораздо более нагруженно (принимая во внимание неравномерность местности), чем просто отрисовать одну текстурку на нескольких полигонах.
А разве когда компьютер раскрашивает полигоны, он не делает тоже самое? Зачем считать каждый полигон. Можно задать точку отсчета в системе координат (в которой объект итак находится) на уровне земли, а отрицательные значения игнорировать.
Я, конечно, нихуяшеньки не понял, но постараюсь ответить. Вкратце: нет. Развернуто: при обработке модели обрабатываются сначала координаты модели, потом координаты каждой точки, потом натягиваются текстуры. Так или иначе ты все равно просчитываешь координаты каждого полигона, так что смысла в этой процедуре маловато.
Да что вы минусите, долбоебы, я же не учу никого программировать, я спрашиваю, высказывая свои догадки, что бы сложить в голове картину. Блять, доебались, будто я на хабре такие вопросы задаю.
У тебя 24+к рейтинга бля, в минус тебя не сольют, возможность кидать картинки/гифки/ссылки у тебя есть. Что тебе еще может дать рейтинг?
А может стоит попробовать по программировать, что бы потом не выдавать подобные идеи? Просто если ты ни разу не пытался, то это прям новый мир постоянных открытий.
http://pikabu.ru/profile/Dansken почитай например, довольно просто и наглядно
Ну или обучающие видео по unity глянь, только они на английском
А тут школьники сидят, вот в чем дело. Мне тут недавно вообще мозг вынесли. Начали рассказывать что я ничего не понимаю в психологии в целом, и теории разбитых окон в частности. И это мне - психологу-криминалисту. Просто у школоты башню сносит. Максимализм,сэр. Или все должно быть как они думают - или никак.
Тонна? Там их штук 50. При этом экономится видеопамять, так как и для дерева и для куста используется ода и та же мешь и текстура.
вот из-за таких вот "и что?" игровые движки и катятся к ебеням. потом сами же воете от рекомендуемых требований к играм с повышенным содержанием графония.
Да, действительно. Из-за того, что я не понял, зачем он отправил мне это сообщение, содержащие очевидную информацию и не относящиеся к моему, игровые движки катятся к ебеням.
К слову, про твои любимые движки тут речи не идёт, здесь речь об использовании ресурсов левел дизайнерами.
здесь речь об использовании ресурсов левел дизайнерами.Речь идет о том, что из-за того, что забивают на такие вот мелочи, в итоге и получаются неоптимизированные игры, едва работающие на минималках на нормальном железе: то там забили на процент производительности, то еще где-нибудь, и в итоге получилось лагающее мыло.
и не относящиеся к моему
К вашему чему? Комменту? Если так, то я не понял, почему по вашему мнению коммент об оптимизации не относится к вашему комменту об оптимизации.
Ну как значительно...
На пару мегабайт (вес текстуры)
А если юзать ту же модель но убирать ствол то еще лучше.
Вообще отлично ответил #comment_60467177
Неа, в памяти либо одно дерево, либо одно дерево и один куст. Одно дерево меньше. Но экономия только в ОЗУ, отрисовывать больше полигонов затратнее.
Да с хера ли это, если под картой будут грузится целые модели деревьев то они будут жрать нормально так ОЗУ нежели если бы уже были загружены маленькие модели кустов ибо большая моделька дерева будет весить по любому больше чем маленькая моделька куста!
Для отображения ста(да хоть тысячи) одинаковых деревьев требуется одна модель в памяти. А так как скорее всего на карте помимо кустов есть и деревья, то для экономии ОЗУ выгодно использовать и на то и на другое модель дерева. Если и сейчас непонятно, то иди учись программированию, поработай с граф. либой и убедись на собственном опыте.