Android - Как нарисовать 3D куб на реальной сцене (без маркера, камера открыта) - PullRequest
0 голосов
/ 11 мая 2011

Я знаю, что у меня есть основной вопрос, но я не могу думать, как я могу нарисовать куб , пока камера открыта. Я могу отдельно открыть камеру или нарисовать куб в сцене с фоном, используя GLSurfaceView.Renderer , однако я не знаю, как объединить эти два кода: значит, я не знаю, как нарисовать куб, когда камера открыта.


Я все еще борюсь с этой проблемой .. Вот как я пытаюсь это сделать:

в MainActivity, я называю вид камеры следующим образом:

Preview cameraPreview;
setContentView(R.layout.main);
    cameraPreview = new Preview(this);
    ((FrameLayout) findViewById(R.id.preview)).addView(cameraPreview);

и я расширяю это действие и вызываю 3D-куб , чтобы показать его на виде камеры

Однако безуспешно,

всякий раз, когда я включаю onPause () , onResume () во второй метод, приложение вылетает ...

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 10 мая 2012

Другая идея:

Шаги:1. Используйте класс SurfaceTexture для прямой загрузки потока камеры в текстуру OpenGL ES2. Рендеринг текстуры на экран с использованием полноэкранного текстурированного четырехугольника (отключение записи в буфер глубины)3. нарисуйте другой материал поверх изображения камеры, используя openGLИтак, что вы делаете: рисуйте и камеру, и 3D-объекты в GLSurfaceView.

0 голосов
/ 11 мая 2011

Это то, что называется дополненной реальностью. Возьмите Framelayout в вашем xml и добавьте его в свой код по его идентификатору.Затем добавьте SurfaceView и GlSurfaceView к FrameLayout.

...