создание 3Д движка на j2me
Вложений: 1
Сделал простенький 3д движок для мобильного :) .
В движке можно рисовать полигоны(треугольники) и линии. Теперь меня интерисует как сделать определение не видимых полигонов? Знаю только, что это делается с помощью нормалей (сторона в которую смотрит полигон). Но не пойму как эта нормаль вычисляется или поворачивается или что-то еще. И кто может сделать скрипт экспорта для блендера в мой формат? Я пытался сделать, но из-за какого-то бага в блендере не смог. И питона я не знаю :dontknow: . И если знаете как еще, что-то в нём улучшить, то пишите ;) . |
Ответ: создание 3Д движка на j2me
фляг в руки и пешком по свету по моему туут явйу хорошо знают только ты и винт!
|
Ответ: создание 3Д движка на j2me
Вообще-то вопрос алгоритмический, а не конкретно по Java.
|
Ответ: создание 3Д движка на j2me
Мой движок это проект на j2me. Так что в том разделе.
Эта же http://forum.boolean.name/showthread.php?t=4621&page=8 тема не в разделе алгоритмы хотя там тоже обсуждались алгоритмы. Вообщем меня интересует тема своего 3д движка на мобильном. Хотя у меня не полностью свой движок :-D т.к. используются матрицы из м3г. |
Ответ: создание 3Д движка на j2me
Да я не тебе, а @llien'у это сказал =)
|
Ответ: создание 3Д движка на j2me
пасиб за заменчание учту
|
Ответ: создание 3Д движка на j2me
Lit}{ говорит: Слуш вишмастер мы с тобой заняты одним и тем же.
Советую пойти через углы в двух плоскостях ХУ и ХZ. Формируеш ближайшие плоскости и указываеш чтобы все что за ними не рисовалось. Позже могу текст на ВБ 6.0 выложить коли надо. |
Ответ: создание 3Д движка на j2me
если че я постараюсь переработать vb текст на midlet pascal
|
Ответ: создание 3Д движка на j2me
Тоесть ты предлогаеш сделать так: если полигон или слишком далеко, или не виден на дисплее, то не рисовать. Так? У меня, если полигон дальше чем G3D.rang или ближе чем 0 по Z оси, то полигон не добавляется в з-буфер.
Можеш показать, что у тебя получилось? |
Ответ: создание 3Д движка на j2me
Скажите нормали записуются в файл-модель? Или они уже в оперативе создаются и поворачиваются в сторону полигона.
Я так понимаю в файл-модель НАДО записать нормаль, чтобы знать с какой стороны полигона она. Вот только не пойму в каком виде она записуется туда. Просто как тремя цифрами которые означают направление. Или типа слево или справо. Или как? Есть ли какие нибудь движки на ж2ме? Или простенькие на яваСЕ? |
Ответ: создание 3Д движка на j2me
Никто ниче не знает?
Вообщем как я понял нормаль записуется в файл-модель. И при повороте модели нормали умножаются на матрицу. Правельно? |
Ответ: создание 3Д движка на j2me
На счет записи нормалей в файл - все зависит от формата файла,
на счет поворота - да, нормаль можно повернуть, умножив на матрицу поворота. |
Ответ: создание 3Д движка на j2me
Определить видимость полигона можно через вектроное произведение векторов. Тоесть если есть полигон с вершинами ABC нужно взять произведение ABxBC, и получим вектор, перпендикулярный полигону(тобиш нормаль). Потом читаем скалярное произведение вектора направления камеры и смотрим на результат. Если я не ошибаюсь, если меньше 0, то полигон видим. Кстати хорошая справка при создании своего движка без АПИ - книга Андре Ламота "ПРОГРАММИРОВАНИЕ ТРЕХМЕРНЫХ ИГР ДЛЯ WINDOWS".
|
Ответ: создание 3Д движка на j2me
Если самому вычислять направление нормали, то нормаль может оказатся не стой стороны полигона.
Наверна надо записывать нормаль в файл и при повороте умножать на матрицу. |
Ответ: создание 3Д движка на j2me
>Если самому вычислять направление нормали, то нормаль может оказатся не стой стороны полигона.
Не может. Есть 2 вида отсечения - CW(clockwise) и CCW(counter clockwise) для отсечения по часовой стрелке и против неё соответственно. Если мы найдём вектороное произведение векторов AB и BC, то получим перпендикуляр, направленый от рисунка к нам, если же умножим CB на BA - то наоботрот. Насколько я знаю, все нормальные графические редакторы записываю индексы вершин так, чтобы они шли по часовой стрелке. |
Часовой пояс GMT +4, время: 15:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot