Как я могу вручную вращать трехмерную сферу, основываясь на положениях x и y? - PullRequest
0 голосов
/ 16 января 2019

Это мой первый проект BabylonJS, и я застрял в понимании вращения сферы. Кроме того, это мой первый 3D-проект, поэтому я не могу сказать, что у меня это хорошо получается.

Я работаю над игрой в бильярд / снукер, разработанной в 2d с PixiJS (так что есть фиксированная камера), и теперь я хочу 3D анимированные шары, такие как Miniclip 8 Ball Pool. Miniclip использует спрайт-листы для имитации трехмерного вращения.

Я пришел к выводу, что интеграция BabylonJS решит этот запрос, и он почти исключил вращения шариков, которые придется решать вручную, поскольку сферы будут следовать координатам 2D-шариков, X и Y (Z фиксируется на нуле ). Прямо как здесь: https://zippy.gfycat.com/ShorttermFortunateFanworms.webm

Я нашел этот учебник, и он отлично работает в Unity, именно то, что мне нужно, но он не работает в моем проекте. http://kwarp.blogspot.com/2015/07/unity-rotate-3d-ball-using-2d-physics.html

Я думаю, проблема в том, что кватернион нужно умножить на вектор, я не уверен. Также попробовал это безрезультатно. http://www.html5gamedevs.com/topic/32934-multiply-a-vector3-times-a-quaternion/#comment-188880

Может кто-нибудь помочь мне с этим?

Я создал нечто подобное здесь, основываясь на координатах мыши. Земля должна вращаться, пока мышь движется. https://www.babylonjs -playground.com / # 0HCCW7 # 29

PS: я занимался поиском и исследованием множества тем и решений, но ни одна из них не сработала, или, может быть, это не в моих силах понять кватернионы и математику.

1 Ответ

0 голосов
/ 17 января 2019

Мне удалось решить эту проблему путем преобразования вектора вращения в кватернион, умножения его и преобразования конечного результата в углы Эйлера https://www.babylonjs -playground.com / # 0HCCW7 # 44

...