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 22.10.2009 15:33

Ответ: создание 3Д движка на j2me
 
Стороны текстуры? Да, равны. высота==ширине.
вроде всё просто, но на деле не просто.

WISHMASTER35 24.10.2009 16:56

Ответ: создание 3Д движка на j2me
 
Были б U V целыми числоми, то проблем не было. Но они fixed point.

WISHMASTER35 21.11.2009 18:29

Ответ: создание 3Д движка на j2me
 
Вложений: 1
Кто нибудь умеет рисовать в блендере?
Сделайте стандартную обезьяну с текстурой размера: 64-64, 128-128 или 256-256; Ну и еще пару не сложных моделек с текстурой можно. А то у меня то получается наложить текстуру то нет.
Сделал текстурированные полигоны. :super:

WISHMASTER35 16.12.2009 18:10

Ответ: создание 3Д движка на j2me
 
кто-нибудь знает зачем в Перспективно-корректном текстурирование рисуется кусками по 8 пикселей? Почему одним куском нельзя? :SOS:

WISHMASTER35 11.01.2010 22:24

Ответ: создание 3Д движка на j2me
 
Вложений: 1
отвечю сам. чтобы u и v приближались с разной скоростью. Если линия идет от ближнего к дальнему пикселю, то uv изменяются сначало медленно, потом быстрее.
Вот еслиб как-то вычислить начальнюю скорость и конечнюю по z координатам отрезка, то наверна алгоритм бы работал быстрее.
Вот сделал аффинный и перспективно корректный алгоритмы

WISHMASTER35 21.04.2010 23:07

Ответ: создание 3Д движка на j2me
 
Вложений: 1
вот сделал простенькую игрушку на движке:)

ARA 21.04.2010 23:55

Ответ: создание 3Д движка на j2me
 
падает шарик на площадку. больше с ним ничо не сделать. слева вверху цифра 28) Nokia 5800

WISHMASTER35 22.04.2010 00:06

Ответ: создание 3Д движка на j2me
 
я под сенсорные экраны не делал:mad: . управление - цыфрами.
2 это фпс. у меня на к610й в среднем 25.

кстате, подскажите как определить столкновение сферы и полигона.
я начал делать так:
провожу на все три ребра полигона перпендикуляры таким методом:
private Vertex closestPointOnLine(Vertex p1, Vertex p2, Vertex point) {
final float dx = p2.x - p1.x;
final float dy = p2.y - p1.y;
final float dz = p2.z - p1.z;

final float wx = point.x - p1.x;
final float wy = point.y - p1.y;
final float wz = point.z - p1.z;

float dt = (wx*dx + wy*dy + wz*dz)/(dx*dx + dy*dy + dz*dz);
//if(dt<0) dt=0;
//if(dt>1) dt=1;

return new Vertex(
p1.x + dt*dx,
p1.y + dt*dy,
p1.z + dt*dz
);
}
дальше надо из них как-то найти перпендикуляр на полигоне.:SOS:

ARA 22.04.2010 00:22

Ответ: создание 3Д движка на j2me
 
так сделай хотябы управление стрелочками. у меня на сенсорном стрелочки и окей эмулируются на экране во всех ява приложениях))а у меня не 2, а 28 фпс

Hurrit 22.04.2010 18:24

Ответ: создание 3Д движка на j2me
 
потестил, всё работает нормально, единственно бесит что нельзя одновременно несколько клавиш зажимать, и есть немного косяки с столкновениями. сверху обычно стояла цифра 13-16, когда не было видно дома 26. телефон: Sony Ericsson W920

WISHMASTER35 09.05.2010 14:22

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

WISHMASTER35 16.05.2010 20:30

Ответ: создание 3Д движка на j2me
 
Вложений: 1
сделал определение столкновения сферы с полигоном. теперь физика лучше. и сделал управление на джойстик)

Hurrit 17.05.2010 21:25

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

ViNT 17.05.2010 23:12

Ответ: создание 3Д движка на j2me
 
Неплохо получается, но: цифры вверху это ФПС?
Если да, то это не очень - 7-11 на эмуляторе, что же на мобиле будет?
У нативного движка производительность в любом случае выше будет.
А так - респект!

WISHMASTER35 18.05.2010 00:02

Ответ: создание 3Д движка на j2me
 
сделал прыжки http://waper.ru/file/1337545 теперь намного лучше.
сдесь http://waper.ru/forum/topic/329341?page=82 на 82стр я выкладывал, то, что надо для создания уровня.
фпс у меня обычно 25.
там, кстате, 0-менять тип текстурирования.
да кто ж спорит, что свой медленее, чем нативный) но нетлизард умудляется делать не плохии игры. интересно как у них определяется видемая часть уровня.

Arton 18.05.2010 02:06

Ответ: создание 3Д движка на j2me
 
Респект, WISHMASTER35, почему я раньше не взглянул на этот движок, фпс 11-9, siemens s75, впервые вижу что бы на этом телефоне нормальна шло ява 3d! Текстуры корректно отображаются без искажений, физика есть! Текстуры думаю можно и поменьше сделать, т.к. на моём экране 132х176, сфера непохожа на мяч, выглядит как шарик с пятнами и т.п. Очень долго реагирует на на нажатие кнопок, особенно на поворот, поворачивается рывками при этом фпс 10 впрочем может это особенность сименса :)

Успехов тебе!

P.S. Запустил на компе, насладился всеми прелестями движка :)

WISHMASTER35 24.05.2010 22:33

Ответ: создание 3Д движка на j2me
 
сделал, чтобы можно было собирать вещи и нарисовал более красивый уровень. http://waper.ru/file/1345061

WISHMASTER35 24.05.2010 23:36

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

Arton 24.05.2010 23:40

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

Сообщение от WISHMASTER35 (Сообщение 147878)
как думаете какой минимальный фпс должен быть в 3д игре типа как у меня?

~16 хотя бы...

Igor 28.05.2010 16:01

Ответ: создание 3Д движка на j2me
 
Для гонок фпс нужен хороший, а вот если что-нибудь менее динамичное, (RPG например) то мне кажется 10-15 хватит.

WISHMASTER35 28.05.2010 18:19

Ответ: создание 3Д движка на j2me
 
по-моему для мобильных гонок 15 фпс очень хорошо. а рпг смотря какие. Doom RPG 2 и Wolfenstein RPG не надо большое фпс.

WISHMASTER35 30.05.2010 20:50

Ответ: создание 3Д движка на j2me
 
сделал новую версию http://waper.ru/file/1351317/physics3D.jar
сделал, чтобы при рисовании сектора сначало проверялся на видемость прямоугольник описывающий этот сектор. сделал картинку в низу, пишется сколько вещей собрал, и при падении за уровень переместишся в на старт. карта теперь содержится в текстовом файле. добавил меню.

Igor 03.06.2010 14:44

Ответ: создание 3Д движка на j2me
 
Классно! Только вот мячик иногда частично загораживается землей(

Не могу понять, как у тебя терпения хватило.

WISHMASTER35 03.06.2010 18:21

Ответ: создание 3Д движка на j2me
 
з-буфера нету, вот и бывает такое. терпения бы не хватило, если б я постоянно этим занимался. а так я занимаюсь только когда есть желание и идеи.

WISHMASTER35 07.06.2010 00:01

Ответ: создание 3Д движка на j2me
 
http://waper.ru/file/1357062/physics3D.jar
сделал wav звуки. протестируйте не будет ли проблем из-за них.

Igor 07.06.2010 12:10

Ответ: создание 3Д движка на j2me
 
Вроде нормально. (KEemuletor) Я только не понял в чем смысл игры :SOS:
Ах, да. Первый уровень работает, остальные стоят на loading

Arton 07.06.2010 12:22

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

Сообщение от WISHMASTER35 (Сообщение 149263)
http://waper.ru/file/1357062/physics3D.jar
сделал wav звуки. протестируйте не будет ли проблем из-за них.

У меня почему-то можно только вверх смотреть (кнопки 1,3), ещё ноль работает и всё :dontknow: , звуков понятное дело не услышал, FPS 10-11, Siemens S75.

Цитата:

Сообщение от Igor (Сообщение 149304)
Я только не понял в чем смысл игры :SOS:

Ни в чём, это демонстрация 3D-движка на мидлет-паскаль.

WISHMASTER35 07.06.2010 12:49

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

Сообщение от Arton (Сообщение 149306)
У меня почему-то можно только вверх смотреть (кнопки 1,3), ещё ноль работает и всё :dontknow: , звуков понятное дело не услышал, FPS 10-11, Siemens S75.

по-моему на сименсе какие-то другие wav должны быть. без звука же работает?
надо будет вообще сделать MIDI.
Цитата:

Сообщение от Arton (Сообщение 149306)
Ни в чём, это демонстрация 3D-движка на мидлет-паскаль

какой еще мидлет-паскаль?! Я на нем не когда не кодил.
Цитата:

Сообщение от Igor (Сообщение 149304)
х, да. Первый уровень работает, остальные стоят на loading

там всего один уровень. остальные я сделал для тестирования списка.

Arton 07.06.2010 13:32

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

Сообщение от WISHMASTER35 (Сообщение 149310)
какой еще мидлет-паскаль?! Я на нем не когда не кодил.

Пардон, я думал это раздел мидлет-паскаль :-)
Нет на сименсе самый обычный вав воспроизводится. Просто на моей модели звук включается постепенно поэтому мог и не услышать.

