 |
28.06.2009, 12:38
|
#121
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
A без очистки з-буфера можно как-то обойтись?
|
Нет.
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
28.06.2009, 17:10
|
#122
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Сдесь http://ru.wikipedia.org/wiki/Z-буферизация написано, что чтобы не заполнять буфер каким-то числом часто делают так: первый кадр буферизация настраивается так, чтобы глубина ближних объектов была 0 ,0 , а дальних - 0 ,5 . Второй кадр - от 1 ,0 до 0 ,5 . Это снижает точность на 1 бит, но позволяет избавиться от очистки буфера.
Но я, что-то не пойму как это.
Можете доходчевее объяснить.
|
(Offline)
|
|
28.06.2009, 21:54
|
#123
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Можете доходчевее объяснить.
|
Очистка при этом всё-ровно требуется, но не каждый кадр, а через один.
1. чистим буфер
2. рендерим кадр №1, считаем значения глубины для пикселей. При этом если значение>=1 записываем 0.5, иначе - множим значение на 0.5 и пишем его в буфер.
3. рендерим кадр №2, считаем значения глубины для пикселей. При этом если значение>=1 записываем 1, иначе - множим значение на 0.5, добавляем к результату 0.5 и пишем его в буфер.
4. идём к пункту 1
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
29.06.2009, 16:44
|
#124
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
У меня, есть идея.
Записывать в з-буфер номер текущего кадра. А потом проверять, если текущий кадр=100 и в з-буфере=100, то этот пиксель уже рисовался в этом кадре.
Таи можно будет очистку з-буфера очень редко. Или вообще не делать.
Как идея?
|
(Offline)
|
|
29.06.2009, 19:07
|
#125
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
А в int'e за альфа канал первый или четвёртый байт отвечает?
Я думаю может этот альфа канал использовать как з-буфер.
А то лишняя запись в массив много фпс забирает.
|
(Offline)
|
|
29.06.2009, 19:35
|
#126
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Ответ: создание 3Д движка на j2me
8 бит для z-буфера - это катастрофически мало. Даже не пытайся.
|
(Offline)
|
|
29.06.2009, 19:37
|
#127
|
|
Ответ: создание 3Д движка на j2me
WISHMASTER35
для Z буфера надо минимум 16 бит, но желательно 24 бита
тебе не кажется что если до тебя этого не сделали, то это технически почти не реализуемо ?
для быстрой 3д графики просто необходим векторный процессор - графический ускоритель
|
|
|
29.06.2009, 19:51
|
#128
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Вычислять расстояние для каждого пикселя я не буду. У меня сейчас не з-буфер, а f-buffer (frame buffer) в этот массив записуется номер кадра в котором был задан цвет пикселю. Этот массив у меня сейчас из байт, так, что 8 бит хватает.
Не факт, что до меня чего-то из моих идей не реализовывал кто-то другой. Не все ж движки с открытым исходным кодом.
Я вообще делаю движок для мобильного, поетому мне приходится придумывать, что-то что проще и быстрее, чем в комповских движках.
Хочется сделать движок как в контр тероризм-2. Кстати, в той игре псевдо 3д или 3д? По-моему, если в той игре, есть модели компов, вертолётов и др, то псевдо это уже не может быть.
|
(Offline)
|
|
29.06.2009, 19:54
|
#129
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Как идея?
|
Бред.
Вычислять расстояние для каждого пикселя я не буду
|
Вообще-то, ты уже его вычисляешь при прорисовке, просто не используешь...
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
29.06.2009, 20:03
|
#130
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Может и бред, но очищать не надо.
Где я вычисляю в процеси прорисовки? Я использую только 2д координаты треугольника. Из них найти расстояние пикселя не возможно.
|
(Offline)
|
|
29.06.2009, 21:09
|
#131
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Я использую только 2д координаты треугольника. Из них найти расстояние пикселя не возможно.
|
Иди копать траншеи...
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
30.06.2009, 00:32
|
#132
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Хочеш сказать, что из 2д треугольника можно вычислить 3д координаты пикселя?
|
(Offline)
|
|
30.06.2009, 02:44
|
#133
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Хочеш сказать, что из 2д треугольника можно вычислить 3д координаты пикселя?
|
Нет. Я хочу сказать, что когда ты рисуешь 2д треугольник ты вычесляешь глубину. vec=pos*(WorldMatrix*ViewMatrix*ProjMatrix); - так вычисляется положение вершины на экране, после чего данные вершин итерполируются по пикселям. При этом значение vec.z в данной формуле и есть глубина.
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
30.06.2009, 10:47
|
#134
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: создание 3Д движка на j2me
Положения вершин я вычисляю умножением на одну матрицу.
А vec это что? Вершина?
|
(Offline)
|
|
30.06.2009, 14:19
|
#135
|
ПроЭктировщик
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений (для 44 пользователей)
|
Ответ: создание 3Д движка на j2me
Сообщение от WISHMASTER35
Положения вершин я вычисляю умножением на одну матрицу.
|
Врешь. Я не пойму, ты всё ручками пишешь, или используешь какую-то библиотеку?
Сообщение от WISHMASTER35
А vec это что? Вершина?
|
Нет, китайский лётчик...
Сообщение от Jack
положение вершины на экране
|
__________________
Я бы изменил мир, но Бог не даёт исходников...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:52.
|