标签: rajawali

使用Rajawali3D从非本地源获取Android OpenGL纹理?

我使用OpenGL库Rajawali3D来显示我的模型.我想知道的是如何根据登录用户从我的服务器加载纹理?我已经在互联网上搜索了几个月,但没有成功.我发现这个网站解释了如何从非本地源加载纹理,但是当我尝试它时,它不适用于Rajawali.任何建议或例子将不胜感激.

这是我试图使用的网站:来自网络的纹理

android opengl-es rajawali

11
推荐指数
1
解决办法
269
查看次数

Android和Planet Rendering

我正在学习如何在android上进行3D开发.我从一个带有一些云的简单旋转行星开始.我花了两天的时间试图让大气层焕发光彩.我在线查看并尝试使用着色器,但无法走远.

我的问题是,实现这一目标的最佳方法是什么?我向正确的方向推动可能就是我所需要的一切.

我附上了迄今为止我所拥有的行星的截图,以及我拍摄的最终目标.

感谢您的任何帮助.

目前的进展:

在此输入图像描述

最终目标:http: //25.media.tumblr.com/tumblr_m06q7l7BpO1qk01v6o1_500.png

android opengl-es glsl rajawali

8
推荐指数
1
解决办法
1764
查看次数

如何使用3D Obj和Camera预览在rajawali和捕获屏幕中将Camera的预览设置为surfaceview的背景

我是Opengl的新手,我正在尝试使用rajawali来安装我的Android应用程序.

我正在尝试渲染一个3D对象,我想将3D对象背景显示为设备的Camera预览.我看到了实现此目的的一些结果,但他们建议使用CameraView并将其添加到内容视图中.

但我也希望捕获屏幕以及相机预览和3D对象模型.

我怎样才能在rajawali实现这一目标?

3d camera android opengl-es rajawali

8
推荐指数
0
解决办法
733
查看次数

从SD卡Rajawali解析.obj模型

我正在使用Rajawali 3D Framework并尝试从SDcard加载.obj文件.当我将这些文件(.obj,.mtl,texture.png(可绘制文件夹))放在原始文件夹上时,我能够上传和解析obj文件,但是当我尝试从sdcard解析它时,它说:

 [org.rajawali3d.materials.Material] Could not compile fragmentshader:
 Shader log: Fragment shader compilation failed.
Run Code Online (Sandbox Code Playgroud)

这是我从Sdcard上传.obj文件的代码:

private Object3D Object;
LoaderOBJ objParser = new LoaderOBJ(this,"Load/1c_obj");

            try {

                objParser.parse();
                Object = objParser.getParsedObject();
                getCurrentScene().addChild(Object);

            } catch (ParsingException e) {
                e.printStackTrace();
            }
Run Code Online (Sandbox Code Playgroud)

logcat的:

 D/Rajawali? Parsing: /storage/emulated/0/Load/1c_obj
 D/LoaderOBJ? Found Material Lib: 1c_mtl
 D/LoaderOBJ$MaterialLib? Parsing material: Texture0
 D/LoaderOBJ$MaterialLib? Parsing material: Texture1

    9578-9612/com.example.loadobj D/LoadModelFragment$LoadModelRenderer? startRendering()
    E/Rajawali? [org.rajawali3d.materials.Material] Could not compile fragment shader:
    9578-9612/com.example.loadobj E/Rajawali? Shader log: Fragment shader compilation failed.
    ERROR: 0:13: '.' : Syntax error:  syntax error …
Run Code Online (Sandbox Code Playgroud)

android opengl-es rajawali

6
推荐指数
1
解决办法
1835
查看次数

如何通过Google CardBoard Android SDK和Rajawali制作简单的VR视频播放器

我是这个地区的新人.我正在尝试更改github中的程序,以便现在播放纸板视频.

我使用StreamingTexture修改了MyRenderer.

public class MyRenderer extends RajawaliCardboardRenderer {

public MyRenderer(Context context) {
    super(context);
}

private MediaPlayer mMediaPlayer;
private StreamingTexture streamingTexture;

@Override
protected void initScene() {
    mMediaPlayer = MediaPlayer.create(this.getContext(), R.raw.test);

    streamingTexture = new StreamingTexture("video", mMediaPlayer);
    Sphere sphere = createPhotoSphereWithTexture(streamingTexture);

    getCurrentScene().addChild(sphere);

    getCurrentCamera().setPosition(Vector3.ZERO);
    getCurrentCamera().setFieldOfView(75);
}

private static Sphere createPhotoSphereWithTexture(ATexture texture) {

    Material material = new Material();
    material.setColor(0);

    try {
        material.addTexture(texture);
    } catch (ATexture.TextureException e) {
        throw new RuntimeException(e);
    }

    Sphere sphere = new Sphere(50, 64, 32);
    sphere.setScaleX(-1);
    sphere.setMaterial(material);

    return sphere;
} …
Run Code Online (Sandbox Code Playgroud)

android rajawali google-cardboard virtual-reality

6
推荐指数
1
解决办法
5423
查看次数

你如何让rajawali工作(关于git的教程1)

我对Android开发很新,我知道基本活动,地图,sqlite等.我希望能够实现一些3D对象,以便能够在我的应用程序中进行交互.经过一番搜索,我发现rajawali似乎是最好的方法.正如您所做的那样,我从第一篇教程开始,并从示例文档中读取源代码.我迷失的地方是我逐字逐句地遵循了教程,由于脚本中的错误,我无法运行应用程序.如果有人使用Rajawali之前我会指出一些关于我哪里出错的指示.(该教程最后更新于2个月前,因此它最近更新).教程

这是我的源代码

主要活动:

package rajawali.tutorials;

import rajawali.RajawaliActivity;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends RajawaliActivity {
    private Renderer mRenderer;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mRenderer = new Renderer(this);
        mRenderer.setSurfaceView(mSurfaceView);
        super.setRenderer(mRenderer);
    }   
}
Run Code Online (Sandbox Code Playgroud)

渲染:

package rajawali.tutorials;

import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import rajawali.lights.DirectionalLight;
import rajawali.materials.textures.ATexture.TextureException;
import rajawali.materials.textures.Texture;
import rajawali.primitives.Sphere;
import rajawali.renderer.RajawaliRenderer;

public class Renderer extends RajawaliRenderer {

    private DirectionalLight mLight;
    Sphere mSphere;

    public Renderer(Context context) {
        super(context);
        setFrameRate(60);
    }
    public void initScene() {
        mLight = new DirectionalLight(1f, 0.2f, -1.0f); …
Run Code Online (Sandbox Code Playgroud)

java android opengl-es-2.0 rajawali

5
推荐指数
1
解决办法
6201
查看次数

如何使用RajawaliVR或Rajawali播放360视频

我很难弄清楚如何使用Rajawali播放360视频.为了实现这一点,我尝试了我能在互联网上找到的所有解决方案,但我失败了.

首先,我使用了RajawaliCardboard,让MainActivity扩展CardboardActivity.同时,在MyRenderer课堂上,我让这门课从课堂上延伸出来RajawaliCardboardRenderer.在MyRenderer课堂上,我重写了这个initScene()功能:

protected void initScene() {
    StreamingTexture mTexture = null;
    if (externalMemoryAvailable())
    {
        mVideoPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/testVideo.mp4";
        try{
            mPlayer = new MediaPlayer();
            mPlayer.setDataSource(mVideoPath);
        }catch(IllegalArgumentException e){
        e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            mPlayer.prepare();
        } catch (IOException t) {
            t.printStackTrace();
        }
        mTexture …
Run Code Online (Sandbox Code Playgroud)

android video-streaming rajawali google-cardboard rajawalivr

4
推荐指数
1
解决办法
3899
查看次数

Rajawali旋转相机与Sensor.TYPE_ROTATION_VECTOR奇怪的行为

我正在创建一个全景视图,允许用户通过旋转智能手机环顾一下球形图像.我将Rajawali的Skybox与TYPE_ROTATION_VECTOR传感器一起使用.

我得到了它的工作,但只有当我向前看时(它实际上是基于我的旋转(偏航))

这是行为:

  • 期待:yaw = yaw,pitch = pitch and roll = roll
  • 向左看:yaw = yaw,pitch = roll and roll = pitch
  • 向后看:yaw = yaw,pitch = pitch*-1和roll = roll*-1.

现在我确实有预感正在发生什么.似乎"相机对象"一直看着相同的方向,即使它看起来不是这样.这意味着俯仰似乎与滚动相同,但是它仍然在俯仰,因为物体没有旋转.我把它比作飞机上的四处看看.

我需要做些什么来解决这个问题?

我有一种感觉,我将不得不用lookAt()旋转相机,但我不知道如何.

public class SkyboxFragment extends RajawaliFragment implements SensorEventListener {

    public static final String TAG = "SkyBoxFragment";
    private SensorManager mSensorManager;
    private float[] orientationVals = new float[3];
    private float[] mRotationMatrix = new float[16];
    private Sensor mRotVectSensor;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);

        LinearLayout ll = …
Run Code Online (Sandbox Code Playgroud)

android opengl-es rotation android-sensors rajawali

3
推荐指数
1
解决办法
1056
查看次数

使用min3d/Rajawali框架(android)在3d对象上旋转

我正在研究一种使用Min3d/Rajawali框架围绕3D物体旋转相机的算法.

在我的实现中,绕X轴的旋转不能正常工作.我认为该方法setLookAt()无法正常工作.

问题:

当我垂直旋转球体时,我无法完全看到它.例如,转动地球,我无法完全看到南极,因为算法会重置相机.

是否可以在不使用"setLookAt"方法的情况下实现相机围绕物体旋转?

我尝试了不同的解决方案,但无法使其正常工作.

以下是我的代码:

initScene:
    scene.camera().position.z = 90;
    scene.camera().target = raketeOBJ.position();

onTouchEvent:
    public boolean onTouchEvent(MotionEvent me) {
     if (me.getAction() == MotionEvent.ACTION_DOWN) {
        xpos = me.getX();
        ypos = me.getY();
        return true;
    }

    if (me.getAction() == MotionEvent.ACTION_UP) {
        xpos = -1;
        ypos = -1;
        touchTurn = 0;
        touchTurnUp = 0;
        return true;
    }

    if (me.getAction() == MotionEvent.ACTION_MOVE) {
        float xd = me.getX() - xpos;
        float yd = me.getY() - ypos;

        xpos = me.getX();
        ypos = me.getY();

        touchTurn …
Run Code Online (Sandbox Code Playgroud)

android rotation touch rajawali

2
推荐指数
1
解决办法
4038
查看次数

如何调试GLSurfaceView的内部崩溃?

我正在使用Android Cardboard SDK和开发一个VR视频查看器RajawaliVR(https://github.com/Rajawali/RajawaliVR)
在某些设备上,我从睡眠状态返回时出现此故障(其他人只显示黑屏):

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.opengl.GLSurfaceView$GLThread.surfaceCreated()' on a null object reference
    at android.opengl.GLSurfaceView.surfaceCreated(GLSurfaceView.java:523)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:580)
    at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:176)
    at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1970)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5891)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    at android.view.Choreographer.doFrame(Choreographer.java:550)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5292)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
Run Code Online (Sandbox Code Playgroud)

正如你可以看到崩溃在android代码中,我该如何开始调试呢?

android glsurfaceview rajawali google-cardboard rajawalivr

2
推荐指数
1
解决办法
3937
查看次数