Я пишу 2D-игру, используя обертку OpenGLES
. Существует камера, нацеленная на кучу текстур, которые являются спрайтами для игры. Пользователь должен иметь возможность перемещать вид вокруг, перемещая пальцы по экрану. Проблема в том, что камера находится на расстоянии около 100 единиц от текстур, поэтому, когда палец скользит по экрану для панорамирования камеры, спрайты движутся быстрее, чем палец из-за эффекта параллакса.конвертировать 2D-координаты экрана в 3D-координаты пространства в C++?
Так что, в основном, мне нужно преобразовать 2D-координаты экрана в 3D-координаты на определенном расстоянии от него (в моем случае 100, потому что это как далеко от текстур).
Есть функции "Unproject" в C#
, но я использую C++
, поэтому мне нужна математика за этой функцией. Я чрезвычайно новичок в 3D-материалах, и я очень плохо разбираюсь в математике, поэтому, если вы можете объяснить, как вы объясняете 10-летнему, что было бы очень оценено.
Если я могу это сделать, я могу качать камеру с такой скоростью, чтобы она выглядела так, как далекие спрайты панорамируют пальцем пользователя.
Некоторые из 10-летних очень хороши в математике: P –