forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на JavaME (http://forum.boolean.name/forumdisplay.php?f=114)
-   -   создание 3Д движка на j2me (http://forum.boolean.name/showthread.php?t=8365)

WISHMASTER35 21.06.2009 11:25

Ответ: создание 3Д движка на j2me
 
Цель у меня - быстрее. А какие цели могут быть?

jimon 21.06.2009 12:34

Ответ: создание 3Д движка на j2me
 
WISHMASTER35
не бывает просто "самого быстрого алгоритма сортировки"
потому что если ты выберешь один, а потом подсунешь ему 10 млн ячеек то он загнётся
для выбора алгоритма надо смотреть как уже упорядочены входные данные и какое количество обьектов надо отсортировать

для <=1000 самый быстрый это сортировка шелла

WISHMASTER35 21.06.2009 14:05

Ответ: создание 3Д движка на j2me
 
С сортировкой Шелла фпс вырос на 16. Это очень хорошо.
А нельзяли этот алгоритм еще как нибудь оптимизировать? Может быть ту таблицу изменить которая используется этим алгоритмом? Я толком не понял для чего та таблица, но там такие большие числа, а у меня полигонов максимум 1000.

jimon 21.06.2009 14:13

Ответ: создание 3Д движка на j2me
 
WISHMASTER35
изучай алгоритмы сортировки :) может и можно

WISHMASTER35 21.06.2009 15:17

Ответ: создание 3Д движка на j2me
 
Я так понимаю, если у меня максимум полигонов 1000, то заносить в ту таблицу числа больше 1000 смысла нет. Правельно?

-=Jack=- 22.06.2009 15:36

Ответ: создание 3Д движка на j2me
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 108392)
Кто нибудь знает как сделать, если один полигон перекрывает часть другова, то как не рисовать перекрытую часть второго полигона?

Повторяю для тех, кто в танке:
Цитата:

Сообщение от -=Jack=- (Сообщение 107168)
Для этого вполне эффективно используется Z-буферизация о_О


WISHMASTER35 23.06.2009 00:21

Ответ: создание 3Д движка на j2me
 
Вложений: 2
вот мой двихок с сортировкой Шелла.

WISHMASTER35 23.06.2009 00:26

Ответ: создание 3Д движка на j2me
 
Не пойму как твоя з-буфферизация мне в этом поможет.
Врё равно праверяться перекрывает пиксель одного полигона пиксель другова будет у всех полигонов.

-=Jack=- 23.06.2009 01:40

Ответ: создание 3Д движка на j2me
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 108678)
Врё равно праверяться перекрывает пиксель одного полигона пиксель другова будет у всех полигонов.

Допустим. И в чём проблема?

Слушай, иди попрогай на OpenGL на компе, а потом уже перейдешь на Java... Ты ничего не выдавишь из этого, если не будешь знать основ графики... По программированию 3Д графики на Java книг мало(если вообще есть, хз), а вот по OpenGL - целая куча. Даже если не будешь программировать под комп - прочитай хотя бы одну умную книгу по OpenGL и у тебя сразу отпадёт куча вопросов, которые ты тут задаешь...

WISHMASTER35 23.06.2009 10:17

Ответ: создание 3Д движка на j2me
 
Проблема в том, что на не видемые полигоны или их части потратится время.
А я хочю, если на дисплее в этом месте уже рисовался полигон, то в следующем полигоне его части, которые в этом месте вообще пропуститились и не делать для них каких-то вычислений.
Но в этом случае навена надо будет рисовать полигоны от ближнего к дальнему.
Книгу еще надо скачать. А когда они весят 20, а то и 50 мб это проблематично.

-=Jack=- 23.06.2009 12:08

Ответ: создание 3Д движка на j2me
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 108699)
Проблема в том, что на не видемые полигоны или их части потратится время.

А ты что думал, в сказку попал?
Цитата:

Сообщение от WISHMASTER35 (Сообщение 108699)
А я хочю, если на дисплее в этом месте уже рисовался полигон, то в следующем полигоне его части, которые в этом месте вообще пропуститились и не делать для них каких-то вычислений.

Или юзай Z-буферизацию, или хоти дальше...

Цитата:

Сообщение от WISHMASTER35 (Сообщение 108699)
Но в этом случае навена надо будет рисовать полигоны от ближнего к дальнему.

доу... страшно представить, как это будет выглядить...

Цитата:

Сообщение от WISHMASTER35 (Сообщение 108699)
Книгу еще надо скачать. А когда они весят 20, а то и 50 мб это проблематично.

http://depositfiles.com/ru/files/4304985 - 10.3 мб
http://depositfiles.com/ru/files/7657084 - 2.93 мб
http://depositfiles.com/files/yon7cmqy7 - 17 мб.

WISHMASTER35 23.06.2009 18:18

Ответ: создание 3Д движка на j2me
 
Положительная сторона з-буфера это, то, что точно определяется какой пиксель виден, а какои нет. И для не видемых пикселей не надо высчитавать свет и текстурные координаты. Но для каждого полигона, для каждого эго пикселя надо надо высчитать расстояние. А это наверна очень долго. Формула которая высчитует это расстояние большая?
По-моему я когда-то видел статью в которой написано было, что не видемые части полигона надо отсекать.

-=Jack=- 23.06.2009 20:32

Ответ: создание 3Д движка на j2me
 
>Формула которая высчитует это расстояние большая?
vec=pos*WorldViewProj; - тут vec.z - это и будет та координата. Если не понял - vec=pos*(WorldMatrix*ViewMatrix*ProjMatrix); - это код вычисления положения пикселя на экране. В любом случае должен выполнятся при отрисовке. При этом значения X и Y - значения в пределах [-1; 1], указывающие положение результирующей точки на экране, а Z(используется только при Z-буферизации) - значение в пределах [0; 1], которое и нужно записать в Z-буфер.

WISHMASTER35 23.06.2009 22:15

Ответ: создание 3Д движка на j2me
 
Как я понял освещение и цвет пикселов вычисляются после того как все полигоны добавлены в з-буфер.
Только я не понял, если в з-буфер сначало не цвета заносятся, то что???

jimon 23.06.2009 22:23

Ответ: создание 3Д движка на j2me
 
WISHMASTER35
z-buffer это такая текстура, мы сначала высчитываем глубину пикселя и сравниваем с уже записаной, если записаная меньше - игнорируем наш пиксель и идем к другому
если записаная больше, высчитываем цвет для нашего пикселя, записываем цвет в результирующий буфер, записуем глубину в z-buffer


Часовой пояс GMT +4, время: 10:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot