Войти
ПрограммированиеФорумГрафика

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

Страницы: 1 2 3 4101 Следующая »
#15
19:03, 5 мая 2012

=A=L=X=
> Скажите пожалуйста - почему все (и, кстати, единственные "все" кто вообще
> что-то своё делал) вы удлиняете размер меша в одном каком то пространственном
> направлении в разы???
> В чём профит?

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


#16
20:16, 5 мая 2012

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

#17
21:43, 5 мая 2012

Jarro
> А ещё, можно было в них насмотреть какие-нибудь руды и даже лаву, обсидиан и т.д., глубоко под землёй.

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

#18
23:08, 5 мая 2012

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

#19
8:30, 6 мая 2012

Jarro
В 1.2.5 на двух компах (Вин7 х64 + джава х64) замечен баг.

#20
13:26, 6 мая 2012
Executor
Это фича)
#21
18:12, 28 мая 2012

=A=L=X=
> Скажите пожалуйста - почему все (и, кстати, единственные "все" кто вообще
> что-то своё делал) вы удлиняете размер меша в одном каком то пространственном
> направлении в разы???
> В чём профит?

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

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

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

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

#22
22:20, 28 мая 2012

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

#23
22:57, 28 мая 2012

icelex
> выход есть - это замена только масива цвета, но факт тот же обновлять пройдется
> все,
> ибо как найти в пачке цветов или трианжелов
> какие из них поменялись довольно проблематично, но вполне возможно :)

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

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

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

#24
23:24, 28 мая 2012
(N+2)^3

Это формула шара через радиус ? :D
#25
23:43, 28 мая 2012

Пардон, бред написал. Должно быть (2R+1)^3 (для куба с «радиусом» R). Для факела с радиусом 10 получится ~9000 блоков.

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

#26
0:41, 29 мая 2012

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

#27
0:56, 29 мая 2012

Jarro
> а причём здесь куб ? Затухает то свет на блоках во все стороны одной и той же
> линейной функцией

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

#28
1:27, 29 мая 2012

Так в том то и дело, свет там распространяется радиальными плямами, во все стороны затухает одинаково, заполняет шар.

#29
1:50, 29 мая 2012

Jarro
> Так в том то и дело, свет там распространяется радиальными плямами, во все
> стороны затухает одинаково, заполняет шар.

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

+ Показать

Страницы: 1 2 3 4101 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.