![]() |
Ответ: создание 3Д движка на j2me
Вычисляем цвет, а потом этот цвет еще 100 раз замазываем.
|
Ответ: создание 3Д движка на j2me
WISHMASTER35
для того z-buffer и придумали, ты рисуешь полигоны от ближнего к заднему, при этом цвет ты вычисляешь только для ближних, потому что задние стоят за ближними и отсекаются z-buffer'ом |
Ответ: создание 3Д движка на j2me
Я хотел сделать, чтобы в з-буфер записывалась ссылка на полигон. А потом когда все полигоны записаны в массив брать каждую ссылку на полигон и рисовать тот пиксель. Так бы лишний раз цвет не вычислялся. Но запись ссылок в массив это очень медленно. Хотя можно записывать номера полигонов. Но хз как потом определить цвет пикселя. Вообщем была такая тупая идея.
|
Ответ: создание 3Д движка на j2me
WISHMASTER35
парень, ты с какой планеты ? я тебе обьяснил нормальным языком, рисуем полигон, получаем глубину пикселя, если z-buffer говорит о том что этот пиксель ВИДИМ - вычисляем для него цвет и рисуем на экран если он НЕВИДИМ - цвет вычислять НЕ НАДО ! |
Ответ: создание 3Д движка на j2me
Интересно на сколько понизит фпс вычисление глубины пикселя.
Еще сильно мешает какая-то фигня. Если заполнять массив и рисовать ргб массив, то фпс сильно понижается. А если это делать по-отдельности, то фпс почти не понижается. П.с. Я лучше буду использовать вместо сравнения глубины пикселя boolean. Всё равно полигоны уже отсортированы. |
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 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 |
Ответ: создание 3Д движка на j2me
Минимум граний и минимум разрешения это само-собой. Только 100-75 очень мало.
|
Ответ: создание 3Д движка на j2me
Кстати, в з-буфер можно записывать не глубину пикселя, а номер конца горизонтальной линии. А потом когда рисовать, если -1, то нарисовать точки, если, что-то другое, то перейти на этот конец линии. Таким образом пропускаем лишний цикл и проверки. Мне оно прибавило где-то 1 фпс.
Вот http://upwap.ru/469108 сделал, чтобы рисовалось в ргб массив. Теперь, даже, если фигура не видна, то фпс и до 50 почему-то недоходит. |
Ответ: создание 3Д движка на j2me
WISHMASTER35
если вся модель не попадает в срезаную пирамиду "зрения" камеры, то её просто не нужно посылать на рендер, обычно вокруг модели строят параллелепипед и проверяют попадает ли он или его часть в срезаную пирамиду |
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
У меня сейчас каждый полигон проверяется виден ли на дисплее. И фпс это не забрало.
|
Ответ: создание 3Д движка на j2me
Вот исходники http://upwap.ru/469622 движка с рисованием в массив.
Но теперь там какая-то мистика. Один простейший метод G3D.clear заберает аж 50 фпс. Как это можно исправить? Или это баг джава-машины? |
Ответ: создание 3Д движка на j2me
Не, использовать з-буфер или какой-то другой массив нельзя. Чтобы, только его заполнить надо много фпс потратить. Надо одним массивом обойтись. Может сделать, если цвет пикселя равен -1, то рисовать в этот пиксель. Или другое число вместо -1.
|
Ответ: создание 3Д движка на j2me
A без очистки з-буфера можно как-то обойтись?
|
Часовой пояс GMT +4, время: 16:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot