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

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

Страницы: 1 2 3100 101 Следующая »
#0
0:08, 5 мая 2012

Погуглил и главным образом только отсылки к движку Cube 2 бесплатному из того что можно сказать "разговор по существу".
Но пока не хотелось бы с головой уходить в изучение исходников - а так сказать порассуждать над основами.

Из полезного что на форуме нашел - побить пространство на субкубы большенького размера которые уже будут скоплением сравнительно больших мешей для снижения DIP. Октри там какой нибудь наложить для быстроты отсечения фруструма.
Но что то как то и всё? Или кто знает более мощные концепты?


#1
0:26, 5 мая 2012

Может задебажить игру в PerfStudio/прочих? Включить вайрфрейм и всех делов :)
А вообще в майнкрафте не такое уж и большое количество видимых кубиков, инстансинг зарулит...


Програмно каждый кубик может быть или открытым(хотябы одна сторона в воздухе) или закрытым. Тоесть обрабатывается некая 3д плоскость, а не все кубики. А тут уже можно заюзать индор техники.

#2
(Правка: 0:45) 0:40, 5 мая 2012

Недавно пробовал рендерить большую территорию, состоящую из кубиков:
Изображение
40 FPS на GeForce 310M
Здесь порядка 5 миллионов кубиков, которые разделены на чанки (отдельные меши из 64x64x32 32x32x64 кубов). При обновлении чанка генерируется меш, который состоит только из видимых сторон кубов.

#3
(Правка: 0:42) 0:41, 5 мая 2012

там вапще всё разбито по chunk'ам, если не знаете - вроде как весь мир разбивается на 16x16x128 кубиков, чанков. В сети ландшафт загружается чанками.

#4
7:24, 5 мая 2012

Che@ter
> А вообще в майнкрафте не такое уж и большое количество видимых кубиков,
> инстансинг зарулит...

А чего там инстансить то? Куб же очень простая фигура, более того в подавляющем большинстве видны только одна-две-три грани. Разве есть смысл "инстансить" грани?

#5
7:27, 5 мая 2012

Хорошо, допустим видюхи умеют сотни миллионы маленьких трисов в секунды, в это верится.
А вот как быть с филлрейтом? Довольно легко напридумывать ситуаций когда филлрейт забьёт растеризатору печенку вконец.
Например поле из множества плоских слоёв с пустыми слоями между ними и вот мы в центре композиции смотрим наверх там или вниз.
Очевидно полезно рендерить от ближних чанков к дальним включив z-buffer, но как то поэффективней можно?

#6
7:31, 5 мая 2012

=A=L=X=
> но как то поэффективней можно?
Конечно, просто не нужно рисовать то что не видно,
раньше так во всех играх делали, а теперь разленились.

#7
7:51, 5 мая 2012

Hybernaculum
> Конечно, просто не нужно рисовать то что не видно,
> раньше так во всех играх делали, а теперь разленились.

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

#8
7:55, 5 мая 2012

http://codeflow.org/entries/2010/dec/09/minecraft-like-rendering-… -in-opengl-4/

#9
8:58, 5 мая 2012

думаю, в майнкрафте освещение интересно сделано - свет всегда четко проникает в шахты.

#10
(Правка: 12:14) 12:12, 5 мая 2012

Может поможет http://www.sea-of-memes.com/LetsCode1/LetsCode1.html
Igor'
Зачетная ссылка

#11
12:23, 5 мая 2012

Igor'
> http://codeflow.org/entries/2010/dec/09/minecraft-like-rendering-…
> -in-opengl-4/

Да, ссылка зачётная но и большая, вечером подробнее почитаю.

> Может поможет http://www.sea-of-memes.com/LetsCode1/LetsCode1.html

Вот сразу от себя уже странное из выстраданного вижу - тут предлагается батчи составлять по текстурам. Однако вспоминая крохотные и одинаковые размером текстурки майнкрафта сдаётся мне намного более оптимальный способ - сделать атлас из квадратных текстур и батч строить один просто манипулируя текстурными координатами. Разве не? Просто после встречи такого подхода как то сомнение возникает в практичности изложенных вещей.

#12
(Правка: 17:26) 17:25, 5 мая 2012

У меня так:

+ Показать

Собираю меш по чанкам 16x16x256.

#13
18:18, 5 мая 2012

Jarro
> 16x16x128
Conductor
> 32x32x64 кубов
ArchiDevil
> меш по чанкам 16x16x256.

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

#14
18:44, 5 мая 2012

удлиняют так как по Y обычно информации мало.

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