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.05.2009 23:05

создание 3Д движка на j2me
 
Вложений: 1
Сделал простенький 3д движок для мобильного :) .
В движке можно рисовать полигоны(треугольники) и линии.
Теперь меня интерисует как сделать определение не видимых полигонов? Знаю только, что это делается с помощью нормалей (сторона в которую смотрит полигон). Но не пойму как эта нормаль вычисляется или поворачивается или что-то еще.
И кто может сделать скрипт экспорта для блендера в мой формат? Я пытался сделать, но из-за какого-то бага в блендере не смог. И питона я не знаю :dontknow: .
И если знаете как еще, что-то в нём улучшить, то пишите ;) .

@llien 24.05.2009 17:04

Ответ: создание 3Д движка на j2me
 
фляг в руки и пешком по свету по моему туут явйу хорошо знают только ты и винт!

Phantom 24.05.2009 18:53

Ответ: создание 3Д движка на j2me
 
Вообще-то вопрос алгоритмический, а не конкретно по Java.

WISHMASTER35 24.05.2009 19:25

Ответ: создание 3Д движка на j2me
 
Мой движок это проект на j2me. Так что в том разделе.
Эта же http://forum.boolean.name/showthread.php?t=4621&page=8 тема не в разделе алгоритмы хотя там тоже обсуждались алгоритмы.
Вообщем меня интересует тема своего 3д движка на мобильном. Хотя у меня не полностью свой движок :-D т.к. используются матрицы из м3г.

Phantom 24.05.2009 19:42

Ответ: создание 3Д движка на j2me
 
Да я не тебе, а @llien'у это сказал =)

@llien 25.05.2009 10:54

Ответ: создание 3Д движка на j2me
 
пасиб за заменчание учту

@llien 27.05.2009 11:00

Ответ: создание 3Д движка на j2me
 
Lit}{ говорит: Слуш вишмастер мы с тобой заняты одним и тем же.
Советую пойти через углы в двух плоскостях ХУ и ХZ. Формируеш ближайшие плоскости и указываеш чтобы все что за ними не рисовалось.
Позже могу текст на ВБ 6.0 выложить коли надо.

@llien 27.05.2009 12:00

Ответ: создание 3Д движка на j2me
 
если че я постараюсь переработать vb текст на midlet pascal

WISHMASTER35 27.05.2009 14:05

Ответ: создание 3Д движка на j2me
 
Тоесть ты предлогаеш сделать так: если полигон или слишком далеко, или не виден на дисплее, то не рисовать. Так? У меня, если полигон дальше чем G3D.rang или ближе чем 0 по Z оси, то полигон не добавляется в з-буфер.
Можеш показать, что у тебя получилось?

WISHMASTER35 02.06.2009 22:22

Ответ: создание 3Д движка на j2me
 
Скажите нормали записуются в файл-модель? Или они уже в оперативе создаются и поворачиваются в сторону полигона.
Я так понимаю в файл-модель НАДО записать нормаль, чтобы знать с какой стороны полигона она. Вот только не пойму в каком виде она записуется туда. Просто как тремя цифрами которые означают направление. Или типа слево или справо. Или как?
Есть ли какие нибудь движки на ж2ме?
Или простенькие на яваСЕ?

WISHMASTER35 03.06.2009 22:43

Ответ: создание 3Д движка на j2me
 
Никто ниче не знает?
Вообщем как я понял нормаль записуется в файл-модель. И при повороте модели нормали умножаются на матрицу. Правельно?

ViNT 04.06.2009 01:47

Ответ: создание 3Д движка на j2me
 
На счет записи нормалей в файл - все зависит от формата файла,
на счет поворота - да, нормаль можно повернуть, умножив на матрицу поворота.

-=Jack=- 04.06.2009 14:05

Ответ: создание 3Д движка на j2me
 
Определить видимость полигона можно через вектроное произведение векторов. Тоесть если есть полигон с вершинами ABC нужно взять произведение ABxBC, и получим вектор, перпендикулярный полигону(тобиш нормаль). Потом читаем скалярное произведение вектора направления камеры и смотрим на результат. Если я не ошибаюсь, если меньше 0, то полигон видим. Кстати хорошая справка при создании своего движка без АПИ - книга Андре Ламота "ПРОГРАММИРОВАНИЕ ТРЕХМЕРНЫХ ИГР ДЛЯ WINDOWS".

WISHMASTER35 04.06.2009 15:58

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

-=Jack=- 04.06.2009 17:32

Ответ: создание 3Д движка на j2me
 
>Если самому вычислять направление нормали, то нормаль может оказатся не стой стороны полигона.

Не может.

Есть 2 вида отсечения - CW(clockwise) и CCW(counter clockwise) для отсечения по часовой стрелке и против неё соответственно. Если мы найдём вектороное произведение векторов AB и BC, то получим перпендикуляр, направленый от рисунка к нам, если же умножим CB на BA - то наоботрот. Насколько я знаю, все нормальные графические редакторы записываю индексы вершин так, чтобы они шли по часовой стрелке.


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

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