Театр одного примата (stokesequation) wrote,
Театр одного примата
stokesequation

Category:

Naebachtung

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

Взять, например, ландшафт в игровой локации.

На базовом уровне ландшафт — это двумерная сетка с размером ячейки порядка одного метра. Именно этот ландшафт, макрорельеф, редактируют художники. К тому же, на таком ландшафте можно очень дешево и быстро считать физику движения техники и полёта снарядов. Из этого следует, что минимальный размер любой неровности на базовом уровне — это один метр. Довольно унылый ландшафт получается:

Расставленные камушки, конечно, оживляют ситуацию, но в целом все довольно плоско. А мы, между прочим, хотим улитку, ползущую в зарослях винограда по склону Фудзи.

Решение проблемы проще пареной репы: уже в процессе рисования ландшафта разбивать его на мелкие-мелкие треугольнички и двигать вершины вверх-вниз в зависимости от текстурки в этой точке. Ба, дело закрыто, вечеринка!

Но, к сожалению, дело этим не ограничивается. Помимо улиток, у нас есть еще и танки, которые тоже заползают на склоны. А танки на физическом уровне "ездят"  по старому, недетализированному ландшафту. Это значит, что при наезде на камень каток в этот камень провалится. А при наезде каточка на яму сработает особая уличная магия и он зависнет в воздухе. И в итоге, хотя мы только что вроде улучшили ландшафт, причинили добро, все стало выглядеть еще хуже: проваливающиеся в ландшафт траки и левитирующие танки смотрятся намного неприятный, чем просто унылый ландшафт.

И напрямую ничего с этим поделать нельзя. Физику движения танка по детализированному ландшафту считать нереально: во-первых, это раз так в 1000 увеличивает число необходимых вычислений и затраты памяти. Во-вторых, для владельцев potato computer старых видеокарт, которые мы должны поддерживать, этот детализированный ландшафт просто недоступен. Не потянет их машина. Но и отказаться от детализированного ландшафта нельзя — не для того народ покупает новейшие компы, чтобы любоваться графикой, устаревшей лет на 6.

Для обхода проблемы вводится "физика", которая существует только локально. На компьютере клиента. И то не везде — только в некотором небольшом радиусе от игрока. Сам танк на физическом уровне ездит по-старому — по унылому недетализированному ландшафту с разрешением 1 метр. Но его катки и гусеницы "считывают" высоту детализированного ландшафта и получают поправку — чуть-чуть приподнимаясь или опускаясь. Более того, вводится обратная связь — в зависимости от физических свойств поверхности (а это может быть твердый асфальт, или, наоборот, мягкая грязь) детализированный ландшафт может проминаться под массой танка.

Но на самом деле на уровне физики всё осталось по-старому.

Чтобы улучшить картинку, нам пришлось обмануть глаза игрока, показав, что ландшафт намного детальнее, чем он есть. Но обман вскрывается физикой, и чтобы скрыть его там, приходится вводить обман уже и на физическом уровне. Завираться приходится все глубже и серьезнее, и с каждым новым уровнем вранья это становится всё сложнее.

А вранье становится все более извращенным.

Tags: программирование, работа
Subscribe
promo stokesequation февраль 3, 16:01 9
Buy for 10 tokens
Перед вами, наверное, вершина могущества человека в вопросах организации материи. Огромная ракета, которая несёт в себе несколько кусочков Солнца, и готова щедро поделиться теплом и светом в любую минуту. Только скажи. Это потрясающе неестественный объект. В нём неестественны абсолютно все…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 6 comments