Какие библиотеки для работы с 3d орбитальным аппаратом с <canvas>? - PullRequest
2 голосов
/ 23 июня 2011

Я хочу сделать 3-мерный орбитальный аппарат, поэтому мне, очевидно, нужны перспективные виды, движение камеры и т. Д. Мне также нужно уметь применять текстуры к геометрии.Учитывая сложность, я не вижу, чтобы это происходило ни с чем, кроме <canvas> или flash.

Насколько я понимаю, <canvas> ограничен 2d, но вы можете выполнять всю трехмерную работу сJS и просто выведите 2d проекцию на холст.Мое понимание тут же заканчивается, и выяснение всего этого кажется довольно сложным.

Вопрос № 1: Какие библиотеки трехмерной графики предлагают базовые функции, которые мне нужны (3d-> 2D перспективные проекции, текстуры, анимация камеры и плавный пользовательский ввод, который панорамирует, масштабирует, наклоняет, переворачивает и т. Д. Камеру)?

Вопрос № 2: Изнепатентованные библиотеки, которые предлагают такой тип функциональности, который я смог найти самостоятельно (three.js и C3DL), все они требуют webGL.WebGL в значительной степени требуется для этого типа вещей, или поддержка <canvas> достаточна?Если webGL не требуется, есть ли какая-либо причина использовать его, если я не делаю ничего, что могло бы затормозить процессор?

Примечание: я собираюсь пойти дальше и попытаться выучить three.jsчтобы сделать это, если кто-то не советует иначе.

1 Ответ

3 голосов
/ 23 июня 2011

Во-первых, Canvas никоим образом не «ограничен» 2D.Существует 2D-контекст, и если вы действительно хотите, вы можете сделать 3D-сцены с ним (см. Ниже).Как вы говорите, существует также контекст WebGL для 3D-рендеринга, который использует другую спецификацию.

Чтобы ответить на вопрос №2, WebGL никоим образом не является требованием.Например, эта библиотека проецирует 3D, используя только контекст 2D-холста:

http://arc.id.au/Canvas3DGraphics.html

Есть также несколько примеров проективного текстурирования / вращающихся объектов, таких как:

http://acko.net/files/projective/index.html

Чтобы ответить на вопрос № 1, есть библиотека, связанная выше, но она действительно единственная, которую я видел, которая использует 2D-контекст.

...