![]() |
Ответ: создание 3Д движка на j2me
Цель у меня - быстрее. А какие цели могут быть?
|
Ответ: создание 3Д движка на j2me
WISHMASTER35
не бывает просто "самого быстрого алгоритма сортировки" потому что если ты выберешь один, а потом подсунешь ему 10 млн ячеек то он загнётся для выбора алгоритма надо смотреть как уже упорядочены входные данные и какое количество обьектов надо отсортировать для <=1000 самый быстрый это сортировка шелла |
Ответ: создание 3Д движка на j2me
С сортировкой Шелла фпс вырос на 16. Это очень хорошо.
А нельзяли этот алгоритм еще как нибудь оптимизировать? Может быть ту таблицу изменить которая используется этим алгоритмом? Я толком не понял для чего та таблица, но там такие большие числа, а у меня полигонов максимум 1000. |
Ответ: создание 3Д движка на j2me
WISHMASTER35
изучай алгоритмы сортировки :) может и можно |
Ответ: создание 3Д движка на j2me
Я так понимаю, если у меня максимум полигонов 1000, то заносить в ту таблицу числа больше 1000 смысла нет. Правельно?
|
Ответ: создание 3Д движка на j2me
Цитата:
Цитата:
|
Ответ: создание 3Д движка на j2me
Вложений: 2
вот мой двихок с сортировкой Шелла.
|
Ответ: создание 3Д движка на j2me
Не пойму как твоя з-буфферизация мне в этом поможет.
Врё равно праверяться перекрывает пиксель одного полигона пиксель другова будет у всех полигонов. |
Ответ: создание 3Д движка на j2me
Цитата:
Слушай, иди попрогай на OpenGL на компе, а потом уже перейдешь на Java... Ты ничего не выдавишь из этого, если не будешь знать основ графики... По программированию 3Д графики на Java книг мало(если вообще есть, хз), а вот по OpenGL - целая куча. Даже если не будешь программировать под комп - прочитай хотя бы одну умную книгу по OpenGL и у тебя сразу отпадёт куча вопросов, которые ты тут задаешь... |
Ответ: создание 3Д движка на j2me
Проблема в том, что на не видемые полигоны или их части потратится время.
А я хочю, если на дисплее в этом месте уже рисовался полигон, то в следующем полигоне его части, которые в этом месте вообще пропуститились и не делать для них каких-то вычислений. Но в этом случае навена надо будет рисовать полигоны от ближнего к дальнему. Книгу еще надо скачать. А когда они весят 20, а то и 50 мб это проблематично. |
Ответ: создание 3Д движка на j2me
Цитата:
Цитата:
Цитата:
Цитата:
http://depositfiles.com/ru/files/7657084 - 2.93 мб http://depositfiles.com/files/yon7cmqy7 - 17 мб. |
Ответ: создание 3Д движка на j2me
Положительная сторона з-буфера это, то, что точно определяется какой пиксель виден, а какои нет. И для не видемых пикселей не надо высчитавать свет и текстурные координаты. Но для каждого полигона, для каждого эго пикселя надо надо высчитать расстояние. А это наверна очень долго. Формула которая высчитует это расстояние большая?
По-моему я когда-то видел статью в которой написано было, что не видемые части полигона надо отсекать. |
Ответ: создание 3Д движка на j2me
>Формула которая высчитует это расстояние большая?
vec=pos*WorldViewProj; - тут vec.z - это и будет та координата. Если не понял - vec=pos*(WorldMatrix*ViewMatrix*ProjMatrix); - это код вычисления положения пикселя на экране. В любом случае должен выполнятся при отрисовке. При этом значения X и Y - значения в пределах [-1; 1], указывающие положение результирующей точки на экране, а Z(используется только при Z-буферизации) - значение в пределах [0; 1], которое и нужно записать в Z-буфер. |
Ответ: создание 3Д движка на j2me
Как я понял освещение и цвет пикселов вычисляются после того как все полигоны добавлены в з-буфер.
Только я не понял, если в з-буфер сначало не цвета заносятся, то что??? |
Ответ: создание 3Д движка на j2me
WISHMASTER35
z-buffer это такая текстура, мы сначала высчитываем глубину пикселя и сравниваем с уже записаной, если записаная меньше - игнорируем наш пиксель и идем к другому если записаная больше, высчитываем цвет для нашего пикселя, записываем цвет в результирующий буфер, записуем глубину в z-buffer |
Часовой пояс GMT +4, время: 10:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot