![]() |
Ответ: создание 3Д движка на j2me
Стороны текстуры? Да, равны. высота==ширине.
вроде всё просто, но на деле не просто. |
Ответ: создание 3Д движка на j2me
Были б U V целыми числоми, то проблем не было. Но они fixed point.
|
Ответ: создание 3Д движка на j2me
Вложений: 1
Кто нибудь умеет рисовать в блендере?
Сделайте стандартную обезьяну с текстурой размера: 64-64, 128-128 или 256-256; Ну и еще пару не сложных моделек с текстурой можно. А то у меня то получается наложить текстуру то нет. Сделал текстурированные полигоны. :super: |
Ответ: создание 3Д движка на j2me
кто-нибудь знает зачем в Перспективно-корректном текстурирование рисуется кусками по 8 пикселей? Почему одним куском нельзя? :SOS:
|
Ответ: создание 3Д движка на j2me
Вложений: 1
отвечю сам. чтобы u и v приближались с разной скоростью. Если линия идет от ближнего к дальнему пикселю, то uv изменяются сначало медленно, потом быстрее.
Вот еслиб как-то вычислить начальнюю скорость и конечнюю по z координатам отрезка, то наверна алгоритм бы работал быстрее. Вот сделал аффинный и перспективно корректный алгоритмы |
Ответ: создание 3Д движка на j2me
Вложений: 1
вот сделал простенькую игрушку на движке:)
|
Ответ: создание 3Д движка на j2me
падает шарик на площадку. больше с ним ничо не сделать. слева вверху цифра 28) Nokia 5800
|
Ответ: создание 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: |
Ответ: создание 3Д движка на j2me
так сделай хотябы управление стрелочками. у меня на сенсорном стрелочки и окей эмулируются на экране во всех ява приложениях))а у меня не 2, а 28 фпс
|
Ответ: создание 3Д движка на j2me
потестил, всё работает нормально, единственно бесит что нельзя одновременно несколько клавиш зажимать, и есть немного косяки с столкновениями. сверху обычно стояла цифра 13-16, когда не было видно дома 26. телефон: Sony Ericsson W920
|
Ответ: создание 3Д движка на j2me
скажите, если сфера столкнулась с одним или несколькими полигонами, то как ее правильно отодвинуть? я так понимаю надо сложить нормали всех полигонов и дистанции до них?
|
Ответ: создание 3Д движка на j2me
Вложений: 1
сделал определение столкновения сферы с полигоном. теперь физика лучше. и сделал управление на джойстик)
|
Ответ: создание 3Д движка на j2me
малаца, работает гораздо лучше. физика хороша, понравилось как отскакивает от земли. отдельный плюсь за управление. иногда бывает что неправильно отрисовывается, но это фигня, быстро уходит. буду ждать продолжения, удачи!
|
Ответ: создание 3Д движка на j2me
Неплохо получается, но: цифры вверху это ФПС?
Если да, то это не очень - 7-11 на эмуляторе, что же на мобиле будет? У нативного движка производительность в любом случае выше будет. А так - респект! |
Ответ: создание 3Д движка на j2me
сделал прыжки http://waper.ru/file/1337545 теперь намного лучше.
сдесь http://waper.ru/forum/topic/329341?page=82 на 82стр я выкладывал, то, что надо для создания уровня. фпс у меня обычно 25. там, кстате, 0-менять тип текстурирования. да кто ж спорит, что свой медленее, чем нативный) но нетлизард умудляется делать не плохии игры. интересно как у них определяется видемая часть уровня. |
Ответ: создание 3Д движка на j2me
Респект, WISHMASTER35, почему я раньше не взглянул на этот движок, фпс 11-9, siemens s75, впервые вижу что бы на этом телефоне нормальна шло ява 3d! Текстуры корректно отображаются без искажений, физика есть! Текстуры думаю можно и поменьше сделать, т.к. на моём экране 132х176, сфера непохожа на мяч, выглядит как шарик с пятнами и т.п. Очень долго реагирует на на нажатие кнопок, особенно на поворот, поворачивается рывками при этом фпс 10 впрочем может это особенность сименса :)
Успехов тебе! P.S. Запустил на компе, насладился всеми прелестями движка :) |
Ответ: создание 3Д движка на j2me
сделал, чтобы можно было собирать вещи и нарисовал более красивый уровень. http://waper.ru/file/1345061
|
Ответ: создание 3Д движка на j2me
как думаете какой минимальный фпс должен быть в 3д игре типа как у меня?
|
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
Для гонок фпс нужен хороший, а вот если что-нибудь менее динамичное, (RPG например) то мне кажется 10-15 хватит.
|
Ответ: создание 3Д движка на j2me
по-моему для мобильных гонок 15 фпс очень хорошо. а рпг смотря какие. Doom RPG 2 и Wolfenstein RPG не надо большое фпс.
|
Ответ: создание 3Д движка на j2me
сделал новую версию http://waper.ru/file/1351317/physics3D.jar
сделал, чтобы при рисовании сектора сначало проверялся на видемость прямоугольник описывающий этот сектор. сделал картинку в низу, пишется сколько вещей собрал, и при падении за уровень переместишся в на старт. карта теперь содержится в текстовом файле. добавил меню. |
Ответ: создание 3Д движка на j2me
Классно! Только вот мячик иногда частично загораживается землей(
Не могу понять, как у тебя терпения хватило. |
Ответ: создание 3Д движка на j2me
з-буфера нету, вот и бывает такое. терпения бы не хватило, если б я постоянно этим занимался. а так я занимаюсь только когда есть желание и идеи.
|
Ответ: создание 3Д движка на j2me
http://waper.ru/file/1357062/physics3D.jar
сделал wav звуки. протестируйте не будет ли проблем из-за них. |
Ответ: создание 3Д движка на j2me
Вроде нормально. (KEemuletor) Я только не понял в чем смысл игры :SOS:
Ах, да. Первый уровень работает, остальные стоят на loading |
Ответ: создание 3Д движка на j2me
Цитата:
Цитата:
|
Ответ: создание 3Д движка на j2me
Цитата:
надо будет вообще сделать MIDI. Цитата:
Цитата:
|
Ответ: создание 3Д движка на j2me
|
Ответ: создание 3Д движка на j2me
у тебя ж и кнопки не все работают? они только со звуком не работают? В меню не пробывал сделать sound off?
на сименсах всегда был wav, который на СЕ не работал. |
Ответ: создание 3Д движка на j2me
Я дурак, включил звук ява но забыл включить его капитально :lol: Звуки есть, кнопки также не работают кроме 1,3,5,0, FPS ~15 и начал падать.
Цитата:
|
Ответ: создание 3Д движка на j2me
ты скажи, если в меню выключить звук sound off, то кнопки заработают?
Или может на сименсе константы UP_PRESSED, DOWN_PRESSED, LEFT_PRESSED, FIRE_PRESSED другие? |
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
Вложений: 1
очень странно. я с управлением ничего не делал:dontknow: а щвс попробуй.
|
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 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, если кнопка сработала. |
Ответ: создание 3Д движка на j2me
Есть контакт!!! Работает как надо и кнопки джойстика действуют!
|
Ответ: создание 3Д движка на j2me
Ой! По-моему, MIDlet pascal проще.
|
Ответ: создание 3Д движка на j2me
Вложений: 1
Цитата:
Arton, казалось бы один пустой метод написал, а такое случилось:-D вот рабочая версия без keyStates в верхнем правом углу. |
Ответ: создание 3Д движка на j2me
кто-нибудь разбирается в физике?
Если человек описывается сферой, то при столкновении с полигоном, даже если он немного наклонен, сфера скатится(или соскользит) с полигона. но видь это не правильно для человека. обьясните простым языком как это исправить. извеняюсь за отклонение от темы, но физика для меня сложная тема. |
Ответ: создание 3Д движка на j2me
Добавить силу трения:)
И сделать его параллелепипедом Хотя я сам точно не знаю |
Ответ: создание 3Д движка на j2me
про силу трения я знаю, только как ее реализовать?!
параллелепипед надо делать, но пока хочу эту силу трения реализовать. Или подробно опишите или дайте ссылку где это доходчево написано. |
Ответ: создание 3Д движка на j2me
Вроде бы Fтр<=mgk
где k-коэффициент трения Направлено в сторону противоположную движению |
Ответ: создание 3Д движка на j2me
сложно будет понять с такого обьяснения:mad:
там вроде сначало надо узнать насколько сфера вошла в полигон. не могу найти где бы это хорошо описывалось:( |
Ответ: создание 3Д движка на j2me
А почему бы человечка не представить как точку, стоящую на поверхности полигона?
|
Ответ: создание 3Д движка на j2me
определить столкновении точки с полигоном не реально. пролетит.
|
Ответ: создание 3Д движка на j2me
Как точку пересечения вертикальной прямой и полигона
|
Ответ: создание 3Д движка на j2me
думаю даже вертикальная прямая может пролететь сквозь плоскость, если они параллельны.
но все же мне хотелось бы узнать как сделать трение для сферы. |
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
я на ней не стоять буду, а уператься в нее.
Вот где мне надо трение http://waper.ru/file/1363832/MC3D.jar |
Ответ: создание 3Д движка на j2me
Сделал новый формат файла 3д модели. Теперь намного меньше весит.
И еще два простенбких уровня добавил. http://waper.ru/file/1368251/physics3D.jar Конвертер теперь из obj файла. Теперь не сложно и в 3д максе и в блендере делать. http://waper.ru/file/1368184/ConverterObjToIceberg.jar |
Ответ: создание 3Д движка на j2me
Попробовал. Интересно. Особенно порадовала циферка FPS - 240-250 всегда. Телефон - Nokia N85. Единственное что немного неустроило - текстуры на вертикальных плоскостях иногда уезжают. Но тут ничего сказать не могу, так как в игростроении для телефонов не смыслю ничего, да и может так должно быть.
|
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
Цитата:
|
Ответ: создание 3Д движка на j2me
хм... чутка обманулся :) Я смотрел как раз справа циферку :) втупил.... FPS же - 35-64, очень мягко бегает :) почти как n-gage игры :)
|
Ответ: создание 3Д движка на j2me
Только на играх n-gage будет намного больше полигонов и эффектов.
А вообще думаю n-gage уже должен быть не самый быстрый девайс. |
Ответ: создание 3Д движка на j2me
Ух ты!))) Прикольно. Жаль в яве не шарю))).
|
Ответ: создание 3Д движка на j2me
еще бы и порталы сделать и можно было б уровни из комнот строит)
Только не очень понимаю как их сделать. напримар рисовать в редакторе портал со специальным материалом или в отдельном меше?!( |
Ответ: создание 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: |
Ответ: создание 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 |
Ответ: создание 3Д движка на j2me
Вложений: 1
Порталы пока сделать не получилось, но попробывал рисовать текущую комнату и соседнии. Работает не плохо) на моем к610й ~30фпс.
|
Ответ: создание 3Д движка на j2me
Упорство, достойное уважения!
|
Ответ: создание 3Д движка на j2me
ну я особо об стену не бился)
Только дней 5 назад начал это писать. Эх, если б порталы. Но как их создавать в 3д редакторе не понимаю. |
Ответ: создание 3Д движка на j2me
Вложений: 1
Сделал порталы:)
теперь рисуются все видимые комнаты и меньше полигонов рендерятся. 7 и 9 - менять размер экрана. # - рисовать порталы |
Часовой пояс GMT +4, время: 15:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot