Giter Site home page Giter Site logo

viromedia / virocore Goto Github PK

View Code? Open in Web Editor NEW
360.0 360.0 108.0 1.23 GB

ViroCore cross-platform AR/VR renderer

License: MIT License

Java 4.07% Metal 0.07% C++ 67.67% Objective-C 0.74% C 21.67% GLSL 0.25% CMake 0.11% CSS 1.11% JavaScript 2.63% C# 0.44% Smalltalk 0.01% Ruby 0.03% Objective-C++ 0.24% Shell 0.69% Makefile 0.08% Roff 0.07% M4 0.02% SAS 0.03% WebAssembly 0.03% Assembly 0.04%
3d-engine 3d-models android arcore arcore-android augmented-reality cardboard cardboard-vr daydream gear-vr gearvr java mobile-vr scene-graph scenegraph scenekit virtual-reality vr

virocore's People

Contributors

achuvm avatar dam00n avatar dthian avatar manbod avatar pnemonic78 avatar radvani avatar vikadvani avatar virohalliday avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

virocore's Issues

I am calculating X,Y,Z by using Latitude and Longitude

Hi, I am calculating [X, Y, Z]by using Latitude and Longitude. I want to place text node in that position now. But when I place the object in those positions, I am not able to view the text node.

Should I need to reset my current position using the same method used for objects? How to reset current position of the camera to specific XYZ position?

Link used to calculate XYZ by lat and long: https://github.com/mattholl/geo-to-cartesian/blob/master/index.js

Note: I convert link code into Java.

Fill node with texture with repeating

Hi there. I need to apply some bitmap texture to the node but do not stretch my bitmap to fill node's width and height. I want to place few such images to fill all node's surface with this texture. How can i achieve this?

Crash when running the new arcore demo

I write some test code based on the original demo, sometimes the app crashes when onRendererStart() get called, please help me figure out the problem.

Here is my code:

public void onRendererStart() {
        mScene = new ARScene();
        mScene.displayPointCloud(true);
        Node node = new Node();
        Surface surface = new Surface(1,1);
        Material material = new Material();
        material.setDiffuseColor(Color.parseColor("#BF000000"));
        surface.setMaterials(Arrays.asList(material));
        node.setPosition(new Vector(0, 0, -1));
        node.setGeometry(surface);
        mScene.getRootNode().addChildNode(node);
        mViroView.setScene(mScene);
    }

The logcat messages are as follows:

01-23 20:45:09.520 1893-1893/com.example.virosample.arcore A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x2036 in tid 1893 (rosample.arcore)
01-23 20:45:09.520 459: 459 W/ debuggerd: handling request: pid=1893 uid=10172 gid=10172 tid=1893
01-23 20:45:09.568 1090-1622/? E/LocSvc_eng: E/Calling gnss_sv_status_cb
01-23 20:45:09.621 2554-2554/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-23 20:45:09.621 2554-2554/? A/DEBUG: Build fingerprint: 'google/sailfish/sailfish:7.1/NDE63H/3256426:user/release-keys'
01-23 20:45:09.621 2554-2554/? A/DEBUG: Revision: '0'
01-23 20:45:09.621 2554-2554/? A/DEBUG: ABI: 'arm'
01-23 20:45:09.621 2554-2554/? A/DEBUG: pid: 1893, tid: 1893, name: rosample.arcore >>> com.example.virosample.arcore <<<
01-23 20:45:09.621 2554-2554/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2036
01-23 20:45:09.621 2554-2554/? A/DEBUG: r0 d0fd5737 r1 00000000 r2 00000000 r3 00000000
01-23 20:45:09.621 2554-2554/? A/DEBUG: r4 00002037 r5 ffd2f7f8 r6 00000000 r7 ffd2f7d0
01-23 20:45:09.621 2554-2554/? A/DEBUG: r8 d1127e49 r9 d12317e9 sl e3a87c90 fp d0fd5737
01-23 20:45:09.621 2554-2554/? A/DEBUG: ip d12535ac sp ffd2f790 lr d1094151 pc 00002036 cpsr 600f0030
01-23 20:45:09.912 2554-2554/? A/DEBUG: backtrace:
01-23 20:45:09.912 2554-2554/? A/DEBUG: #00 pc 00002036
01-23 20:45:09.912 2554-2554/? A/DEBUG: #1 pc 000ef14f /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (_Z13log_backtracePjj+162)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #2 pc 000ef037 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (_ZN15DebugStacktrace13logStacktraceEj+46)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #3 pc 0016e6d5 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so
01-23 20:45:09.912 2554-2554/? A/DEBUG: #4 pc 0016e743 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (_Z7_pabortPKciS0_S0_z+50)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #5 pc 00182e93 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (_ZN19VROThreadRestricted14passert_threadEv+74)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #6 pc 00102b3b /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (_ZN22VROSceneRendererARCoreC2ESt10shared_ptrIN3gvr8AudioApiEEN3jni6ObjectIN6arcore7SessionEEENS5_INS6_14ViroViewARCoreEEE+362)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #7 pc 001171a1 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (ZN9__gnu_cxx13new_allocatorI22VROSceneRendererARCoreE9constructIS1_JRSt10shared_ptrIN3gvr8AudioApiEERN3jni6ObjectIN6arcore7SessionEEERNSA_INSB_14ViroViewARCoreEEEEEEvPT_DpOT0+84)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #8 pc 001170b3 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2I22VROSceneRendererARCoreSaIS4_EJRSt10shared_ptrIN3gvr8AudioApiEERN3jni6ObjectIN6arcore7SessionEEERNSC_INSD_14ViroViewARCoreEEEEEESt19_Sp_make_shared_tagPT_RKT0_DpOT1+62)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #9 pc 00117045 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (ZNSt12__shared_ptrI22VROSceneRendererARCoreLN9__gnu_cxx12_Lock_policyE2EEC2ISaIS0_EJRSt10shared_ptrIN3gvr8AudioApiEERN3jni6ObjectIN6arcore7SessionEEERNSC_INSD_14ViroViewARCoreEEEEEESt19_Sp_make_shared_tagRKT_DpOT0+32)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #10 pc 00112d13 /data/app/com.example.virosample.arcore-2/lib/arm/libnative-lib.so (Java_com_viro_core_Renderer_nativeCreateRendererARCore+122)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #11 pc 000ad999 /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #12 pc 000a8fc1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #13 pc 004022e9 /system/lib/libart.so (art_quick_invoke_stub+232)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #14 pc 000b0271 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #15 pc 001eaefb /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+198)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #16 pc 001e628b /system/lib/libart.so (_ZN3art11interpreter6DoCallILb1ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+334)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #17 pc 003fc183 /system/lib/libart.so (MterpInvokeDirectRange+262)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #18 pc 0009c214 /system/lib/libart.so (ExecuteMterpImpl+15252)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #19 pc 001c922f /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #20 pc 001cdd8f /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #21 pc 001e6275 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb1ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+312)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #22 pc 003fc183 /system/lib/libart.so (MterpInvokeDirectRange+262)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #23 pc 0009c214 /system/lib/libart.so (ExecuteMterpImpl+15252)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #24 pc 001c922f /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #25 pc 001cdd8f /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #26 pc 001e54a7 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+450)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #27 pc 003fac1f /system/lib/libart.so (MterpInvokeDirect+266)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #28 pc 0009bf14 /system/lib/libart.so (ExecuteMterpImpl+14484)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #29 pc 001c922f /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #30 pc 001cdd8f /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #31 pc 001e54a7 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+450)
01-23 20:45:09.912 2554-2554/? A/DEBUG: #32 pc 003fac1f /system/lib/libart.so (MterpInvokeDirect+266)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #33 pc 0009bf14 /system/lib/libart.so (ExecuteMterpImpl+14484)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #34 pc 001c922f /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #35 pc 001cdcf9 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #36 pc 003f17d1 /system/lib/libart.so (artQuickToInterpreterBridge+716)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #37 pc 000ada13 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #38 pc 015925e1 /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.Activity.performCreate+60)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #39 pc 01676485 /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.Instrumentation.callActivityOnCreate+64)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #40 pc 0160368b /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.ActivityThread.performLaunchActivity+1398)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #41 pc 015fe745 /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.ActivityThread.handleLaunchActivity+176)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #42 pc 015f5d69 /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.ActivityThread.-wrap12+60)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #43 pc 015f3d5d /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.ActivityThread$H.handleMessage+5488)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #44 pc 015f10af /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.os.Handler.dispatchMessage+114)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #45 pc 01b99da9 /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.os.Looper.loop+716)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #46 pc 0160232f /system/framework/arm/boot-framework.oat (offset 0x157d000) (android.app.ActivityThread.main+426)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #47 pc 000a8fc1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #48 pc 004023f1 /system/lib/libart.so (art_quick_invoke_static_stub+228)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #49 pc 000b029b /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #50 pc 00312d07 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+58)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #51 pc 0031407b /system/lib/libart.so (_ZN3art12InvokeMethodERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectS4_S4_j+766)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #52 pc 002bb5b1 /system/lib/libart.so (ZN3artL13Method_invokeEP7_JNIEnvP8_jobjectS3_S3+40)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #53 pc 005adba9 /system/framework/arm/boot.oat (offset 0x51a000) (java.lang.reflect.Method.invoke+116)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #54 pc 0208bb21 /system/framework/arm/boot-framework.oat (offset 0x157d000) (com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run+100)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #55 pc 0208c9a7 /system/framework/arm/boot-framework.oat (offset 0x157d000) (com.android.internal.os.ZygoteInit.main+1218)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #56 pc 000a8fc1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #57 pc 004023f1 /system/lib/libart.so (art_quick_invoke_static_stub+228)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #58 pc 000b029b /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #59 pc 00312d07 /system/lib/libart.so (_ZN3artL18InvokeWithArgArrayERKNS_33ScopedObjectAccessAlreadyRunnableEPNS_9ArtMethodEPNS_8ArgArrayEPNS_6JValueEPKc+58)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #60 pc 00312b17 /system/lib/libart.so (_ZN3art17InvokeWithVarArgsERKNS_33ScopedObjectAccessAlreadyRunnableEP8_jobjectP10_jmethodIDSt9__va_list+266)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #61 pc 00275c5b /system/lib/libart.so (_ZN3art3JNI21CallStaticVoidMethodVEP7_JNIEnvP7_jclassP10_jmethodIDSt9__va_list+426)
01-23 20:45:09.913 2554-2554/? A/DEBUG: #62 pc 000669e9 /system/lib/libandroid_runtime.so
01-23 20:45:09.913 2554-2554/? A/DEBUG: #63 pc 000682b7 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime5startEPKcRKNS_6VectorINS_7String8EEEb+498)

Question: Creating surface between virtual objects

I'm new in 3d development so sorry if I'll tell something stupid :)

The question is: Can i create surface between four (or if its possible more than 4) virtual objects (by getting their vectors). For example I will place 4 objects on floor, using ViroViewARCore.performARHitTestWithRay() after that i will have 4 vectors of these objects. Then I want to fill area between these objects (in our case it is square) with some texture. I think that I need to create a surface and then add texture to the surface, but maybe there is another way.

Any comments will be helpful.
Thanks.

video record

Is there a way to record video without sound? I'm going to record video with my own audio file.

VideoTexture issue

I have played with your sample app for android ARCore and I have troubles with the VideoTexture.

I would like to play simple mp4 from url: https://media.giphy.com/media/WB0ZxnwTNOOBy/giphy.mp4

See code below:

final VideoTexture videoTexture = new VideoTexture(mViroView.getViroContext(), Uri.parse("https://media.giphy.com/media/WB0ZxnwTNOOBy/giphy.mp4"));
final Material material = new Material();
material.setDiffuseTexture(videoTexture);

final Surface surface = new Surface(10, 10);
surface.setMaterials(Arrays.asList(material));

videoTexture.play();

final Node node = new Node();
node.setPosition(position);
node.setGeometry(surface);

mScene.getRootNode().addChildNode(node);

but the app crashes after line fina VideoTexture videoTexture = ....

Stacktrace:

com.example.virosample.arcore E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]]
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/exoplayer2/trackselection/AdaptiveVideoTrackSelection$Factory;
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.AVPlayer.<init>(long, android.content.Context) (AVPlayer.java:79)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at long com.viro.core.VideoTexture.nativeCreateVideoTexture(long, java.lang.String) (VideoTexture.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri, com.viro.core.VideoTexture$PlaybackListener, com.viro.core.Texture$StereoMode) (VideoTexture.java:137)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri, com.viro.core.VideoTexture$PlaybackListener) (VideoTexture.java:117)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri) (VideoTexture.java:104)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity.createDroidAtPosition(com.viro.core.Vector) (ViroARPlanesDemoActivity.java:92)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity.access$000(com.example.virosample.ViroARPlanesDemoActivity, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:51)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity$1.onClick(int, com.viro.core.Node, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:75)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity$TrackedPlanesController$1.onClick(int, com.viro.core.Node, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:215)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.Node.onClick(int, com.viro.core.Node, com.viro.core.ClickState, float[]) (Node.java:1249)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.EventDelegate.onClick(int, int, int, float[]) (EventDelegate.java:205)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil.runTask(int) (PlatformUtil.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil.access$000(int) (PlatformUtil.java:45)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil$3.run() (PlatformUtil.java:345)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Looper.loop() (Looper.java:154)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6776)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1520)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1410)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470] Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.exoplayer2.trackselection.AdaptiveVideoTrackSelection$Factory" on path: DexPathList[[zip file "/data/app/com.example.virosample.arcore-2/base.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.virosample.arcore-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.vir
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.AVPlayer.<init>(long, android.content.Context) (AVPlayer.java:79)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at long com.viro.core.VideoTexture.nativeCreateVideoTexture(long, java.lang.String) (VideoTexture.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri, com.viro.core.VideoTexture$PlaybackListener, com.viro.core.Texture$StereoMode) (VideoTexture.java:137)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri, com.viro.core.VideoTexture$PlaybackListener) (VideoTexture.java:117)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.VideoTexture.<init>(com.viro.core.ViroContext, android.net.Uri) (VideoTexture.java:104)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity.createDroidAtPosition(com.viro.core.Vector) (ViroARPlanesDemoActivity.java:92)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity.access$000(com.example.virosample.ViroARPlanesDemoActivity, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:51)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity$1.onClick(int, com.viro.core.Node, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:75)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.example.virosample.ViroARPlanesDemoActivity$TrackedPlanesController$1.onClick(int, com.viro.core.Node, com.viro.core.Vector) (ViroARPlanesDemoActivity.java:215)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.Node.onClick(int, com.viro.core.Node, com.viro.core.ClickState, float[]) (Node.java:1249)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.EventDelegate.onClick(int, int, int, float[]) (EventDelegate.java:205)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil.runTask(int) (PlatformUtil.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil.access$000(int) (PlatformUtil.java:45)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.viro.core.internal.PlatformUtil$3.run() (PlatformUtil.java:345)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.os.Looper.loop() (Looper.java:154)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6776)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1520)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1410)
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470] 
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]     in call to NewGlobalRef
com.example.virosample.arcore A/art: art/runtime/java_vm_ext.cc:470]     from long com.viro.core.VideoTexture.nativeCreateVideoTexture(long, java.lang.String)

It was tested on Samsung S8

BTW great project! ๐Ÿ‘

Weird rendering of the Text

I'm trying to render a 3D text ("Hello"), but getting this weird output when I run it:

screen shot 2018-03-02 at 6 35 46 pm

Interestingly, the size of the letters match to the Hello text, but the pixels are all looking like 5s.

The code is:

        Text text = new Text(mViroView.getViroContext(), "Hello", 2, 1);
        text.setHorizontalAlignment(Text.HorizontalAlignment.CENTER);

        // Create a Node, position it, and attach the Text geometry to it
        Node textNode = new Node();
        textNode.setPosition(new Vector(0, 0, -1));
        textNode.setGeometry(text);

        Scene scene = new Scene();
        Node rootNode = scene.getRootNode();
        rootNode.addChildNode(textNode);

        mViroView.setScene(scene);

Any ideas on what might be causing this?

ViroSample-scene fails on Samsung Galaxy A5 (2016)

Hi guys!

The app crashes on Galaxy A5 2016 in scene demo, I know it doesn't support ARCore, but it looks like scene features must be supported.

How can I help you debug it? here is my logcat:

`12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #00 pc d3b2f01c /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN21VRORenderTargetOpenGL17attachNewTexturesEv+1979x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #1 pc d3b2f376 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN21VRORenderTargetOpenGL24createColorTextureTargetEv+33x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #2 pc d3b2b182 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN16VROChoreographer11setViewportE11VROViewportRSt10shared_ptrI9VRODriverE+145x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #3 pc d3b2276c /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN11VRORenderer9renderEyeE10VROEyeType11VROMatrix4fS1_11VROViewportSt10shared_ptrI9VRODriverE+47x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #4 pc d3a774dc /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN25VROSceneRendererSceneView11renderFrameEv+755x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #5 pc d3a771dc /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN25VROSceneRendererSceneView11onDrawFrameEv+21x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene I/Viro: #6 pc d3a90b5c /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (Java_com_viro_core_Renderer_nativeDrawFrame+55x)
12-23 20:28:19.291 15549-15566/com.example.virosample.scene W/Viro: ๏ฟฝ[1;33m[***********************************************************************]๏ฟฝ[0m
12-23 20:28:19.292 15549-15566/com.example.virosample.scene A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x58 in tid 15566 (GLThread 1306)

                                                                [ 12-23 20:28:19.293  2230: 2230 W/         ]
                                                                debuggerd: handling request: pid=15549 uid=10256 gid=10256 tid=15566

12-23 20:28:19.313 2324-2498/? D/AudioFlinger: mixer(0xf10839c0) Spend too much time to write: delta 296(effect 0, stage 0)
12-23 20:28:19.356 2882-2882/? D/WifiTrafficPoller: notifyOnDataActivity() - mBusMaxLock.acquire()
12-23 20:28:19.397 15670-15670/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-23 20:28:19.397 15670-15670/? A/DEBUG: Build fingerprint: 'samsung/a5xeltexx/a5xelte:7.0/NRD90M/A510FXXU4CQJ1:user/release-keys'
12-23 20:28:19.397 15670-15670/? A/DEBUG: Revision: '4'
12-23 20:28:19.397 15670-15670/? A/DEBUG: ABI: 'arm'
12-23 20:28:19.397 15670-15670/? A/DEBUG: pid: 15549, tid: 15566, name: GLThread 1306 >>> com.example.virosample.scene <<<
12-23 20:28:19.397 15670-15670/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x58
12-23 20:28:19.397 15670-15670/? A/DEBUG: r0 0000005b r1 00000000 r2 1b3dc2de r3 00000003
12-23 20:28:19.397 15670-15670/? A/DEBUG: r4 d3c0285f r5 d3c0a385 r6 d3c02acf r7 d38d6848
12-23 20:28:19.397 15670-15670/? A/DEBUG: r8 d3c04e5a r9 d3c0a5b1 sl d3c02adc fp 00000113
12-23 20:28:19.397 15670-15670/? A/DEBUG: ip d38d6364 sp d38d6830 lr d3aebb49 pc d3aebb48 cpsr 600f0030
12-23 20:28:19.400 15670-15670/? A/DEBUG: backtrace:
12-23 20:28:19.400 15670-15670/? A/DEBUG: #00 pc 0016ab48 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so
12-23 20:28:19.400 15670-15670/? A/DEBUG: #1 pc 0016aab5 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (Z7_pabortPKciS0+8)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #2 pc 001ae01d /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN21VRORenderTargetOpenGL17attachNewTexturesEv+1980)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #3 pc 001ae377 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN21VRORenderTargetOpenGL24createColorTextureTargetEv+34)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #4 pc 001aa183 /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN16VROChoreographer11setViewportE11VROViewportRSt10shared_ptrI9VRODriverE+146)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #5 pc 001a176d /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN11VRORenderer9renderEyeE10VROEyeType11VROMatrix4fS1_11VROViewportSt10shared_ptrI9VRODriverE+48)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #6 pc 000f64dd /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN25VROSceneRendererSceneView11renderFrameEv+756)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #7 pc 000f61dd /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (_ZN25VROSceneRendererSceneView11onDrawFrameEv+22)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #8 pc 0010fb5d /data/app/com.example.virosample.scene-1/lib/arm/libnative-lib.so (Java_com_viro_core_Renderer_nativeDrawFrame+56)
12-23 20:28:19.400 15670-15670/? A/DEBUG: #9 pc 005d7079 /data/app/com.example.virosample.scene-1/oat/arm/base.odex (offset 0x58f000)`

Provide Bounding Box For nodes

I couldnโ€™t find boundingBox or boundingSphere for Viro3DObject, so can you recommend a way I could get the dimensions (width, height, depth) of my Viro3DObject node?

Use case: I have a bunch of 3D models, and a want them to fit inside a 0.2 x 0.2 x 0.2 box. So I basically want to calculate the scale amount I need to scale them to fit.

Crash: JNI ERROR (app bug): local reference table overflow (max=512)

The app is getting crashed when the obj file is too large. Below is the stacktrace of the crash-

02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] JNI ERROR (app bug): local reference table overflow (max=512)
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] local reference table dump:
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] Last 10 entries (of 512):
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 511: 0x12c9d6a0 java.lang.Class<com.viro.core.Texture$FilterMode>
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 510: 0x12c605b0 com.viro.core.Texture$WrapMode
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 509: 0x12c9d880 java.lang.Class<com.viro.core.Texture$WrapMode>
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 508: 0x12c605b0 com.viro.core.Texture$WrapMode
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 507: 0x12c9d880 java.lang.Class<com.viro.core.Texture$WrapMode>
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 506: 0x12c542b0 com.viro.core.Texture
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 505: 0x12ddb840 java.lang.Class<com.viro.core.Texture>
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 504: 0x12c60688 com.viro.core.Texture$FilterMode
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 503: 0x12c9d6a0 java.lang.Class<com.viro.core.Texture$FilterMode>
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 502: 0x12c60688 com.viro.core.Texture$FilterMode
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] Summary:
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material$ShadowMode (1 unique instances)
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material$CullMode (1 unique instances)
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material$TransparencyMode (1 unique instances)
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material$BlendMode (1 unique instances)
02-16 21:53:34.799 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 105 of com.viro.core.Texture$FilterMode (1 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 72 of com.viro.core.Texture$WrapMode (1 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 1 of com.viro.core.Object3D
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material (6 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 36 of com.viro.core.Texture (36 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 6 of com.viro.core.Material$LightingModel (2 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 252 of java.lang.Class (11 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 9 of java.lang.String (9 unique instances)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116] 1 of java.lang.String[] (3 elements)
02-16 21:53:34.800 17211-17211/com.example.virosample.scene A/art: art/runtime/indirect_reference_table.cc:116]
02-16 21:53:34.963 17211-17233/com.example.virosample.scene W/Viro: ๏ฟฝ[1;33m[******************************** ABORT ********************************]๏ฟฝ[0m
02-16 21:53:34.963 17211-17233/com.example.virosample.scene W/Viro: ๏ฟฝ[1;33m File: /Users/vadvani/ViroReact/ViroRenderer/ViroRenderer/VROMaterialSubstrateOpenGL.cpp๏ฟฝ[0m
02-16 21:53:34.963 17211-17233/com.example.virosample.scene W/Viro: ๏ฟฝ[1;33m Line: 81๏ฟฝ[0m
02-16 21:53:34.963 17211-17233/com.example.virosample.scene W/Viro: ๏ฟฝ[1;33m Function: virtual void VROMaterialSubstrateOpenGL::bindView(VROMatrix4f, VROMatrix4f, VROMatrix4f, VROMatrix4f, VROVector3f, VROEyeType)๏ฟฝ[0m
02-16 21:53:34.963 17211-17233/com.example.virosample.scene W/Viro: ๏ฟฝ[0;33m Reason: ASSERTION FAILED
Expression: _activeBinding != nullptr๏ฟฝ[0m
02-16 21:53:34.964 17211-17233/com.example.virosample.scene A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x308d5118 in tid 17233 (GLThread 5688)
02-16 21:53:38.212 17211-17235/? W/AudioTrack: releaseBuffer() track 0xa6c3d000 disabled due to previous underrun, restarting

Need Help with Loading PBR Model and Materials

I am trying to render simple obj model in with PBR asset.zip

another assets https://poly.google.com/view/5vbJ5vildOq
PBR enabled:

 RendererConfiguration config = new RendererConfiguration();
        config.setShadowsEnabled(true);
        config.setBloomEnabled(true);
        config.setHDREnabled(true);
        config.setPBREnabled(true);

        mViroView = new ViroViewARCore(this, this, config);

When model is loaded :

   @Override
    public void onObject3DLoaded(Object3D object3D, Object3D.Type type) {
        Log.e("Stand", "onObject3DLoaded");
        final List<Material> materials = object3D.getMaterials();
        for (Material material : materials) {
            material.setMetalness(0.6f);
            material.setRoughness(0.1f);
            material.setLightingModel(Material.LightingModel.PHYSICALLY_BASED);
            material.setTransparencyMode(Material.TransparencyMode.RGB_ZERO);
        }
    }

Environment:

   Texture environment = Texture.loadRadianceHDRTexture(Helper.getUri(ASSET_PATH));
        mArScene.setLightingEnvironment(environment);
        mArScene.setBackgroundTexture(environment);

Result:
1521215122671
Something wrong with material? Any help will be appreciated!

Access to raw camera data in ARCore session?

Hi there, thanks for this project!

Is it possible to get access to the raw camera data during an ARCore session? I created an issue with the arcore team for the same functionality, and they suggest using a separate surface, and reading the data from there. They even provide an example TextureReader that could be used, as long as you have the textureId.

If ViroCore doesn't provide this functionality, does (or can it) provide a reference to the background texture, so that I can use the TextureReader above?

Simulate a visible light

Hi guys, I'm trying to simulate a visible light like this one
1519116663076
Does your framework able to do such effect?
Any help or idea will be appreciated !

How to load .mtl file of Object

Hello,

When I have to create 3D model, I have got .mtl file related to the 3D model. So how to load a .mtl file in virocore ?

App crashes on devices with ABI arm64-v8a throws Error: java.lang.UnsatisfiedLinkError

It throws java.lang.UnsatisfiedLinkError when I try to load a 3D model using an OBJ file. Below is my stacktrace:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example-2/base.apk", zip file "/data/app/com.example-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.example-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example-2/lib/arm64, /data/app/com.example-2/base.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.example-2/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]] couldn't find "libgvr.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:972)
at java.lang.System.loadLibrary(System.java:1567)
at com.viro.core.ViroViewScene.(ViroViewScene.java:50)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
at android.view.LayoutInflater.createView(LayoutInflater.java:652)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.inflate(LayoutInflater.java:525)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.example.model3d.virocore.ViroActivity.onCreate(ViroActivity.java:106)
at android.app.Activity.performCreate(Activity.java:6912)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6688)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

Add overlays for video

Hello Dear Viro support team,

Lets imagine I left an object on scene, and also above the scene I'm showing some frame, for example photo frame as ImageView above Surface view.
Now I want capture video, is there any way add overlay to the video?
Should it be added as object on scene or there is another way?

Many thanks, kind regards, Ivan

Make "Bitmap" screenshot without saving to file

Hello Dear Viro team,
is there any way to make screenshot without save to file chain?
I just found only ViroMediaRecorder and recorder.takeScreenShotAsync method.
I need to have a bitmap. Is there any another public API or plans to provide it?

object persistency in AR

I want to create an application that store the position,rotation and scale of multiple object and when i close application and reopen than all the stored object must be at there respective position.

I am able to place object with the stored position but issue is that i can't place than at correct position as earlier.
the object are overlapping with each other.

Do you have any solution around that.I am looking for android app side.

Nested portalscene content is shown outside of portalscene?

I have a portal (portal 1) (a rectangle with a transparent cover in the middle, which shows the portalscene) at -0.5f in front of me.

I have a portal (portal 2) (same rectangle shape) inside the portalscene of the first portal, located at +0.5f behind me.

If I look around in the ''real world'' I only see portal 1. If I look around inside portal 1 I can find portal 2.

However, if I position myself so that portal 2 is behind portal 1 while I'm in the portal 1 portalscene, I can see portal2 inside the real world. (It does not get cropped out of the view into the ''real world'')

I will add images and code later to expand if necessary. It may be due to user error, but as the documentation is kind of lacking for Portals I've been trying to figure it out on my own. :p

ProductARActivity is not needed

https://github.com/viromedia/virocore/tree/master/ARRetail/app/src/main/java/com/example/virosample

Hi.
I would like to propose two modifications.

  • Delete ProductARActivity
  • Rename ProductARActivityComplete to ProductARActivity.

First, ProductARActivity does the same thing as ProductARActivityComplete (INTENT_PRODUCT_KEY also exists in ProductARActivityComplete).
Next, ProductARActivity's name is easily and simply than ProductARActivityComplete.

I fixed it, so please give me permission if necessary.

ViroCore is so cool. Thanks.

Camera resolution

Now what resolution do we support? I think the resolution is a little bit low right now?

Set camera lookat to a fixed point

I am trying to set lookat of my camera to a fixed point of my model and then rotating my camera to view it from different angles. But the lookat doesnโ€™t seems to be fixed and my model goes out of window when I move my camera. I am using below code to achieve this:

final Scene scene = new Scene();
    obj = new Object3D();
    Vector position = new Vector(0, -1, 0);
    obj.setPosition(position);

    obj.loadModel(Uri.parse("file:///android_asset/truck.obj"), Object3D.Type.OBJ, new AsyncObject3DListener() {
        public void onObject3DFailed(String error) {
            Log.w(TAG, "Failed to load the model");
        }

        public void onObject3DLoaded(Object3D object, Object3D.Type type) {
            Log.i(TAG, "Successfully loaded the model!");
            object.setScale(new Vector(0.2f, 0.2f, 0.2f));
        }
    });

    AmbientLight ambient = new AmbientLight(Color.WHITE, 1000.0f);
    scene.getRootNode().addLight(ambient);

    cameraNode = new Node();

    camera = new Camera();
    camera.setRotationType(Camera.RotationType.ORBIT);
    camera.setPosition(new Vector(0, 50, 3));
    cameraNode.setRotation(new Vector((float) 0, -Math.PI / 2.0f, 0));
    camera.setOrbitFocalPoint(new Vector(0, -1, 0));
    cameraNode.setCamera(camera);

    scene.getRootNode().addChildNode(cameraNode);
    scene.getRootNode().addChildNode(obj);
    mViroView.setPointOfView(cameraNode);

    mViroView.setScene(scene);

Now when I move my camera to a position like camera.setPosition(new Vector(0, 50, 40), my object moves somewhere out of the screen.

Please let me know if I am missing something.

Change min sdk from 21 or remove constraint

Currently right now developers have to change their min sdk to 21 to use Viro. While it makes sense, this seems really short sighted as it hardly takes into account an app that is not primarily AR or already existing with users that are not on 21.
Using tools:overrideLibrary="com.viro.renderer" allows for compilation but of course, still breaks when trying to use. It would seem that ideally users should be able to integrate or start with Viro fairly easily, especially to avoid having to split their project to support two apks on the play store. The current Android SDK just crashes when code is referring to features that are not supported. It allows for the developer to be able to do things like check the sdk and choose whether or not to allow the user to access that feature.

Perhaps it is something to consider.

updated time

arcore updated, virocore will update soon, is it right ?

Question about rotate

How can i rotate object? I was thinking it will works like dragging, just add DragListener, but i was wrong. Thanks.

Change materials of loaded .obj file at runtime

Github Issue to track a developer feature request.

"I am trying to change parts of a loaded .obj file at runtime. The textures are loaded first via an .mtl file. Whenever I try to get a reference to the materials to change them at runtime the materials are null.

What I would like to achieve:I would like to only change one texture of the loaded 3dObject, not the diffuseColor or the diffuseTexture. How can this be achieved?"

Failed to compile vertex shader

I'm getting the following crash on launch on some devices. Any idea what's going wrong? Any work arounds? Thanks!

03-03 02:56:07.452 3573-3596/com.example.ican.edgy W/Viro: ๏ฟฝ[1;33m[******************************** ABORT ********************************]๏ฟฝ[0m
03-03 02:56:07.452 3573-3596/com.example.ican.edgy W/Viro: ๏ฟฝ[1;33m        File: /Users/vadvani/ViroReact/ViroRenderer/ViroRenderer/VROShaderProgram.cpp๏ฟฝ[0m
03-03 02:56:07.452 3573-3596/com.example.ican.edgy W/Viro: ๏ฟฝ[1;33m        Line: 303๏ฟฝ[0m
03-03 02:56:07.452 3573-3596/com.example.ican.edgy W/Viro: ๏ฟฝ[1;33m    Function: bool VROShaderProgram::compileAndLink()๏ฟฝ[0m
03-03 02:56:07.453 3573-3596/com.example.ican.edgy W/Viro: ๏ฟฝ[0;33m      Reason: Failed to compile vertex shader "constant_diffuse" with code:
                                                           #version 300 es
                                                           
                                                           layout (std140) uniform lighting_vertex {
                                                               int lv_num_lights;
                                                               lowp float lv_padding0, lv_padding1, lv_padding2;
                                                               
                                                               mat4 shadow_view_matrices[8];
                                                               mat4 shadow_projection_matrices[8];
                                                           };
                                                           
                                                           struct VROShaderGeometry {
                                                               vec3 position;
                                                               vec3 normal;
                                                               vec2 texcoord;
                                                               vec4 tangent;
                                                               vec4 bone_weights;
                                                               ivec4 bone_indices;
                                                           } _geometry;
                                                           
                                                           struct VROShaderVertex {
                                                               vec4 position;
                                                           } _vertex;
                                                           
                                                           struct VROTransforms {
                                                               mat4 model_matrix;
                                                               mat4 view_matrix;
                                                               mat4 projection_matrix;
                                                           } _transforms;
                                                           
                                                           in vec3 position;
                                                           in vec3 normal;
                                                           in vec2 texcoord;
                                                           in vec4 tangent;
                                                           in vec4 bone_weights;
                                                           in ivec4 bone_indices;
                                                           
                                                           uniform mat4 normal_matrix;
                                                           uniform mat4 model_matrix;
                                                           uniform mat4 view_matrix;
                                                           uniform mat4 projection_matrix;
                                                           
                                                           #pragma geometry_modifier_uniforms
                                                           #pragma vertex_modifier_uniforms
                                                           
                                                           out mat3 v_tbn;
                                                           out vec2 v_texcoord;
                                                           out vec3 v_surface_position;
                                                           flat out int v_instance_id;

Camera button doesn't work

Hi.

CameraButton doesn't work in ARRetail.
Error message in Logcat is below.

E/Viro: onTaskFailed NO_PERMISSIONS

Camera button does work when I set permission in settings.
Maybe, I think that ARRatail is caused by not setting Runtime permission about Storage.

Thanks.

Enviroment

- Pixel XL
- Android 8.1(API:27)

flash

Do virocore support camera flash?

Portal scene not working properly.

Creating this issue to track @mistrydarshan99 's issue from comment in #1

Hello,

package com.example.virosample.custom;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.virosample.R;
import com.example.virosample.ViroHelper;
import com.viro.core.ARAnchor;
import com.viro.core.ARNode;
import com.viro.core.ARScene;
import com.viro.core.Object3D;
import com.viro.core.OmniLight;
import com.viro.core.Portal;
import com.viro.core.PortalScene;
import com.viro.core.RendererStartListener;
import com.viro.core.Texture;
import com.viro.core.Vector;
import com.viro.core.ViroViewARCore;
import java.lang.ref.WeakReference;

public class PortalActivity extends AppCompatActivity implements RendererStartListener {

  private ViroViewARCore mViroView;
  private ARScene mScene;

  @Override protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mViroView = new ViroViewARCore(this, this);
    setContentView(mViroView);
  }

  @Override public void onRendererStart() {
    setUpScene();

  }

  private void setUpScene() {
    mScene = new ARScene();
    //add a listener to the scene so we can update 'AR Init' text.
    mScene.setListener(new PortalActivity.ARSceneListener(this, mViroView));

    // Add a Light so the ship door portal entrance will be visible
    OmniLight light = new OmniLight();
    light.setColor(Color.WHITE);
    light.setPosition(new Vector(0, 1, -4));
    mScene.getRootNode().addLight(light);

    mViroView.setScene(mScene);
    //View.inflate(this, R.layout.viro_view_ar_hit_test_hud, ((ViewGroup) mViroView));
    View.inflate(this, R.layout.layout_demo, ((ViewGroup) mViroView));
    setUpPortalView();
  }

  private void setUpPortalView() {


    // Load a model representing the ship door
    Object3D shipDoorModel = new Object3D();
    shipDoorModel.loadModel(Uri.parse("file:///android_asset/portal_ship.vrx"), Object3D.Type.FBX,
        null);

    // Create a Portal out of the ship door
    Portal portal = new Portal();
    portal.addChildNode(shipDoorModel);
    portal.setScale(new Vector(0.5, 0.5, 0.5));

    // Create a PortalScene that uses the Portal as an entrance.
    PortalScene portalScene = new PortalScene();
    portalScene.setPosition(new Vector(0, 0, -5));
    portalScene.setPortalEntrance(portal);

    // Add a 'beach' background for the Portal scene
    final Bitmap beachBackground = ViroHelper.getBitmapFromAsset(this, "beach.jpg");
    final Texture beachTexture = new Texture(beachBackground, Texture.Format.RGBA8, true, false);
    portalScene.setBackgroundTexture(beachTexture);

    mScene.getRootNode().addChildNode(portalScene);
  }

  @Override protected void onStart() {
    super.onStart();
    mViroView.onActivityStarted(this);
  }

  @Override protected void onResume() {
    super.onResume();
    mViroView.onActivityResumed(this);
  }

  @Override protected void onPause() {
    super.onPause();
    mViroView.onActivityPaused(this);
  }

  @Override protected void onStop() {
    super.onStop();
    mViroView.onActivityStopped(this);
  }

  /*
  Private class that implements ARScene.Listener callbacks. In this example we use this to notify the user
  AR is initialized.
  */
  private static class ARSceneListener implements ARScene.Listener {
    private WeakReference<Activity> mCurrentActivityWeak;

    public ARSceneListener(Activity activity, View rootView) {
      mCurrentActivityWeak = new WeakReference<Activity>(activity);
    }

    @Override public void onTrackingInitialized() {
      Activity activity = mCurrentActivityWeak.get();
      if (activity == null) {
        return;
      }

      TextView initText = (TextView) activity.findViewById(R.id.initText);
      initText.setText("AR is initialized.");
    }

    @Override public void onAmbientLightUpdate(float v, float v1) {

    }

    @Override public void onAnchorFound(ARAnchor arAnchor, ARNode arNode) {

    }

    @Override public void onAnchorRemoved(ARAnchor arAnchor, ARNode arNode) {

    }

    @Override public void onAnchorUpdated(ARAnchor arAnchor, ARNode arNode) {

    }
  }
}

I have to used above code for portal scene but it's not working properly.

Getting exception Caused by: com.google.ar.core.exceptions.UnavailableArcoreNotInstalledException

Hi, I am trying to run sample code from "ARRetail". But, I am getting the following exception.
I am using Google Pixel and also installed Arcore-preview.apk.

02-28 04:35:42.480 12594-12594/com.example.virosample.arcore E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.virosample.arcore, PID: 12594
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.virosample.arcore/com.example.virosample.ProductARActivityComplete}: com.google.ar.core.exceptions.UnavailableArcoreNotInstalledException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: com.google.ar.core.exceptions.UnavailableArcoreNotInstalledException
at com.google.ar.core.Session.throwExceptionFromArStatus(Session.java:343)
at com.google.ar.core.Session.nativeCreateSession(Native Method)
at com.google.ar.core.Session.(Session.java:87)
at com.viro.core.ViroViewARCore.init(ViroViewARCore.java:239)
at com.viro.core.ViroViewARCore.(ViroViewARCore.java:192)
at com.example.virosample.ViroActivity.onCreate(ViroActivity.java:58)
at com.example.virosample.ProductARActivityComplete.onCreate(ProductARActivityComplete.java:91)
at android.app.Activity.performCreate(Activity.java:6999)
at android.app.Activity.performCreate(Activity.java:6990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)

Thank you in advance.

FBX to VRX converting and rendering issue

Hi guys.
I'm trying to convert FBX 3D model to VRX corresponds to your guide, described here https://virocore.viromedia.com/docs/3d-objects#section-fbx
I have faced (probably)2 issues - first one while converting to vrx I see next Log:

โžœ  BB8 New 2 ./ViroFBX bb8.FBX bb8_v.vrx
2018-02-19 09:55:52.930 ViroFBX[14053:1134388] "Loading file [bb8.FBX]"
2018-02-19 09:55:52.938 ViroFBX[14053:1134388] "Import successful"
2018-02-19 09:55:53.000 ViroFBX[14053:1134388] "   Original up axis 2, sign 1"
2018-02-19 09:55:53.000 ViroFBX[14053:1134388] "   Original forward axis 2, sign 1"
2018-02-19 09:55:53.000 ViroFBX[14053:1134388] "   Coordinate system 0"
2018-02-19 09:55:53.000 ViroFBX[14053:1134388] "Triangulating scene..."
2018-02-19 09:55:53.001 ViroFBX[14053:1134388] "Exporting FBX..."
2018-02-19 09:55:53.004 ViroFBX[14053:1134388] "Exporting skeleton"
2018-02-19 09:55:53.005 ViroFBX[14053:1134388] "Exporting node [Object004], type [mesh]"
2018-02-19 09:55:53.005 ViroFBX[14053:1134388] "   Geo-only translation 0.447932, -0.201059, 52.013447"
2018-02-19 09:55:53.005 ViroFBX[14053:1134388] "   Geo-only rotation 0.000000, 0.000000, -35.500000"
2018-02-19 09:55:53.005 ViroFBX[14053:1134388] "   Exporting geometry"
2018-02-19 09:55:53.051 ViroFBX[14053:1134388] "      UV set name UVChannel_1"
2018-02-19 09:55:53.051 ViroFBX[14053:1134388] "      Polygon count 16290"
2018-02-19 09:55:53.093 ViroFBX[14053:1134388] "      Num vertices 48870, stride 48"
2018-02-19 09:55:53.093 ViroFBX[14053:1134388] "      VAR size 2345760"
2018-02-19 09:55:53.093 ViroFBX[14053:1134388] "   Exporting materials"
2018-02-19 09:55:53.093 ViroFBX[14053:1134388] "      Num materials 11"
2018-02-19 09:55:53.095 ViroFBX[14053:1134388] "      Primitive count for material 0: 2723"
2018-02-19 09:55:53.095 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "      Primitive count for material 1: 228"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "      Phong material"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "         Opacity set to 1.000000"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "      Primitive count for material 2: 228"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "      Phong material"
2018-02-19 09:55:53.097 ViroFBX[14053:1134388] "         Opacity set to 1.000000"
2018-02-19 09:55:53.098 ViroFBX[14053:1134388] "      Primitive count for material 3: 832"
2018-02-19 09:55:53.098 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.098 ViroFBX[14053:1134388] "      Primitive count for material 4: 1280"
2018-02-19 09:55:53.098 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.099 ViroFBX[14053:1134388] "      Primitive count for material 5: 1920"
2018-02-19 09:55:53.099 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.100 ViroFBX[14053:1134388] "      Primitive count for material 6: 2050"
2018-02-19 09:55:53.100 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.101 ViroFBX[14053:1134388] "      Primitive count for material 7: 3600"
2018-02-19 09:55:53.101 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.102 ViroFBX[14053:1134388] "      Primitive count for material 8: 2149"
2018-02-19 09:55:53.102 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.102 ViroFBX[14053:1134388] "      Primitive count for material 9: 896"
2018-02-19 09:55:53.102 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.102 ViroFBX[14053:1134388] "      Primitive count for material 10: 384"
2018-02-19 09:55:53.103 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.106 ViroFBX[14053:1134388] "   No skeleton found, will not export skin"
2018-02-19 09:55:53.106 ViroFBX[14053:1134388] "   Exporting blend shape animations"
2018-02-19 09:55:53.106 ViroFBX[14053:1134388] "   Mesh had no deformers, not exporting blend shape animations"
2018-02-19 09:55:53.106 ViroFBX[14053:1134388] "   Exporting keyframe animations"
2018-02-19 09:55:53.106 ViroFBX[14053:1134388] "      Animation [Take 001] duration 3333 ms"
2018-02-19 09:55:53.107 ViroFBX[14053:1134388] "Exporting node [Box001], type [mesh]"
2018-02-19 09:55:53.107 ViroFBX[14053:1134388] "   Geo-only translation 39.511131, -27.978172, -44.302879"
2018-02-19 09:55:53.107 ViroFBX[14053:1134388] "   Geo-only rotation 29.701221, -38.995255, -77.494820"
2018-02-19 09:55:53.107 ViroFBX[14053:1134388] "   Exporting geometry"
2018-02-19 09:55:53.110 ViroFBX[14053:1134388] "      UV set name UVChannel_1"
2018-02-19 09:55:53.110 ViroFBX[14053:1134388] "      Polygon count 1200"
2018-02-19 09:55:53.112 ViroFBX[14053:1134388] "      Num vertices 3600, stride 48"
2018-02-19 09:55:53.112 ViroFBX[14053:1134388] "      VAR size 172800"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "   Exporting materials"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "      Num materials 1"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "      Primitive count for material 0: 1200"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "      WARNING: Unknown material type!"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "   No skeleton found, will not export skin"
2018-02-19 09:55:53.113 ViroFBX[14053:1134388] "   Exporting blend shape animations"
2018-02-19 09:55:53.114 ViroFBX[14053:1134388] "   Mesh had no deformers, not exporting blend shape animations"
2018-02-19 09:55:53.114 ViroFBX[14053:1134388] "   Exporting keyframe animations"
2018-02-19 09:55:53.114 ViroFBX[14053:1134388] "      Animation [Take 001] duration 3333 ms"
2018-02-19 09:55:53.115 ViroFBX[14053:1134388] "Encoding protobuf [2739620 bytes]..."
2018-02-19 09:55:53.117 ViroFBX[14053:1134388] "Compressing..."
2018-02-19 09:55:53.286 ViroFBX[14053:1134388] "Writing protobuf [799705 bytes]"
2018-02-19 09:55:53.295 ViroFBX[14053:1134388] "Export complete"

Difference warnings look very suspiciously....

After that I have loaded vrx model as usual :

    Object3D model = new Object3D();
        model.setPosition(new Vector(0, 0, -2));
        model.setTag("bb8 model");
        model.loadModel(getUri("bb8_v.vrx"), Object3D.Type.FBX, new AsyncObject3DListener() {
            @Override
            public void onObject3DLoaded(Object3D object3D, Object3D.Type type) {
                Log.e(LOG_TAG, "loaded success tag " + object3D.getTag());
                Log.e(LOG_TAG, "geometry " + object3D.getGeometry());
                
                mArScene.getRootNode().addChildNode(object3D);
            }

            @Override
            public void onObject3DFailed(String s) {
                Log.e(LOG_TAG, s);
            }
        });

I got next log:

02-19 08:01:05.794 5927-6525 W/Viro: Copying asset at URL file:///android_asset/bb8_v.vrx
                                     
                                     [ 02-19 08:01:05.794   718: 6172 D/         ]
                                     Failed to fetch the lookup information of the device 0000000F 
02-19 08:01:05.810 5927-6525 I/Viro: Path to file is /data/user/0/com.example.virosample.arcore/cache/bb8_v.vrx
02-19 08:01:05.810 5927-6525 I/Viro: Loading FBX from file /data/user/0/com.example.virosample.arcore/cache/bb8_v.vrx
02-19 08:01:05.836 5927-6525 I/Viro: Read FBX protobuf
02-19 08:01:05.836 5927-6525 I/Viro: Loading node [Object004]
02-19 08:01:05.840 5927-6525 I/Viro:    Bounds x(-451.299805 451.299866)
02-19 08:01:05.841 5927-6525 I/Viro:           y(-451.299744 451.299927)
02-19 08:01:05.841 5927-6525 I/Viro:           z(-85.425293 921.074585)
02-19 08:01:05.841 5927-6525 I/Viro:    Added keyframe animation [Take 001]
02-19 08:01:05.841 5927-6525 I/Viro: Loading node [Box001]
02-19 08:01:05.841 5927-6525 I/Viro:    Bounds x(-50.000000 50.000000)
02-19 08:01:05.841 5927-6525 I/Viro:           y(-50.000000 50.000000)
02-19 08:01:05.841 5927-6525 I/Viro:           z(0.000000 100.000000)
02-19 08:01:05.841 5927-6525 I/Viro:    Added keyframe animation [Take 001]
02-19 08:01:05.848 5927-5927 E/ViroARActivity.Debug: loaded success tag bb8 model
02-19 08:01:05.848 5927-5927 E/ViroARActivity.Debug: geometry null

I have received message "load success" but 3d Objects geometry was always null, and of course nothing appears on the screen (AmbientLight is added).
After that I have tried to do the same with 5 difference FBX models from difference sources - I had almost the same result...
Link to described above asset https://free3d.com/3d-model/bb8-35865.html

UPDATED
The best result I could get, was the white 3d model (without texture), and geometry was null as well.
audi_r8
Asset for Audi R8 https://free3d.com/3d-model/audi-r8-14024.html
converting log for Audi is warningless, so iI think the issue with BB8 is in fbx model itself.
The question with white texture in vrx mode is open .

Sample not running

Hey, thanks for all your efforts in creating this sample for ARRetail, I'm facing a problem though that I can't run the sample project, whenever I run it a popup appears saying that:

This feature requires the latest version of ARCore with two buttons continue and cancel when I click continue another pop-up appears and says item not found with a retry button. Anybody knows how I can solve this issue?

Thanks.

Hit test bug in v1.3

After migrating to version v1.3 I noticed that ViroViewARCore.performARHitTestWithRay() stopped working as before. Now vector position from ARHitTestResult is not camera center position. Reproduced in sample app ViroARObjectPlacementActivity.

v1.2
image

v1.3
image

It is possible to combine the library with location services ?

Hello. I am wondering is there any options for combining the library and static gps coordinates. I need to spawn objects in real world coordinates. I found many examples on Unity. but for android I can't find some useful information. Virocore has good API but I can't find any options too

Framework doesn't render simple texture described in mtl

Hi guys.
I went through this #2 and I didn't manage to render simple texture described in mtl ...

what I do:

 Object3D object3D = new Object3D();
        object3D.setPosition(new Vector(0, 0, -2));
        object3D.loadModel(getUri("model.obj"), Object3D.Type.OBJ, new AsyncObject3DListener() {
            @Override
            public void onObject3DLoaded(Object3D object3D, Object3D.Type type) {
                Log.e(LOG_TAG, "loaded success");
                mArScene.getRootNode().addChildNode(object3D);
            }

            @Override
            public void onObject3DFailed(String s) {
                Log.e(LOG_TAG, s);
            }
        });

what I got:
result

what should be:
desiredres

Assets link https://poly.google.com/view/5vbJ5vildOq

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.