WISHMASTER35 07.06.2010 13:43

Ответ: создание 3Д движка на j2me
 
у тебя ж и кнопки не все работают? они только со звуком не работают? В меню не пробывал сделать sound off?
на сименсах всегда был wav, который на СЕ не работал.

Arton 07.06.2010 13:48

Ответ: создание 3Д движка на j2me
 
Я дурак, включил звук ява но забыл включить его капитально :lol: Звуки есть, кнопки также не работают кроме 1,3,5,0, FPS ~15 и начал падать.
Цитата:

Сообщение от WISHMASTER35 (Сообщение 149329)
на сименсах всегда был wav, который на СЕ не работал.

Да знаю про эти заморочки, но у меня сименсы всегда хавали любой wav любых размерах. И если я правильно помню дело не в особенностях сименса, а в CE, это для них wav в специальной кодировки шёл, в сименсах самый обычный wav...

WISHMASTER35 07.06.2010 14:49

Ответ: создание 3Д движка на j2me
 
ты скажи, если в меню выключить звук sound off, то кнопки заработают?
Или может на сименсе константы UP_PRESSED, DOWN_PRESSED, LEFT_PRESSED, FIRE_PRESSED другие?

Arton 07.06.2010 15:22

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

Сообщение от WISHMASTER35 (Сообщение 149348)
ты скажи, если в меню выключить звук sound off, то кнопки заработают?
Или может на сименсе константы UP_PRESSED, DOWN_PRESSED, LEFT_PRESSED, FIRE_PRESSED другие?

Во-первых тоже самое, во-вторых предыдущие демки работали полностью!

WISHMASTER35 07.06.2010 15:42

Ответ: создание 3Д движка на j2me
 
Вложений: 1
очень странно. я с управлением ничего не делал:dontknow: а щвс попробуй.

Arton 07.06.2010 16:26

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

Сообщение от WISHMASTER35 (Сообщение 149364)
очень странно. я с управлением ничего не делал:dontknow: а щвс попробуй.

Тоже самое :( , а на эмуляторе всё работает...

WISHMASTER35 07.06.2010 16:55

Ответ: создание 3Д движка на j2me
 
Вложений: 1
мдя. не понимаю, что сдесь может не работать
final int keyStates = getKeyStates();
if((keyStates & FIRE_PRESSED) != 0) ball.jump( ball.getRadius() );
if((keyStates & UP_PRESSED) != 0) ball.moveOnward( ball.getRadius()/2 );
if((keyStates & DOWN_PRESSED) != 0) ball.moveOnward( -ball.getRadius()/2 );
if((keyStates & LEFT_PRESSED) != 0) ball.rotY(-5);
if((keyStates & RIGHT_PRESSED) != 0) ball.rotY(5);

и почему именно 5 работает.

может из-за того что я в новой версии зачем-то написал protected void keyRepeated(int keyCode) {}
где-то читал, что для getKeyStates() нужна в методах keyPressed, keyReleased вызывать эти метод супер класса т.е. super.keyPressed. хотя я этого никогда не делал.
Вот версия без keyRepeated. может и вправду он виноват:wild:
и сейчвс при нажатии кнопки в верхнем правом углу должен писаться keyStates, если кнопка сработала.

Arton 07.06.2010 17:42

Ответ: создание 3Д движка на j2me
 
Есть контакт!!! Работает как надо и кнопки джойстика действуют!

Igor 07.06.2010 17:46

Ответ: создание 3Д движка на j2me
 
Ой! По-моему, MIDlet pascal проще.

WISHMASTER35 07.06.2010 18:04

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

Сообщение от Igor (Сообщение 149414)
Ой! По-моему, MIDlet pascal проще.

и что с того что он проще? меньше возможностей, навернае меньше скорости. и вообще этот язык для маленьких проектов, которые и проектом не назовеш.
Arton, казалось бы один пустой метод написал, а такое случилось:-D
вот рабочая версия без keyStates в верхнем правом углу.

WISHMASTER35 08.06.2010 23:29

Ответ: создание 3Д движка на j2me
 
кто-нибудь разбирается в физике?
Если человек описывается сферой, то при столкновении с полигоном, даже если он немного наклонен, сфера скатится(или соскользит) с полигона. но видь это не правильно для человека.
обьясните простым языком как это исправить.
извеняюсь за отклонение от темы, но физика для меня сложная тема.

Igor 09.06.2010 12:56

Ответ: создание 3Д движка на j2me
 
Добавить силу трения:)
И сделать его параллелепипедом
Хотя я сам точно не знаю

