{"_id":"5ad78c362cfba50003554c04","category":{"_id":"5ad78c362cfba50003554bfd","version":"5ad78c362cfba50003554bfc","project":"5a065a6134873d0010b396ab","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-10-25T23:36:45.975Z","from_sync":false,"order":0,"slug":"basics","title":"Getting Started"},"user":"57bb7e47afc18c0e00529cf3","project":"5a065a6134873d0010b396ab","parentDoc":null,"version":{"_id":"5ad78c362cfba50003554bfc","project":"5a065a6134873d0010b396ab","__v":1,"createdAt":"2018-04-18T18:19:34.288Z","releaseDate":"2018-04-18T18:19:34.288Z","categories":["5ad78c362cfba50003554bfd","5ad78c362cfba50003554bfe","5ad78c362cfba50003554bff","5ad78c362cfba50003554c00"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.6.0","version":"1.6.0"},"__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-11-16T00:32:47.911Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":3,"body":"<span style=\"font-size:25px;font-weight:700\"><a href=\"https://s3-us-west-2.amazonaws.com/virocore/1_6_0/app-viro_core-release.aar\">ViroCore v1.6.0</a></span> <span style=\"margin-left:20px;margin-bottom:10px;line-height:6px;height:26px;border:1px solid; border-radius:2px; border-color:#2cbe4e; color:#2cbe4e; display:inline-block;padding-top:3px;padding-bottom:3px;padding-left:4px;padding-right:4px;\">\n          <span style=\"padding-bottom:5px\">Latest release</span>\n</span>\n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">Image detection in AR and more bug fixes.</td><td style=\"border:0px\">4/19/2018</td></tr></table>\n\n\n## Downloads\n__[viro_core-release.aar][3] __\n\n## New Features\n\n* __Image recognition__\n    * Support for Image Recognition in AR. Detect [image targets][1] with image recognition. Developers can find and recognize the position of markers and images in the real-world and respond to them in their apps.\n* __ARCore 1.1 support__\n   \n## Bug Fixes\n* Fixed: Controller events are not called back ([Github Issue #74](https://github.com/viromedia/virocore/issues/74))\n* Fixed: Z-fighting issues for text at long distances\n* Fixed: Shadow planes in AR were appearing grey\n* Fixed: FBX animation memory leaks\n* Fixed: Assets with spaces now work correctly\n\n## Upgrade instructions\nTo upgrade from ViroCore 1.5.0, you'll have to do the following:\n1. Download the new ViroCore AAR [here][3], and use it to replace your existing ViroCore AAR file.\n2. Change core-1.0.0 to core-1.1.0.aar in your arcore_client folder. Modify your arcore_client/build.gradle to point to the new file. You can download core-1.1.0.aar [here][2].\n \n[1]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARImageTarget.html\n[2]:https://s3-us-west-2.amazonaws.com/virocore/1_6_0/core-1.1.0.aar\n[3]:https://s3-us-west-2.amazonaws.com/virocore/1_6_0/app-viro_core-release.aar\n\n[block:api-header]\n{\n  \"title\": \"ViroCore v.1.5\"\n}\n[/block]\n\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">Major release with a host of   features requested by our customers, and bug fixes.</td><td style=\"border:0px\">3/29/2018</td></tr></table>\n\n\n## Downloads\n__[viro_core-release.aar][9] __\n\n## New Features\n\n* __New Trackable States for ARCore / ARKit__\n    * Be informed when AR tracking improves or degrades through [ARScene.Listener.onTrackingUpdated()][7]\n<br>\n* __Improved Text and Fonts__\n    * Internationalization: support for Chinese, Japanese, and Korean characters\n    * Render mixed-language text by specifying a list of [font families][4]\n    * Support for more system fonts on Android, including system font groups ('monospace', 'cursive', etc.)\n    * Improved font specification: choose [font weight][5] (100 to 900) and [font style][6] (italic)\n<br>\n* __Improved Packaging__\n    * Reduced SDK requirement for VR to API Level 19 (equivalent to Cardboard)\n    * ```x86_64``` architecture support on iOS \n        * Enables the iOS simulator (this uses software emulated OpenGL, so it's slow!)\n    * ```arm64-v8a``` architecture support on Android\n        * We recommend using [Android ABI splitting][8] to reduce binary size for your customers\n<br>\n* __And More!__\n    * [Polygonal planes][1]: render non-rectangular planes [detected][2] by ARKit and ARCore\n    * Point cloud rendering: render point clouds using the new [fixed particle emitter][3]\n    * Windowed (non-full) screen mode for AR view and 360 view\n    * Exoplayer updated to version 2.7.1\n\n## Bug Fixes\n* Fixed: Colors were dark when recording video ([Github Issue #44](https://github.com/viromedia/virocore/issues/44))\n* Fixed: Assets could not be placed in sub-folders\n* Fixed: FBX bounding box returned incorrect values ([Github Issue #55](https://github.com/viromedia/virocore/issues/55))\n* Fixed: ViroViewAR would rotate when re-entering AR ([Github Issue #40](https://github.com/viromedia/virocore/issues/40))\n* Fixed: Bloom caused entire AR Camera to brighten\n* Fixed: Fatal Exception: java.lang.IllegalArgumentException: millis < 0 ([Github Issue #56](https://github.com/viromedia/virocore/issues/56))\n\n## Upgrade instructions\nTo upgrade from ViroCore 1.5.0, you'll have to do the following:\n1. Download the new ViroCore AAR [here][9], and use it to replace your existing ViroCore AAR file.\n\n[1]:https://developer.viromedia.com/virocore/reference/com/viro/core/Polygon.html\n[2]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARPlaneAnchor.html#getVertices()\n[3]:https://developer.viromedia.com/virocore/reference/com/viro/core/FixedParticleEmitter.html\n[4]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.html#setFontFamilies(java.lang.String)\n[5]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.FontWeight.html\n[6]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.FontStyle.html\n[7]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARScene.Listener.html#onTrackingUpdated(com.viro.core.ARScene.TrackingState,%20com.viro.core.ARScene.TrackingStateReason)\n[8]:https://developer.android.com/studio/build/configure-apk-splits.html\n[9]:https://s3-us-west-2.amazonaws.com/virocore/1_5_0/app-viro_core-release.aar\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Exoplayer\",\n  \"body\": \"You may need to manually upgrade your exoplayer version to 2.7.1\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"ABI Splitting\",\n  \"body\": \"Now that Viro supports multiple architectures, we highly recommend using [ABI splitting](https://virocore.viromedia.com/v1.5.0/docs/android-distribution#abi-splitting) to reduce your binary size!\"\n}\n[/block]\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroCore v1.4.1\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">Minor release small updates and bug fixes.</td><td style=\"border:0px\">3/6/2018</td></tr></table>\n\n## New Features\n* API to [configure audio input][20] in ViroMediaRecorder.\n* API to [take a screenshot][21] direct to Bitmap in ViroMediaRecorder, improving performance.\n\n## Bug Fixes\n* Fixed: Gamma correction is handled in software if no sRGB framebuffer can be created.\n* Fixed: Shader compilation bug on older Adreno GPU's.\n\n## Updates\n* Updated Hello World and Sample Apps.\n\n## Upgrade instructions\nTo upgrade from ViroCore 1.4, you'll have to do the following:\n1. Download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_1/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file.\n\n<br>\n<br>\n\n[20]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html\n[21]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html#takeScreenShotAsync(com.viro.core.ViroMediaRecorder.ScreenshotFinishListener)\n[block:api-header]\n{\n  \"title\": \"ViroCore v1.4\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">Minor release with support for ARCore 1.0, and bug fixes.</td><td style=\"border:0px\">2/27/2018</td></tr></table>\n\n## New Features\n* Support for ARCore 1.0\n* API to [trigger an install of ARCore][15] if ARCore is not present on the device\n* API to check if a user device is [capable of running ARCore][16]\n* API to [get the bounding box][17] of any Node (including Nodes with 3D models)\n* Added screen, multiply, and subtract [blend modes][18]\n\n## Bug Fixes\n* Fixed: JNI ERROR: local reference table overflow causes 3D Model crash\n* Fixed: Native crash with very large OBJ models\n* Fixed: Performance issues when using AR on Samsung Galaxy S7\n\n## Breaking API Changes\n\n* ViroViewARCore.isSupported() was renamed to ViroViewARCore.isDeviceCompatible()\n* The RendererStartListener (taken as constructor parameter to each ViroView) has been replaced with View-specific [StartupListener](https://developer.viromedia.com/virocore/reference/com/viro/core/ViroViewARCore.StartupListener.html) interfaces. Like the old RendererStartListener, the new StartupListeners receive a callback when initialization finishes. Additionally, StartupListeners receive a callback when View initialization fails, allowing you to respond in your application.\n* Field of view: For ViroSceneView, the default field of view has been reverted back to 90 degrees across the major axis (which is the Y axis in portrait mode, and the X axis in landscape mode). The field of view [can be set][19], so you can change this if desired.\n\n[15]:https://virocore.viromedia.com/v1.4.0/docs/augmented-reality-ar#device-support\n[16]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroViewARCore.html#isDeviceCompatible(android.content.Context)\n[17]:https://developer.viromedia.com/virocore/reference/com/viro/core/Node.html#getBoundingBox()\n[18]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.BlendMode.html\n[19]:https://developer.viromedia.com/virocore/reference/com/viro/core/Camera.html#setFieldOfView(float)\n\n## Upgrade instructions\nTo upgrade from ViroCore 1.3, you'll have to do the following:\n1. Download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file.\n\n2. Add  <meta-data android:name=\"com.google.ar.core\" android:value=\"optional\" /> to your AndroidManifest.xml within the application tag\n\n3. Make changes required under \"Breaking API Changes\" above. This likely means replacing ```RendererStartListener``` with the new ```StartupListener```.\n\n4. Change core-0.91 to core-1.0.0.aar in your arcore_client folder. Modify your arcore_client/build.gradle to point to the new file. You can download core-1.0.0.aar [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_0/core-1.0.0.aar). \n<br>\n<br>\n\n[block:api-header]\n{\n  \"title\": \"ViroCore v1.3\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">New release with some big new features!</td><td style=\"border:0px\">2/13/2018</td></tr></table>\n\n## New Features\n* Support for [Physically Based Rendering](doc:physically-based-rendering) (PBR)\n* New [metalness][1], [roughness][2], and [ambient occlusion][3] Material properties\n* [Image-based][4] diffuse and specular lighting\n* Lights can now be specified physically through [temperature][13] (Kelvins) and [intensity][12] (Lumens)\n* Textures and materials from loaded OBJ and FBX files can now be [dynamically changed][14]\n* Textures can now be [tiled over Surfaces][9]\n* [Screenshots][5] can be sent directly to an in-memory Bitmap\n* Exposed [projectPoint][6] and [unprojectPoint][7] methods on ViroView\n* API to [set the field of view][8] on the Camera\n* You can now [extract][11] raw point cloud data\n* New [renderer configurations][10] allow you to dynamically enable or disable shadows, HDR, Bloom, and PBR \n\n[1]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setMetalnessMap(com.viro.core.Texture)\n[2]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setRoughnessMap(com.viro.core.Texture)\n[3]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setAmbientOcclusionMap(com.viro.core.Texture)\n[4]:https://virocore.viromedia.com/docs/physically-based-rendering#image-based-lighting\n[5]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html\n[6]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroView.html#projectPoint(com.viro.core.Vector)\n[7]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroView.html#unprojectPoint(com.viro.core.Vector)\n[8]:https://developer.viromedia.com/virocore/reference/com/viro/core/Camera.html#setFieldOfView(float)\n[9]:https://developer.viromedia.com/virocore/reference/com/viro/core/Surface.html\n[10]:https://developer.viromedia.com/virocore/reference/com/viro/core/RendererConfiguration.html\n[11]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARScene.html#setPointCloudUpdateListener(com.viro.core.PointCloudUpdateListener)\n[12]:https://developer.viromedia.com/virocore/reference/com/viro/core/Light.html#setIntensity(float)\n[13]:https://developer.viromedia.com/virocore/reference/com/viro/core/Light.html#setTemperature(float)\n[14]:https://developer.viromedia.com/virocore/reference/com/viro/core/Object3D.html#getMaterials()\n\n## Bug Fixes\n* Fixed: Framerate drop in AR scene with large 3D models.\n* Fixed: Weak global reference crash if device was idle for extended time\n* Fixed: Black screen on Mail-T720 GPU devices (i.e. A5 2016)\n* Fixed: Crash on invalid URIs\n* Fixed: various FBX keyframe and skeletal animation bugs\n\n## Breaking API Changes\n* Spotlight: the inner angle and outer angle of spotlights have changed! Now the inner angle represents the angle from edge to edge of the fully lit cone, and the outer angle represents the angle from edge to edge of the attenuated cone.\n\n* Field of view: For ViroSceneView, the default field of view is now 60 degrees across the major axis (which is the Y axis in portrait mode, and the X axis in landscape mode). The field of view can now be set, so you can change this if desired.\n\n* ViroMediaRecorder: The name of the listeners and the signatures of the listener methods have slightly changed to accommodate saving screenshots to Bitmaps. See the [Javadoc](https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html) for details.\n\n## Upgrade instructions\nIf upgrading from ViroCore 1.1, first follow the instructions for ViroCore 1.2, then follow the instruction below.\n\nIf upgrading from ViroCore 1.2, simply download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_3_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file.\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroCore v1.2\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">New release with a host of new features.</td><td style=\"border:0px\">1/17/2018</td></tr></table>\n\n## New Features\n* Support for ARCore Preview 2.\n* Added setCameraARHitTestListener to ViroViewARCore.\n* Enabled transparent backgrounds for ViroViewScene.\n* Enabled events for ViroSceneRenderer.\n\n## Upgrade instructions\n1. To use the latest ViroCore, download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file.\n\n2. Replace the build.gradle file in your arcore_client directory of your project with this [build.gradle](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/build.gradle).\n\n3. Add [core-0.91.0.aar](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/core-0.91.0.aar) to your arcore_client directory.\n\n4. Due to ARCore Preview 2 changes, you'll also need to download our new GVR library [here](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/sdk-common-1.101.0.aar), and replace your existing GVR SDK AAR (this should be in your project's gvr_common directory).\n\n5. **Do this step only if you are developing for ARCore**. Install Google's ARCore Preview 2 client on your device. Instructions from Google are [here](https://developers.google.com/ar/develop/java/getting-started) under 'Prepare your device'.\n\n6. Finally, add the following line to your app's build.gradle under defaultConfig in the android section:\n```\nndk {\n           abiFilters \"armeabi-v7a\", \"x86\", \"armeabi\", \"mips\"\n       }\n```\nYour new project should be good to go!\n<br>\n<br>\n[block:api-header]\n{\n  \"title\": \"ViroCore v1.1\"\n}\n[/block]\n<table style=\"border:0px\"><tr style=\"border:0px\"><td style=\"border:0px\">New release with size reduction, a handful of new features, and some bug fixes! </td><td style=\"border:0px\">12/19/2017</td></tr></table>\n\n## Updates\n\nThe ViroCore AAR file is now just 4.2 MB. \n\nVR underlying platform SDKs have been updated:\n* Updated Google VR (Android) to version 1.101\n* Updated Google VR (iOS) to version 1.100\n* Updated Oculus VR Mobile SDK to 1.9.0\n\n## New features\n* Add AR shadows: virtual shadows on real-world planes via the new [ShadowMode](https://developer.viromedia.com/virocore/reference/com/viro/core/Material.ShadowMode.html) Material property\n* New [CameraListener](https://developer.viromedia.com/virocore/reference/com/viro/core/CameraListener.html) for responding to camera movement\n* Linear rendering (sRGB) support on Oculus VR, for more realistic shading and lighting\n* AnimationTransaction animations can now be looped\n\nFixed bugs:\n\n* Fixed bug with reticle scaling\n* Print out native exceptions to console\n* Fix issue with collision normals in physics system\n* Fix freezing issue when loading FBX models on Oculus VR\n\nAnd of course, numerous performance improvements.\n\n## Upgrade instructions\nTo use the latest ViroCore, download the new AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_1_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file.\n\nIf you are using GVR, you will also have to update your GVR SDK. To do this:\n\n1. Download the 1.101 GVR SDK AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_1_0/sdk-common-1.101.0.aar), and replace your existing GVR SDK AAR (this should be in your project's gvr_common directory).\n\n2. Open your project's GVR gradle file and set it to point to this new AAR file, as follows:\n```\nconfigurations.create(\"default\")\nartifacts.add(\"default\", file('sdk-common-1.101.0.aar'))\n```","excerpt":"","slug":"releases","type":"basic","title":"Releases"}
<span style="font-size:25px;font-weight:700"><a href="https://s3-us-west-2.amazonaws.com/virocore/1_6_0/app-viro_core-release.aar">ViroCore v1.6.0</a></span> <span style="margin-left:20px;margin-bottom:10px;line-height:6px;height:26px;border:1px solid; border-radius:2px; border-color:#2cbe4e; color:#2cbe4e; display:inline-block;padding-top:3px;padding-bottom:3px;padding-left:4px;padding-right:4px;"> <span style="padding-bottom:5px">Latest release</span> </span> <table style="border:0px"><tr style="border:0px"><td style="border:0px">Image detection in AR and more bug fixes.</td><td style="border:0px">4/19/2018</td></tr></table> ## Downloads __[viro_core-release.aar][3] __ ## New Features * __Image recognition__ * Support for Image Recognition in AR. Detect [image targets][1] with image recognition. Developers can find and recognize the position of markers and images in the real-world and respond to them in their apps. * __ARCore 1.1 support__ ## Bug Fixes * Fixed: Controller events are not called back ([Github Issue #74](https://github.com/viromedia/virocore/issues/74)) * Fixed: Z-fighting issues for text at long distances * Fixed: Shadow planes in AR were appearing grey * Fixed: FBX animation memory leaks * Fixed: Assets with spaces now work correctly ## Upgrade instructions To upgrade from ViroCore 1.5.0, you'll have to do the following: 1. Download the new ViroCore AAR [here][3], and use it to replace your existing ViroCore AAR file. 2. Change core-1.0.0 to core-1.1.0.aar in your arcore_client folder. Modify your arcore_client/build.gradle to point to the new file. You can download core-1.1.0.aar [here][2]. [1]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARImageTarget.html [2]:https://s3-us-west-2.amazonaws.com/virocore/1_6_0/core-1.1.0.aar [3]:https://s3-us-west-2.amazonaws.com/virocore/1_6_0/app-viro_core-release.aar [block:api-header] { "title": "ViroCore v.1.5" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">Major release with a host of features requested by our customers, and bug fixes.</td><td style="border:0px">3/29/2018</td></tr></table> ## Downloads __[viro_core-release.aar][9] __ ## New Features * __New Trackable States for ARCore / ARKit__ * Be informed when AR tracking improves or degrades through [ARScene.Listener.onTrackingUpdated()][7] <br> * __Improved Text and Fonts__ * Internationalization: support for Chinese, Japanese, and Korean characters * Render mixed-language text by specifying a list of [font families][4] * Support for more system fonts on Android, including system font groups ('monospace', 'cursive', etc.) * Improved font specification: choose [font weight][5] (100 to 900) and [font style][6] (italic) <br> * __Improved Packaging__ * Reduced SDK requirement for VR to API Level 19 (equivalent to Cardboard) * ```x86_64``` architecture support on iOS * Enables the iOS simulator (this uses software emulated OpenGL, so it's slow!) * ```arm64-v8a``` architecture support on Android * We recommend using [Android ABI splitting][8] to reduce binary size for your customers <br> * __And More!__ * [Polygonal planes][1]: render non-rectangular planes [detected][2] by ARKit and ARCore * Point cloud rendering: render point clouds using the new [fixed particle emitter][3] * Windowed (non-full) screen mode for AR view and 360 view * Exoplayer updated to version 2.7.1 ## Bug Fixes * Fixed: Colors were dark when recording video ([Github Issue #44](https://github.com/viromedia/virocore/issues/44)) * Fixed: Assets could not be placed in sub-folders * Fixed: FBX bounding box returned incorrect values ([Github Issue #55](https://github.com/viromedia/virocore/issues/55)) * Fixed: ViroViewAR would rotate when re-entering AR ([Github Issue #40](https://github.com/viromedia/virocore/issues/40)) * Fixed: Bloom caused entire AR Camera to brighten * Fixed: Fatal Exception: java.lang.IllegalArgumentException: millis < 0 ([Github Issue #56](https://github.com/viromedia/virocore/issues/56)) ## Upgrade instructions To upgrade from ViroCore 1.5.0, you'll have to do the following: 1. Download the new ViroCore AAR [here][9], and use it to replace your existing ViroCore AAR file. [1]:https://developer.viromedia.com/virocore/reference/com/viro/core/Polygon.html [2]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARPlaneAnchor.html#getVertices() [3]:https://developer.viromedia.com/virocore/reference/com/viro/core/FixedParticleEmitter.html [4]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.html#setFontFamilies(java.lang.String) [5]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.FontWeight.html [6]:https://developer.viromedia.com/virocore/reference/com/viro/core/Text.FontStyle.html [7]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARScene.Listener.html#onTrackingUpdated(com.viro.core.ARScene.TrackingState,%20com.viro.core.ARScene.TrackingStateReason) [8]:https://developer.android.com/studio/build/configure-apk-splits.html [9]:https://s3-us-west-2.amazonaws.com/virocore/1_5_0/app-viro_core-release.aar [block:callout] { "type": "info", "title": "Exoplayer", "body": "You may need to manually upgrade your exoplayer version to 2.7.1" } [/block] [block:callout] { "type": "info", "title": "ABI Splitting", "body": "Now that Viro supports multiple architectures, we highly recommend using [ABI splitting](https://virocore.viromedia.com/v1.5.0/docs/android-distribution#abi-splitting) to reduce your binary size!" } [/block] <br> <br> [block:api-header] { "title": "ViroCore v1.4.1" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">Minor release small updates and bug fixes.</td><td style="border:0px">3/6/2018</td></tr></table> ## New Features * API to [configure audio input][20] in ViroMediaRecorder. * API to [take a screenshot][21] direct to Bitmap in ViroMediaRecorder, improving performance. ## Bug Fixes * Fixed: Gamma correction is handled in software if no sRGB framebuffer can be created. * Fixed: Shader compilation bug on older Adreno GPU's. ## Updates * Updated Hello World and Sample Apps. ## Upgrade instructions To upgrade from ViroCore 1.4, you'll have to do the following: 1. Download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_1/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file. <br> <br> [20]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html [21]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html#takeScreenShotAsync(com.viro.core.ViroMediaRecorder.ScreenshotFinishListener) [block:api-header] { "title": "ViroCore v1.4" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">Minor release with support for ARCore 1.0, and bug fixes.</td><td style="border:0px">2/27/2018</td></tr></table> ## New Features * Support for ARCore 1.0 * API to [trigger an install of ARCore][15] if ARCore is not present on the device * API to check if a user device is [capable of running ARCore][16] * API to [get the bounding box][17] of any Node (including Nodes with 3D models) * Added screen, multiply, and subtract [blend modes][18] ## Bug Fixes * Fixed: JNI ERROR: local reference table overflow causes 3D Model crash * Fixed: Native crash with very large OBJ models * Fixed: Performance issues when using AR on Samsung Galaxy S7 ## Breaking API Changes * ViroViewARCore.isSupported() was renamed to ViroViewARCore.isDeviceCompatible() * The RendererStartListener (taken as constructor parameter to each ViroView) has been replaced with View-specific [StartupListener](https://developer.viromedia.com/virocore/reference/com/viro/core/ViroViewARCore.StartupListener.html) interfaces. Like the old RendererStartListener, the new StartupListeners receive a callback when initialization finishes. Additionally, StartupListeners receive a callback when View initialization fails, allowing you to respond in your application. * Field of view: For ViroSceneView, the default field of view has been reverted back to 90 degrees across the major axis (which is the Y axis in portrait mode, and the X axis in landscape mode). The field of view [can be set][19], so you can change this if desired. [15]:https://virocore.viromedia.com/v1.4.0/docs/augmented-reality-ar#device-support [16]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroViewARCore.html#isDeviceCompatible(android.content.Context) [17]:https://developer.viromedia.com/virocore/reference/com/viro/core/Node.html#getBoundingBox() [18]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.BlendMode.html [19]:https://developer.viromedia.com/virocore/reference/com/viro/core/Camera.html#setFieldOfView(float) ## Upgrade instructions To upgrade from ViroCore 1.3, you'll have to do the following: 1. Download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file. 2. Add <meta-data android:name="com.google.ar.core" android:value="optional" /> to your AndroidManifest.xml within the application tag 3. Make changes required under "Breaking API Changes" above. This likely means replacing ```RendererStartListener``` with the new ```StartupListener```. 4. Change core-0.91 to core-1.0.0.aar in your arcore_client folder. Modify your arcore_client/build.gradle to point to the new file. You can download core-1.0.0.aar [here](https://s3-us-west-2.amazonaws.com/virocore/1_4_0/core-1.0.0.aar). <br> <br> [block:api-header] { "title": "ViroCore v1.3" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">New release with some big new features!</td><td style="border:0px">2/13/2018</td></tr></table> ## New Features * Support for [Physically Based Rendering](doc:physically-based-rendering) (PBR) * New [metalness][1], [roughness][2], and [ambient occlusion][3] Material properties * [Image-based][4] diffuse and specular lighting * Lights can now be specified physically through [temperature][13] (Kelvins) and [intensity][12] (Lumens) * Textures and materials from loaded OBJ and FBX files can now be [dynamically changed][14] * Textures can now be [tiled over Surfaces][9] * [Screenshots][5] can be sent directly to an in-memory Bitmap * Exposed [projectPoint][6] and [unprojectPoint][7] methods on ViroView * API to [set the field of view][8] on the Camera * You can now [extract][11] raw point cloud data * New [renderer configurations][10] allow you to dynamically enable or disable shadows, HDR, Bloom, and PBR [1]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setMetalnessMap(com.viro.core.Texture) [2]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setRoughnessMap(com.viro.core.Texture) [3]:https://developer.viromedia.com/virocore/reference/com/viro/core/Material.html#setAmbientOcclusionMap(com.viro.core.Texture) [4]:https://virocore.viromedia.com/docs/physically-based-rendering#image-based-lighting [5]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html [6]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroView.html#projectPoint(com.viro.core.Vector) [7]:https://developer.viromedia.com/virocore/reference/com/viro/core/ViroView.html#unprojectPoint(com.viro.core.Vector) [8]:https://developer.viromedia.com/virocore/reference/com/viro/core/Camera.html#setFieldOfView(float) [9]:https://developer.viromedia.com/virocore/reference/com/viro/core/Surface.html [10]:https://developer.viromedia.com/virocore/reference/com/viro/core/RendererConfiguration.html [11]:https://developer.viromedia.com/virocore/reference/com/viro/core/ARScene.html#setPointCloudUpdateListener(com.viro.core.PointCloudUpdateListener) [12]:https://developer.viromedia.com/virocore/reference/com/viro/core/Light.html#setIntensity(float) [13]:https://developer.viromedia.com/virocore/reference/com/viro/core/Light.html#setTemperature(float) [14]:https://developer.viromedia.com/virocore/reference/com/viro/core/Object3D.html#getMaterials() ## Bug Fixes * Fixed: Framerate drop in AR scene with large 3D models. * Fixed: Weak global reference crash if device was idle for extended time * Fixed: Black screen on Mail-T720 GPU devices (i.e. A5 2016) * Fixed: Crash on invalid URIs * Fixed: various FBX keyframe and skeletal animation bugs ## Breaking API Changes * Spotlight: the inner angle and outer angle of spotlights have changed! Now the inner angle represents the angle from edge to edge of the fully lit cone, and the outer angle represents the angle from edge to edge of the attenuated cone. * Field of view: For ViroSceneView, the default field of view is now 60 degrees across the major axis (which is the Y axis in portrait mode, and the X axis in landscape mode). The field of view can now be set, so you can change this if desired. * ViroMediaRecorder: The name of the listeners and the signatures of the listener methods have slightly changed to accommodate saving screenshots to Bitmaps. See the [Javadoc](https://developer.viromedia.com/virocore/reference/com/viro/core/ViroMediaRecorder.html) for details. ## Upgrade instructions If upgrading from ViroCore 1.1, first follow the instructions for ViroCore 1.2, then follow the instruction below. If upgrading from ViroCore 1.2, simply download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_3_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file. <br> <br> [block:api-header] { "title": "ViroCore v1.2" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">New release with a host of new features.</td><td style="border:0px">1/17/2018</td></tr></table> ## New Features * Support for ARCore Preview 2. * Added setCameraARHitTestListener to ViroViewARCore. * Enabled transparent backgrounds for ViroViewScene. * Enabled events for ViroSceneRenderer. ## Upgrade instructions 1. To use the latest ViroCore, download the new ViroCore AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file. 2. Replace the build.gradle file in your arcore_client directory of your project with this [build.gradle](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/build.gradle). 3. Add [core-0.91.0.aar](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/core-0.91.0.aar) to your arcore_client directory. 4. Due to ARCore Preview 2 changes, you'll also need to download our new GVR library [here](https://s3-us-west-2.amazonaws.com/virocore/1_2_0/sdk-common-1.101.0.aar), and replace your existing GVR SDK AAR (this should be in your project's gvr_common directory). 5. **Do this step only if you are developing for ARCore**. Install Google's ARCore Preview 2 client on your device. Instructions from Google are [here](https://developers.google.com/ar/develop/java/getting-started) under 'Prepare your device'. 6. Finally, add the following line to your app's build.gradle under defaultConfig in the android section: ``` ndk { abiFilters "armeabi-v7a", "x86", "armeabi", "mips" } ``` Your new project should be good to go! <br> <br> [block:api-header] { "title": "ViroCore v1.1" } [/block] <table style="border:0px"><tr style="border:0px"><td style="border:0px">New release with size reduction, a handful of new features, and some bug fixes! </td><td style="border:0px">12/19/2017</td></tr></table> ## Updates The ViroCore AAR file is now just 4.2 MB. VR underlying platform SDKs have been updated: * Updated Google VR (Android) to version 1.101 * Updated Google VR (iOS) to version 1.100 * Updated Oculus VR Mobile SDK to 1.9.0 ## New features * Add AR shadows: virtual shadows on real-world planes via the new [ShadowMode](https://developer.viromedia.com/virocore/reference/com/viro/core/Material.ShadowMode.html) Material property * New [CameraListener](https://developer.viromedia.com/virocore/reference/com/viro/core/CameraListener.html) for responding to camera movement * Linear rendering (sRGB) support on Oculus VR, for more realistic shading and lighting * AnimationTransaction animations can now be looped Fixed bugs: * Fixed bug with reticle scaling * Print out native exceptions to console * Fix issue with collision normals in physics system * Fix freezing issue when loading FBX models on Oculus VR And of course, numerous performance improvements. ## Upgrade instructions To use the latest ViroCore, download the new AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_1_0/app-viro_core-release.aar), and use it to replace your existing ViroCore AAR file. If you are using GVR, you will also have to update your GVR SDK. To do this: 1. Download the 1.101 GVR SDK AAR [here](https://s3-us-west-2.amazonaws.com/virocore/1_1_0/sdk-common-1.101.0.aar), and replace your existing GVR SDK AAR (this should be in your project's gvr_common directory). 2. Open your project's GVR gradle file and set it to point to this new AAR file, as follows: ``` configurations.create("default") artifacts.add("default", file('sdk-common-1.101.0.aar')) ```