Отображение 2D-объекта в 3D-пространство, поддержание 2D-размера - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть сферический примитив papervision3d, который я добавляю в сцену. Размер сферы измеряется с радиусом 285. Однако из-за свойств моей камеры (масштаб, фокус и z) сфера отображается с разрешением 206 пикселей вместо 570 пикселей, чего я и хочу (радиус 2 *).

Некоторое время назад я нашел сообщение в блоге, касающееся этой самой проблемы, и было объяснено, что вы можете установить z любого объекта в сцене так, чтобы он отображался в трехмерном пространстве с тем же размером, что и в двумерном пространстве, используя следующее:

mySphere.z = (this.camera.zoom * this.camera.focus) - Math.abs(this.camera.z) + radius;

Вышеописанное работало, когда я использовал несколько блоков, где радиус был заменен на ширину / 2. По какой-то причине это не работает для сферы.

Какие-нибудь идеи, указатели о том, как заставить сферу диаметром 570 пикселей отображаться на экране?

Спасибо.

1 Ответ

0 голосов
/ 25 мая 2010

Этого нельзя достичь, по крайней мере, не совсем точно. Перспективная проекция не отображает сферу на круг. Видите, как сферы на краях этого изображения деформируются? сетка сфер http://www.vis.uni -stuttgart.de / deepcue / spheres_saturation_big.jpg

...