WISHMASTER35 09.06.2010 14:08

Ответ: создание 3Д движка на j2me
 
про силу трения я знаю, только как ее реализовать?!
параллелепипед надо делать, но пока хочу эту силу трения реализовать.
Или подробно опишите или дайте ссылку где это доходчево написано.

Igor 09.06.2010 15:54

Ответ: создание 3Д движка на j2me
 
Вроде бы Fтр<=mgk
где k-коэффициент трения
Направлено в сторону противоположную движению

WISHMASTER35 09.06.2010 16:06

Ответ: создание 3Д движка на j2me
 
сложно будет понять с такого обьяснения:mad:
там вроде сначало надо узнать насколько сфера вошла в полигон.
не могу найти где бы это хорошо описывалось:(

Igor 09.06.2010 16:14

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

WISHMASTER35 09.06.2010 16:56

Ответ: создание 3Д движка на j2me
 
определить столкновении точки с полигоном не реально. пролетит.

Igor 09.06.2010 17:29

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

WISHMASTER35 09.06.2010 17:46

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

Igor 09.06.2010 18:02

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

думаю даже вертикальная прямая может пролететь сквозь плоскость, если они параллельны.
А как ты на такой плоскости будешь стоять?

WISHMASTER35 09.06.2010 19:39

Ответ: создание 3Д движка на j2me
 
я на ней не стоять буду, а уператься в нее.
Вот где мне надо трение http://waper.ru/file/1363832/MC3D.jar

WISHMASTER35 18.06.2010 12:04

Ответ: создание 3Д движка на j2me
 
Сделал новый формат файла 3д модели. Теперь намного меньше весит.
И еще два простенбких уровня добавил. http://waper.ru/file/1368251/physics3D.jar
Конвертер теперь из obj файла. Теперь не сложно и в 3д максе и в блендере делать. http://waper.ru/file/1368184/ConverterObjToIceberg.jar

St_AnGer 19.06.2010 16:00

Ответ: создание 3Д движка на j2me
 
Попробовал. Интересно. Особенно порадовала циферка FPS - 240-250 всегда. Телефон - Nokia N85. Единственное что немного неустроило - текстуры на вертикальных плоскостях иногда уезжают. Но тут ничего сказать не могу, так как в игростроении для телефонов не смыслю ничего, да и может так должно быть.

Arton 19.06.2010 18:36

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

Сообщение от St_AnGer (Сообщение 150624)
Единственное что немного неустроило - текстуры на вертикальных плоскостях иногда уезжают. Но тут ничего сказать не могу, так как в игростроении для телефонов не смыслю ничего, да и может так должно быть.

Нажми "0"...

WISHMASTER35 20.06.2010 13:20

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

Сообщение от St_AnGer (Сообщение 150624)
Особенно порадовала циферка FPS - 240-250 всегда.

Ты туда смотрел? ФПС слева написан. А справа количество полигонов, которые рисуются.

St_AnGer 21.06.2010 00:11

Ответ: создание 3Д движка на j2me
 
хм... чутка обманулся :) Я смотрел как раз справа циферку :) втупил.... FPS же - 35-64, очень мягко бегает :) почти как n-gage игры :)

WISHMASTER35 21.06.2010 12:13

Ответ: создание 3Д движка на j2me
 
Только на играх n-gage будет намного больше полигонов и эффектов.
А вообще думаю n-gage уже должен быть не самый быстрый девайс.

Gector 10.08.2010 14:16

Ответ: создание 3Д движка на j2me
 
Ух ты!))) Прикольно. Жаль в яве не шарю))).

WISHMASTER35 26.08.2010 23:35

Ответ: создание 3Д движка на j2me
 
еще бы и порталы сделать и можно было б уровни из комнот строит)
Только не очень понимаю как их сделать.
напримар рисовать в редакторе портал со специальным материалом или в отдельном меше?!(

WISHMASTER35 27.08.2010 22:08

Ответ: создание 3Д движка на j2me
 
Кто-нибудь знается на матричных алгоритмах?)
Есть у меня такие методы поворота вокруг осей
public void rotX(int angle) {
int c = Util3D.cos(angle);
int s = Util3D.sin(angle);

int Nyx = (m10 * c + m20 * s)>>12;
int Nyy = (m11 * c + m21 * s)>>12;
int Nyz = (m12 * c + m22 * s)>>12;

int Nzx = (m20 * c - m10 * s)>>12;
int Nzy = (m21 * c - m11 * s)>>12;
int Nzz = (m22 * c - m12 * s)>>12;


m10 = Nyx;
m11 = Nyy;
m12 = Nyz;

m20 = Nzx;
m21 = Nzy;
m22 = Nzz;
}

public void rotY(int angle) {
int c = Util3D.cos(angle);
int s = Util3D.sin(angle);

int Nxx = (m00 * c + m20 * s)>>12;
int Nxy = (m01 * c + m21 * s)>>12;
int Nxz = (m02 * c + m22 * s)>>12;

int Nzx = (m20 * c - m00 * s)>>12;
int Nzy = (m21 * c - m01 * s)>>12;
int Nzz = (m22 * c - m02 * s)>>12;

m00 = Nxx;
m01 = Nxy;
m02 = Nxz;
m20 = Nzx;
m21 = Nzy;
m22 = Nzz;
}
public void rotZ(int angle) {
int c = Util3D.cos(angle);
int s = Util3D.sin(angle);

int Nyx = (m10 * c + m00 * s)>>12;
int Nyy = (m11 * c + m01 * s)>>12;
int Nyz = (m12 * c + m02 * s)>>12;

int Nxx = (m00 * c - m10 * s)>>12;
int Nxy = (m01 * c - m11 * s)>>12;
int Nxz = (m02 * c - m12 * s)>>12;

m10 = Nyx;
m11 = Nyy;
m12 = Nyz;
m00 = Nxx;
m01 = Nxy;
m02 = Nxz;
}
rotX работает не правильно( т.е. им можно пользоваться, но результат не совпадает с таким поворотом
public void setRotX(int i) {
i = angle(i);
m00 = FP;
m01 = 0;
m02 = 0;
m03 = 0;

m10 = 0;
m11 = cos[i];
m12 = -sin[i];
m13 = 0;

m20 = 0;
m21 = sin[i];
m22 = cos[i];
m23 = 0;
}
:dontknow:
rotX для другой системы координат чтоли :mad:
Дайте правильные методы для поворота :SOS:

WISHMASTER35 27.08.2010 22:16

Ответ: создание 3Д движка на j2me
 
rotX создает такую матрицу
4096 0 0
0 0 0
4096 0 0
-4096 0 0

А setRotX создает такую
4096 0 0
0 0 0
-4096 0 0
4096 0 0

WISHMASTER35 16.09.2010 22:26

Ответ: создание 3Д движка на j2me
 
Вложений: 1
Порталы пока сделать не получилось, но попробывал рисовать текущую комнату и соседнии. Работает не плохо) на моем к610й ~30фпс.

impersonalis 16.09.2010 23:36

Ответ: создание 3Д движка на j2me
 
Упорство, достойное уважения!

WISHMASTER35 16.09.2010 23:54

Ответ: создание 3Д движка на j2me
 
ну я особо об стену не бился)
Только дней 5 назад начал это писать.
Эх, если б порталы. Но как их создавать в 3д редакторе не понимаю.

WISHMASTER35 11.11.2010 21:47

Ответ: создание 3Д движка на j2me
 
Вложений: 1
Сделал порталы:)
теперь рисуются все видимые комнаты и меньше полигонов рендерятся.
7 и 9 - менять размер экрана.
# - рисовать порталы


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

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