![]() |
Ответ: Странное.
Чтобы не брало с края текстуры - можно задать clamp фильтрацию у текстуры.
|
Ответ: Странное.
Вложений: 1
зачем то сделал класс который трехмерный массив из 0 и 1 рисует кубиками, одной поверхностью...
|
Ответ: Странное.
А те трианглы что не видны (находятся между двумя кубами), они тоже добавлены? Или алгоритм учитывает и не добовляет их тем самым оптимизируя объём максимально?
Если да, то можно ещё сделать систему с учётом рядом стоящих чанков и также не рисовать не нужные трианглы. Далее систему обновления сетки (динамично и оптимально). И вуаля - у тебя есть свой рендер minecraft'а. |
Ответ: Странное.
для ячейки оно смотрит чтобы в ней был куб и если соседняя пустая то с той стороны добавляется грань. А еще для пущей экономии можно сделать так чтобы оно стоящие рядом грани которые находятся в одной плоскости рисовало не отдельными квадами а одним, но смысла пока не вижу. :-)Равно как и по краям экономить на квадах.
|
Ответ: Странное.
Ну сливать плоскости - весьма гемор, и слишком затратно думаю, с не очень то и большой экономией. При этом если будет повершинное освещение и текстуринг - то слишком запарка будет, тем более с разными тайлами.
|
Ответ: Странное.
Вот и я того же мнения. А освещение мне кажется надо не по вершинам делать, а отдельной 3d текстурой. Потому что пересчитать для каждой вершины количество света и записать это в данные вершин и более трудоемко и ректально, чем из массива источников света для данного положения камеры нарисовать текстуру. тем более что в акслинксе эту текстуру можно очень легко и быстро сделать.
|
Ответ: Странное.
А по мне так можно попробовать совместить Deferred Rendering с тенями и SSAO, и будет достаточно.
|
Ответ: Странное.
|
Ответ: Странное.
Сочинил класс который делает процесс создания поверхностей попроще.
теперь поверхность можно делать так: Код:
surf_fabric * surf = new surf_fabric(); |
Ответ: Странное.
Вложений: 1
с помощью какой то матери и черной магии сделал тот же массив кубиков.
летать wasd и мышь, крутить кубик стрелки, закрыть альт+ф4 выяснилось что в Код:
unsigned char* data = unsigned char[tex->GetDataSize()]; |
Ответ: Странное.
Цитата:
Цитата:
Цитата:
Цитата:
демка показывает 1800 фпс, если выключить vsync в драйверах (на 680gt) чтобы не обрезались кубы в ближней плоскости отсечения - теперь есть camera->SetDepthClamp(true); |
Ответ: Странное.
Цитата:
ну значит можно будет приличный объем рисовать :) . в примере куб 32х32х32 и половина кубов примерно есть. то есть около 50 к треугольников. по идее в нормальном кубе 32х32х32 будет гораздо меньше полигонов, так как это нарисован худший вариант по количеству полигонов. |
Часовой пояс GMT +4, время: 08:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot