我想在android手機中使用org.opencv.android.javacameraview作爲背景。那麼我希望使用opengl在它上面繪製一些增強現實3D模型。任何人都知道如何實現這一點。從GLSurfaceView驅動opengl es。如何在android中使用opengl繪製3d對象,使用org.opencv.android.javacameraview作爲背景
0
A
回答
1
我使用Rajawali,它是OpenGL的疊加層。
我強烈建議你使用它作爲也需要花費大量的OpenGL的痛苦了。無論如何,我在下面提到的確涉及到一些Rajawali代碼,但原則應該是相似的,你應該能夠挑選出你需要的東西。如果你看看這裏,看看我的工作成果:
http://www.youtube.com/watch?v=yEioXZT-lv0
要做到這一點,我創建了攝像機視圖編程,而不是在佈局XML。我不得不去玩一下一下,但對於我下面的工作 - 這正好在你的活動onCreate方法:
mOpenCvCameraView = (CameraBridgeViewBase) new JavaCameraView(this, -1);
mOpenCvCameraView.setCvCameraViewListener(this);
mLayout.addView(mOpenCvCameraView);
mSurfaceView.setZOrderMediaOverlay(true);
setGLBackgroundTransparent(true);
mRenderer = new OpenGLRenderer(this);
mRenderer.setSurfaceView(mSurfaceView);
super.setRenderer(mRenderer);
mRenderer.setCameraPosition(0, 0, 20);
OpenGLRenderer這裏延伸RajawaliRenderer,進而延伸GLSurfaceView.Renderer。可能最好查看後兩者的源代碼,而不是在這裏重現。在我的OpenGLRenderer中,我在initScene()方法中設置了對象,相機等。我還添加了一些方法,可以從活動被調用,以控制物體移動等
我的活動與以下列出的那類的關鍵要素的延伸RajawaliActivity:
public class RajawaliActivity extends Activity {
protected GLSurfaceView mSurfaceView;
protected FrameLayout mLayout;
protected boolean mUsesCoverageAa;
private RajawaliRenderer mRajRenderer;
protected boolean checkOpenGLVersion = true;
protected boolean mDeferGLSurfaceViewCreation = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!mDeferGLSurfaceViewCreation)
createSurfaceView();
}
protected void createSurfaceView()
{
mSurfaceView = new GLSurfaceView(this);
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
mSurfaceView.setEGLContextClientVersion(2);
mLayout = new FrameLayout(this);
mLayout.addView(mSurfaceView);
setContentView(mLayout);
}
希望這有助於 - 祝你好運!
0
你可以在你的onCreate()
方法中這樣做。請記住,在setFormat(PixelFormat.TRANSLUCENT)
構造MyGLSurfaceView:
mGLView = new MyGLSurfaceView(this);
setContentView(mGLView);
mOpenCvCameraView = (CameraBridgeViewBase) new JavaCameraView(this, -1);
mOpenCvCameraView.setCvCameraViewListener(this);
addContentView(mOpenCvCameraView, new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
相關問題
- 1. 繪製3D使用OpenGL
- 2. Java openGL - 繪製3D對象
- 3. 使用java opengl1.0在android對象內繪製3d對象android
- 4. 如何在openGL中繪製背景
- 5. 如何使一個3D opengl繪製的對象響應點擊
- 6. 如何在Swift中使用核心圖形繪製3D對象?
- 7. 使用Opengl繪製立方體3D
- 8. 如何在OpenGL ES 2.0中將紋理繪製爲2D背景?
- 9. 如何在OpenGL中繪製3D矢量?
- 10. R:使用pdf作爲背景繪圖
- 11. 如何使用觸摸事件在OpenGL中旋轉3D對象?
- 12. 使用C繪製3D渲染場景#
- 13. 如何爲Android遊戲製作3D背景
- 14. 如何使用SharpDX工具包繪製透明的3D對象?
- 15. 使用OpenGL在android上繪製文本
- 16. 如何使用OpenGL繪製第一人稱對象
- 17. OpenGL-ES:如何使用不同的着色器繪製對象
- 18. 如何在遊戲中繪製3D背景
- 19. 如何使用unity3d在2D遊戲中繪製單色背景?
- 20. 如何製作背景css 3D?
- 21. 使用OpenGL ES在Android中進行3D點繪圖
- 22. 使用openGL中的觸摸屏控制3D對象的旋轉
- 23. 使用C在OpenGL中繪製多個對象
- 24. 使用OpenGL製作另一個對象
- 25. 如何繪製OpenGL ES的iPad背景圖像應用程序
- 26. 如何在android中使用OpenGl繪製Circle?
- 27. 如何在Android OpenGL ES中繪製對象數組'OnDrawFrame'
- 28. 使用形狀可繪製作爲我的背景xml
- 29. 使用可繪製的圖像作爲背景
- 30. 使用Theme.Light背景作爲LinearLayout背景
感謝你的幫助。我從代碼google https://code.google.com/p/andar/上獲得了一些有用的幫助。 – Choris
好的謝謝 - 看起來不錯。 – timegalore