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 23.06.2009 23:10

Ответ: создание 3Д движка на j2me
 
Вычисляем цвет, а потом этот цвет еще 100 раз замазываем.

jimon 23.06.2009 23:41

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

WISHMASTER35 23.06.2009 23:42

Ответ: создание 3Д движка на j2me
 
Я хотел сделать, чтобы в з-буфер записывалась ссылка на полигон. А потом когда все полигоны записаны в массив брать каждую ссылку на полигон и рисовать тот пиксель. Так бы лишний раз цвет не вычислялся. Но запись ссылок в массив это очень медленно. Хотя можно записывать номера полигонов. Но хз как потом определить цвет пикселя. Вообщем была такая тупая идея.

jimon 23.06.2009 23:45

Ответ: создание 3Д движка на j2me
 
WISHMASTER35
парень, ты с какой планеты ?
я тебе обьяснил нормальным языком, рисуем полигон, получаем глубину пикселя, если z-buffer говорит о том что этот пиксель ВИДИМ - вычисляем для него цвет и рисуем на экран
если он НЕВИДИМ - цвет вычислять НЕ НАДО !

WISHMASTER35 23.06.2009 23:47

Ответ: создание 3Д движка на j2me
 
Интересно на сколько понизит фпс вычисление глубины пикселя.
Еще сильно мешает какая-то фигня. Если заполнять массив и рисовать ргб массив, то фпс сильно понижается. А если это делать по-отдельности, то фпс почти не понижается.
П.с. Я лучше буду использовать вместо сравнения глубины пикселя boolean. Всё равно полигоны уже отсортированы.

-=Jack=- 25.06.2009 19:34

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

Сообщение от WISHMASTER35 (Сообщение 108805)
Интересно на сколько понизит фпс вычисление глубины пикселя. Еще сильно мешает какая-то фигня. Если заполнять массив и рисовать ргб массив, то фпс сильно понижается. А если это делать по-отдельности, то фпс почти не понижается.
П.с. Я лучше буду использовать вместо сравнения глубины пикселя boolean. Всё равно полигоны уже отсортированы.

Блин... Ты уверен что тебе нужно писать движёк??? Мой тебе совет - забей на него, пока не скачаешь(или не купишь) соответствующую литературу, и не перестанешь писать такие глупости...

abcdef 26.06.2009 10:41

Ответ: создание 3Д движка на j2me
 
WISHMASTER35 - если делать 3D-кубик, дальше этой цели не уйдете.
Полигоны - это для простых фигур, а если видна только часть полигона, то простейшее решение это z-buffer.
____
касательно j2me: если хотите сделать свой 3D-движек, и чтоб это работало с приемлемой скоростью, необходимо использовать минимум 3D-граней, и ограничить размеры области вывода, например 100x75 pixels и т.д.
Сортировка граней - это доп.оптимизация, когда будет уже реально работающий проект, которая покажет целесообразность применения, или полный отказ от этого метода, в связи с качеством отображения и скоростью работы в целом.
____
простой 3D алгоритм рисования текстурированных граней c z-buffer'ом (TurboPascal)
www.boolean.name > Проекты > Проекты на MidletPascal > The Maze > demo.zip (искать на первых страницах)
url: http://forum.boolean.name/attachment...achmentid=4983

WISHMASTER35 26.06.2009 17:38

Ответ: создание 3Д движка на j2me
 
Минимум граний и минимум разрешения это само-собой. Только 100-75 очень мало.

WISHMASTER35 27.06.2009 02:34

Ответ: создание 3Д движка на j2me
 
Кстати, в з-буфер можно записывать не глубину пикселя, а номер конца горизонтальной линии. А потом когда рисовать, если -1, то нарисовать точки, если, что-то другое, то перейти на этот конец линии. Таким образом пропускаем лишний цикл и проверки. Мне оно прибавило где-то 1 фпс.
Вот http://upwap.ru/469108 сделал, чтобы рисовалось в ргб массив. Теперь, даже, если фигура не видна, то фпс и до 50 почему-то недоходит.

jimon 27.06.2009 13:14

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

-=Jack=- 27.06.2009 13:29

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

Сообщение от jimon (Сообщение 109243)
обычно вокруг модели строят параллелепипед

Я строю сферу <_< конечно для плоских моделей создается слижком большая сфера, но зато вместо 48и дотов только 6 :)

WISHMASTER35 27.06.2009 13:34

Ответ: создание 3Д движка на j2me
 
У меня сейчас каждый полигон проверяется виден ли на дисплее. И фпс это не забрало.

WISHMASTER35 27.06.2009 18:22

Ответ: создание 3Д движка на j2me
 
Вот исходники http://upwap.ru/469622 движка с рисованием в массив.
Но теперь там какая-то мистика. Один простейший метод G3D.clear заберает аж 50 фпс. Как это можно исправить? Или это баг джава-машины?

WISHMASTER35 27.06.2009 22:17

Ответ: создание 3Д движка на j2me
 
Не, использовать з-буфер или какой-то другой массив нельзя. Чтобы, только его заполнить надо много фпс потратить. Надо одним массивом обойтись. Может сделать, если цвет пикселя равен -1, то рисовать в этот пиксель. Или другое число вместо -1.

WISHMASTER35 28.06.2009 11:50

Ответ: создание 3Д движка на j2me
 
A без очистки з-буфера можно как-то обойтись?


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

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