Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Рендер как в Minecraft-е - кто нибудь знает основные "секреты"? (2 стр)

Рендер как в Minecraft-е - кто нибудь знает основные "секреты"? (2 стр)

Страницы: 1 2 3 4101 Следующая »
ArchiDevilПостоялецwww5 мая 201219:03#15
=A=L=X=
> Скажите пожалуйста - почему все (и, кстати, единственные "все" кто вообще
> что-то своё делал) вы удлиняете размер меша в одном каком то пространственном
> направлении в разы???
> В чём профит?

Потому что у меня не предполагается забираться выше 256 кубов, поэтому и не надо мне стримить вверх/вниз инфу.

JarroПостоялецwww5 мая 201220:16#16
а чанки очень вытянуты в высоту, ведь так построены - был в одних версиях с ними баг, так вот некоторые в мультиплеере просто отсутствовали, не хотели загружаться у клиента - клиент мог туда упасть и бесконечно шарахаться, ведь чанки вытянуты по высоте на весь предел Z координат блоков.
А ещё, можно было в них насмотреть какие-нибудь руды и даже лаву, обсидиан и т.д., глубоко под землёй. Люди пользовались этим, перезагружались и копали в том месте, пока не находили руды. MC addicts это даже каким-то термином назвали.

Правка: 5 мая 2012 20:18

ExecutorУдалёнwww5 мая 201221:43#17
Jarro
> А ещё, можно было в них насмотреть какие-нибудь руды и даже лаву, обсидиан и т.д., глубоко под землёй.

В Маинкрафте до сих пор такое бывает.
В МК вообще странная вещь с багами, они бывает тянутся чуть ли не с самого начала существования игры.
Неужели так сложно пофиксить их?

JarroПостоялецwww5 мая 201223:08#18
хм а я вот в последнее время не встречаю значимых.
Есть только мерцание этих самых чанков при медленной загрузке, странный дождь и снег, кривая лодка, а также мелкий баг с небом и его цветом.
Вроде всё :)
ExecutorУдалёнwww6 мая 20128:30#19
Jarro
В 1.2.5 на двух компах (Вин7 х64 + джава х64) замечен баг.
DoNПостоялецwww6 мая 201213:26#20
Executor
Это фича)
alexzzzzПостоялецwww28 мая 201218:12#21
=A=L=X=
> Скажите пожалуйста - почему все (и, кстати, единственные "все" кто вообще
> что-то своё делал) вы удлиняете размер меша в одном каком то пространственном
> направлении в разы???
> В чём профит?

Тоже удивляюсь. Вот ставишь ты новый факел => надо перестроить или 4 чанка по 16x16x128 = 131 тысячи блоков, или 8 чанков по 16x16x16 = 32 тысячи блоков. И не факт, что с учётом оптимизаций разница в количестве блоков, которые надо будет обработать, станет меньше.

Я сразу начал с чанков 16х16х16, потом перешёл на 32х32х32.

icelex
> а удлиняют , потомучто так в майнкрафт :)

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

Правка: 28 мая 2012 20:14

JarroПостоялецwww28 мая 201222:20#22
Ого а зачем 16x16x128 блоков менять, когда факел ставишь и его "радиус освещенности" 3-4 блока ? И того ~25 блоков обновляются, причём здесь весь чанк ?
alexzzzzПостоялецwww28 мая 201222:57#23
icelex
> выход есть - это замена только масива цвета, но факт тот же обновлять пройдется
> все,
> ибо как найти в пачке цветов или трианжелов
> какие из них поменялись довольно проблематично, но вполне возможно :)

Думаю, не стоит. Случай с факелом конечно проще ― надо только цвета вершин поменять. Но чаще игрок ставит новые или удаляет старые блоки, и тогда и геометрия меняется, и освещение (иной раз покруче, чем в случае с факелом). Проще перестроить чанк заново, чем путаться в индексах вершин и треугольников.

Jarro
> Ого а зачем 16x16x128 блоков менять, когда факел ставишь и его "радиус
> освещенности" 3-4 блока ? И того ~25 блоков обновляются, причём здесь весь чанк
> ?

3-4 ― мало, надо 10-15. Если дальнобойность источника света = N, то количество блоков, на которые он потенциально влияет = (N+2)^3. Для факела с радиусом 10 это получается ~1700 блоков. И хорошо, если они внутри одного чанка, а если на границе с соседними чанками, то их тоже надо будет модифицировать. Как я выше написал, в случае с факелом можно было бы обойтись изменением цветов вершин, не трогая геометрию, но если игрок ставит в углу чанка не факел, а новый блок, надо менять геометрию одновременно нескольких чанков.

JarroПостоялецwww28 мая 201223:24#24
(N+2)^3

Это формула шара через радиус ? :D
alexzzzzПостоялецwww28 мая 201223:43#25
Пардон, бред написал. Должно быть (2R+1)^3 (для куба с «радиусом» R). Для факела с радиусом 10 получится ~9000 блоков.

Минимальный источник света с радиусом действия единица освещает не один блок, а всех своих соседей. Конечно формула грубая, кое-что не учитывает, но для больших радиусов работает.

JarroПостоялецwww29 мая 20120:41#26
а причём здесь куб ? Затухает то свет на блоках во все стороны одной и той же линейной функцией (если бы не округлять значения до кол-ва блоков), посмотрите в игре. И того 4/3*Pi*(R^3)~4200 блоков квадратных при R=10..
Я кстати посмотрел в игре, что R=14, поэтому ~11500, ужос
alexzzzzПостоялецwww29 мая 20120:56#27
Jarro
> а причём здесь куб ? Затухает то свет на блоках во все стороны одной и той же
> линейной функцией

Но сторон распространения света ровно шесть ― параллельно осям XYZ. Так и проще, и быстрее, а в глаза разница особо не бросается. Поставьте в игре факел на землю и посмотрите на него ночью сверху. Если увидите вокруг не круг света, а квадрат, значит, свет от факела заполняет собой куб, а не шар.

Правка: 29 мая 2012 1:02

JarroПостоялецwww29 мая 20121:27#28
Так в том то и дело, свет там распространяется радиальными плямами, во все стороны затухает одинаково, заполняет шар.
alexzzzzПостоялецwww29 мая 20121:50#29
Jarro
> Так в том то и дело, свет там распространяется радиальными плямами, во все
> стороны затухает одинаково, заполняет шар.

Свет не ходит по-диагонали и под разными другими углами, а только параллельно осям, зигзагами. В результате получается куб и характерная форма пятна света на плоских поверхностях:

+ Показать

Правка: 30 мая 2012 22:02

Страницы: 1 2 3 4101 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр