Jump to content
Korean Random
Dragon armor

Мод "Эмулятор сервера World of Tanks".

Recommended Posts

3 минуты назад, SkepticalFox сказал:

У меня исходник есть. Толку-то, если не понимаю, что там происходит.

3 минуты назад, SkepticalFox сказал:

Тут еще scale передать можно, чего не передаешь?

Единичку передать? Там именно такой коэффициент масштабирования передаётся. С вьювером-то проблем и нет. Проблема с физическим движком.

Share this post


Link to post

Short link
Share on other sites
2 minutes ago, Dragon armor said:

Единичку передать?

scene::IMeshSceneNode *node_fr = smgr->addMeshSceneNode(mesh_preloaded[index], NULL, i, matrix_p.getTranslation(), matrix_p.getRotationDegrees(), matrix_p.getScale());

Ну я про это

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
1 час назад, SkepticalFox сказал:

Ну я про это

Да, тебя понял, поэтому и написал про единицу. Прототип функции

        virtual IMeshSceneNode* addMeshSceneNode(IMesh* mesh, ISceneNode* parent=0, s32 id=-1,
            const core::vector3df& position = core::vector3df(0,0,0),
            const core::vector3df& rotation = core::vector3df(0,0,0),
            const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f),
            bool alsoAddIfMeshPointerZero=false) = 0;

 

Коэффициент масштабирования единица по умолчанию. С вьювером всё нормально.

Или ты про то, что надо добавить масштабирование?

Share this post


Link to post

Short link
Share on other sites
1 minute ago, Dragon armor said:

Коэффициент масштабирования единица по умолчанию

А зачем тебе эта единица, когда у тебя в matrix_p есть scale -> matrix_p.getScale()

Share this post


Link to post

Short link
Share on other sites

Не, без него нормально получается.

Только что, SkepticalFox сказал:

А зачем тебе эта единица, когда у тебя в matrix_p есть scale -> matrix_p.getScale()

Да зачем? Это для вьювера. В нём всё хорошо получается.

И с масштабом в физическом движке так же всё верно.

Неправильно получается вращение и, возможно, позиционирование. Но оно, более-менее совпадает.

А почему один объект лежит на боку? А забор повёрнут, но не на боку? Но камни нормально лежат. А дома нет.

И то, не все дома, а только часть. Почему так избирательно?

Это очередная мелкая проблема, решение которой на поверхности. Но его надо найти. А для этого надо понять, что не так.

Или брутфорсить правильный вариант, как с ландшафтом было.

Share this post


Link to post

Short link
Share on other sites
1 hour ago, Dragon armor said:

Почему в визуализаторе правильная ориентация, не требуется менять X на Z?

Возможно твой визуализатор работает с форматом DX, а движок с форматом OpenGL

https://docs.microsoft.com/en-us/windows/win32/direct3d9/coordinate-systems?redirectedfrom=MSDN

 

11 minutes ago, Dragon armor said:

Или брутфорсить правильный вариант, как с ландшафтом было.

Кстати, а что с ним было?) heights.png вроде ни разу не менялся

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
9 минут назад, SkepticalFox сказал:

Возможно твой визуализатор работает с форматом DX, а движок с форматом OpenGL

Визуализатор может и с OpenGL, и с DirectX работать. У меня выбран первый вариант. А вот физический движок не зависит от системы координат. Там можно как угодно делать.

11 минут назад, SkepticalFox сказал:

Кстати, а что с ним было?) heights.png вроде ни разу не менялся

Сейчас покажу, если один-в-один выводить.

Каждая часть получается повёрнута на 90º.

terr.thumb.jpg.ddc965031f49047794e8bf43154c1907.jpg

Поэтому при позиционировании мне пришлось поменять оси XZ местами.

Похоже, что в физическом движке и в игре ландшафт создаётся с разного угла. Или хз как это работает.

Share this post


Link to post

Short link
Share on other sites
15 minutes ago, Dragon armor said:

Или хз как это работает.

ну так я же тебе ссылки кинул - в DirectX и OpenGL разные координатные системы

 

16 minutes ago, Dragon armor said:

Визуализатор может и с OpenGL, и с DirectX работать

это еще как? бэкэнды должны абстрагироваться от данных, и скорее всего данные ему нужны в формате DX, раз матрицы и вершины из игры без изменений принимает

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, SkepticalFox сказал:

ну так я же тебе ссылки кинул - в DirectX и OpenGL разные координатные системы

Да, видел. Пытаюсь осилить. И всё-равно не понимаю, что не так.

Вот первый объект. Его матрица.

 -0.24207699     0.072136000     0.073537000      0.00000000
0.073381998      0.25256500   -0.0061869998      0.00000000
-0.072293997     0.014819000     -0.25251999      0.00000000
-505.10995       57.825890       303.23520       1.0000000

Нижняя строка явно позиция. Да, мне пришлось поменять её, чтобы позиционирование заработало. А что ещё менять? И как? Ни opengl, ни dx тут ни при чём. Это надо, значит, с физическим движком разбираться. И физическому движку без разницы, левосторонняя или правосторонняя система координат. Но вот у меня не получается никак понять, что не так. И, опять же, почему какие-то объекты лежат на боку, а другие повёрнуты?

Сделал ровно ни черта, падающих домов уже нет. Вот как это работает? Что произошло?

Просто тупо без какой-то надежды

        matrix_p.setRotationDegrees(matrix_p.getRotationDegrees());

И уже только неправильно ориентированы по оси Z (или Y, что там вверх направлено в физдвижке).

Share this post


Link to post

Short link
Share on other sites
32 minutes ago, Dragon armor said:

И уже только неправильно ориентированы по оси Z (или Y, что там вверх направлено в физдвижке).

Ибо надо по рукам бить за memcpy в объект класса )

Шучу конечно

Вообще я не понял, что там заработало и что ты там поменял в матрице

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
10 часов назад, SkepticalFox сказал:

Ибо надо по рукам бить за memcpy в объект класса )

Да там метод такой есть, что позволяет таким образом делать.

10 часов назад, SkepticalFox сказал:

Вообще я не понял, что там заработало и что ты там поменял в матрице

Не заработало пока что.

3D мне даётся ну очень тяжко. Не понимаю многих вещей. По какой-то причине, если применить последовательно вызовы setRotationDegrees(getRotationDegrees) для той же матрицы, ориентация становится правильной. Но позиция при этом становится неправильная, а точнее, она зеркальная. Просто поменять знак осей - не вариант, потому что получается фигня.

mirror.thumb.jpg.dfa2e15edeb8238af2fec76cfe8c9ea8.jpg

 

Если точнее, то зеркально получается по диагонали.

mirror2.thumb.jpg.dc7279b7ef0fed01acd88b3d19709300.jpg

Share this post


Link to post

Short link
Share on other sites

 

 

В физический движок запихивать деревья в том виде, в каком они есть - это, всё-таки, не дело. Но в качестве пробы сойдёт.

 

shot_003.thumb.jpg.919aa637df270420913fd708a0c6fb79.jpgs_trees2.thumb.jpg.125184a45359f073f8c1af09df778b76.jpgs_trees3.thumb.jpg.eec782b28e2b91334753e85360b532ec.jpg

 

 

 

Даже самый зоркий глаз не заметит подвоха.

s_trees4.thumb.jpg.63ee523742def6331d4862f31ba899e8.jpgs_trees5.thumb.jpg.4af05c21f8b4593c0fb36d5dad9a751b.jpg

 

 

Зачем два файла speedtree? spt - зачем нужен? Он в движке используется? Вся геометрия в ctree же. Как понимаю, мне нужен именно второй. Его, собственно, и использовал. Точнее, ctree создаётся из spt. А в spt, как понимаю, прописаны дополнительные параметры, такие как влияние ветра на ветки.

Где прописаны коэффициенты маскировки кустов? Помню, что когда-то находил. Хотя и не уверен.

Где прописано поведение растительности? А именно, что может сломаться, а что нет (куст, трава). А то тут проблема вырисовывается.

 

 

2+ млн полигонов в физическом движке. Испытать бы его как-то, а то может разочаровать низкой производительностью. Это беда-печаль будет.

Share this post


Link to post

Short link
Share on other sites
32 минуты назад, Dragon armor сказал:

Где прописаны коэффициенты маскировки кустов?

 

О я тоже присоединяюсь к вопросу, а то всё хочу поглядеть на них.

Share this post


Link to post

Short link
Share on other sites
8 минут назад, StranikS_Scan сказал:

О я тоже присоединяюсь к вопросу, а то всё хочу поглядеть на них.

[stupid_me]А не могут ли быть они прописаны на стороне сервера?[/stupid_me]

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, Dragon armor сказал:

Но, даже если на стороне сервера, ничего не мешает сделать свои коэффициенты.

Насколько я помню, для деревьев действует упрощенная модель, где маскирует не сама крона, а то, что представляет из себя дерево в виде хитбоксов. Если грубо выражаться, то "палка с помятым шариком/консуом". 

Edited by DrWeb7_1

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 Листва маскирует. И у дерева, и у куста. Тут не важно, что за растительность. Вот только голые ветки тоже коэффициент маскировки дают, хоть и небольшой. Тут уже не уверен, хотя возможно, что в модели коллизии какие-то листья тоже есть.

Share this post


Link to post

Short link
Share on other sites
Только что, Dragon armor сказал:

Листва маскирует. И у дерева, и у куста.

Надо мне освежить память.:unsure:

Share this post


Link to post

Short link
Share on other sites
Цитата

Деревья. density - плотность листвы, влияет на видимость

Из файла destructibles.xml.

А вот где найти, разрушается ли дерево или нет?

Есть только косвенный признак - количество здоровья у кустов и травы равно 3. У остальных заметно выше. Можно пока что и такое предположение оставить. Всё-равно до реализации видимости ещё очень долго.

Share this post


Link to post

Short link
Share on other sites
2 часа назад, Dragon armor сказал:

Где прописаны коэффициенты маскировки кустов?

я когда то долго и нудно искал в клиенте,но нашел только в инете на каком то форуме и то они их тестили сами и исходя из результатов таблицу составили по каждой карте(почти по каждой,давно это было и некоторые карты совсем свежие были на тот момент),25%,50% и 75%....жаль забыл что за форум,да и карты уже перепиливали не раз и вообще сама система маскировки изменилась кардинально....в общем,скорее всего

 

1 час назад, DrWeb7_1 сказал:

они прописаны на стороне сервера

хотя я бы не отказался от модика,который показывает коэффициенты/нулевые(неработающие)/дырявые кустики/деревья....пусть даже примитивной миникарты с процентами:Default:

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...