This document discusses developing 3D applications for Android. It begins by explaining why Android and 3D are good platforms, discussing features like OpenGL ES and the growing market. It then covers various 3D techniques like rendering, modeling, sensors and augmented reality. Throughout it provides examples and references for further learning OpenGL ES, getting 3D models, head tracking and more. It envisions future possibilities for 3D on Android.
Augmented reality is a technology of blending the live view of the real world with the computer generated virtual worlds (digital graphics and sound). Today we can see that Augmented Reality is used in advertising, gaming, entertainment, robotics, military training, engineering, designing and in many other industries.
A lecture on Mobile Augmented Reality. A lecture given by Mark Billinghurst at the University of Canterbury on Friday September 13th 2013. This is part of the COSC 426 graduate course on Augmented Reality.
Augmented reality is a technology of blending the live view of the real world with the computer generated virtual worlds (digital graphics and sound). Today we can see that Augmented Reality is used in advertising, gaming, entertainment, robotics, military training, engineering, designing and in many other industries.
A lecture on Mobile Augmented Reality. A lecture given by Mark Billinghurst at the University of Canterbury on Friday September 13th 2013. This is part of the COSC 426 graduate course on Augmented Reality.
Market Based Analysis of Virtual Reality Products - IT StrategyMohitMhapuskar
Virtual Reality is a rapidly advancing technology that initially began it's life as an entertainment product but has rapidly grown into other areas such as healthcare, education, live events and military. While there is massive scope for VR, the technology is still in it's infancy and there are avenues for improvements in the future which could allow it to expand and capture larger segments of the market. Our team selected the VR company Oculus for our case study and conducted various market based analyses such as SWOT Analysis, Scenario Analysis, Porter’s 5 Forces for Strategy, PESTEL Analysis, BCG Matrix, Ansoff Matrix and Fishbone analysis to propose a strategic roadmap for future VR products and services.
Patrick O'Shaughnessey, Founder of Patched Reality Inc, gives an overview of AR SDK tutorial options, and tutorials using 4 of the most widely used SDK's in Unity 3D.
AR gives new ways for your devices to be helpful throughout your day by letting you experience digital content in the same way you experience the world.
whereas VR Virtual reality (VR) implies a complete immersion experience that shuts out the physical world.
Augmented reality is a type of virtual reality that aims to duplicate the world’s environment in a computer. An augmented reality system generates a composite view for the user that is the combination of the real scene viewed by the user and a virtual scene generated by the computer.
The second lecture in the 426 graduate class on Augmented Reality taught thy Mark Billinghurst at the HIT Lab NZ, University of Canterbury. The class was taught on July 19th 2013
An overview of the available digital eyewear, including Google Glass, Vuzix M100, Epson Moverio BT-200, and Optinvent ORA-1, and the SDK's and development environments available for each.
Augmented reality is a technology that works on computer vision based recognition algorithms to augmented sound, video, graphics and other sensor based inputs on real world objects using camera of your device.
Augmented reality (AR) is an interactive experience of a real-world environment where the objects that reside in the real-world are "augmented" by computer-generated perceptual information, sometimes across multiple sensory modalities, including visual, auditory, haptic, somatosensory, and olfactory.The overlaid sensory information can be constructive (i.e. additive to the natural environment) or destructive (i.e. masking of the natural environment) and is seamlessly interwoven with the physical world such that it is perceived as an immersive aspect of the real environment. In this way, augmented reality alters one's ongoing perception of a real-world environment, whereas virtual reality completely replaces the user's real-world environment with a simulated one. Augmented reality is related to two largely synonymous terms: mixed reality and computer-mediated reality.
Market Based Analysis of Virtual Reality Products - IT StrategyMohitMhapuskar
Virtual Reality is a rapidly advancing technology that initially began it's life as an entertainment product but has rapidly grown into other areas such as healthcare, education, live events and military. While there is massive scope for VR, the technology is still in it's infancy and there are avenues for improvements in the future which could allow it to expand and capture larger segments of the market. Our team selected the VR company Oculus for our case study and conducted various market based analyses such as SWOT Analysis, Scenario Analysis, Porter’s 5 Forces for Strategy, PESTEL Analysis, BCG Matrix, Ansoff Matrix and Fishbone analysis to propose a strategic roadmap for future VR products and services.
Patrick O'Shaughnessey, Founder of Patched Reality Inc, gives an overview of AR SDK tutorial options, and tutorials using 4 of the most widely used SDK's in Unity 3D.
AR gives new ways for your devices to be helpful throughout your day by letting you experience digital content in the same way you experience the world.
whereas VR Virtual reality (VR) implies a complete immersion experience that shuts out the physical world.
Augmented reality is a type of virtual reality that aims to duplicate the world’s environment in a computer. An augmented reality system generates a composite view for the user that is the combination of the real scene viewed by the user and a virtual scene generated by the computer.
The second lecture in the 426 graduate class on Augmented Reality taught thy Mark Billinghurst at the HIT Lab NZ, University of Canterbury. The class was taught on July 19th 2013
An overview of the available digital eyewear, including Google Glass, Vuzix M100, Epson Moverio BT-200, and Optinvent ORA-1, and the SDK's and development environments available for each.
Augmented reality is a technology that works on computer vision based recognition algorithms to augmented sound, video, graphics and other sensor based inputs on real world objects using camera of your device.
Augmented reality (AR) is an interactive experience of a real-world environment where the objects that reside in the real-world are "augmented" by computer-generated perceptual information, sometimes across multiple sensory modalities, including visual, auditory, haptic, somatosensory, and olfactory.The overlaid sensory information can be constructive (i.e. additive to the natural environment) or destructive (i.e. masking of the natural environment) and is seamlessly interwoven with the physical world such that it is perceived as an immersive aspect of the real environment. In this way, augmented reality alters one's ongoing perception of a real-world environment, whereas virtual reality completely replaces the user's real-world environment with a simulated one. Augmented reality is related to two largely synonymous terms: mixed reality and computer-mediated reality.
The 3D Landscape API makes it possible to create innovative applications with realistic maps rendered in 3D. The downloadable software development kit provides simple access to functionality for retrieving, displaying and interacting with 3D maps in your application.
AiRaid is an Augmented Reality app for the Samsung bada platform. You can get the app for free from the Samsung Apps store: http://bit.ly/iRGMKc
Get more info on the Samsung Mobile Innovator blog: http://s-a-m-m-i.blogspot.com
This presentation covers main concepts of the Augmented Reality. Then it covers main ARCore SDK types including Unity Arcore SDK, Java ARCore SDK and Sceneform ARCore SDK. Finally, slides go to the shared augmented reality concept and shows some examples and API of Augmented Images and ARCore Cloud Anchors.
You can find useful ARCore materials links on the last slide including Google codelabs and Coursera ARCore online course.
There is also a link to the demo APK and github repository available on the last slide.
1. MOSC 2010
TM
Android
Applications in 3D
Yap Wen Jiun
@wenjiun
Multimedia University Lecturer
CodeAndroid Malaysia Member
2. Why Android?
An open, free development platform based on Linux
and open source
Growing very fast!
Provides the Android Market for distribution and
monetization of your applications and has no approval
process for application distribution
Supports OpenGL ES and many more ...
3. Why 3D?
3D is very popular!
3D is visually more realistics
3D is a must for 3D visualization such as flight
simulation
3D is fun especially for games
4. 3D Games
Winds of Steel
by DeckEleven Entertainment
Speedx 3D
by HyperBees Ltd.
6. Depth perception
Depth perception is the visual ability to perceive the
world in 3D, arises from a variety of depth cues such as:
Monocular cues
Perspective
Occlusion
Size comparison
● Depth from motion
Motion parallax
Binocular cues
● Stereopsis/Binocular disparity
- Wikipedia
7. 3D Rendering
3D rendering is the 3D computer graphics process of
automatically converting 3D models into 2D images with
3D photorealistic effects on a computer.
OpenGL (Open Graphics Library) is a standard
specification defining a cross-language, cross-platform
API for writing applications that renders 2D and 3D
computer graphics. The interface consists of over 250
different function calls which can be used to draw
complex 3D scenes from simple primitives.
- Wikipedia
8. OpenGL ES
OpenGL for Embedded Systems is a subset of the
OpenGL 3D graphics API designed for embedded
devices, managed by the not-for-profit technology
consortium, the Khronos Group, Inc.
1st Generation Android Devices
→ OpenGL ES 1.0 plus various 1.1 extensions
2nd Generation Android Devices (Android 2.0 & higher)
→ OpenGL ES 2.0, 1.1 + extensions
9. Learning Android OpenGL ES
API Demos
Books - Sample Codes
http://www.pragprog.com/titles/eband3/hello-android
Blogs with demo apps
http://nehe.gamedev.net/ &
http://code.google.com/p/nehe-android/
http://code.google.com/p/akjava-android-project/
http://blogs.sonyericsson.com/developerworld/category
/tutorials/3d-list/
11. Getting 3D Models
Create directly with OpenGL Codes
Import external 3D models (OBJ, DAE) with min3D
http://code.google.com/p/min3d/
Create in 3D modeling program
(Blender, SketchUp etc)
Download free 3D models from Internet
Scan in physical objects with 3D laser scanning
12. Android NDK
The Android NDK is a companion tool to the Android
SDK that lets Android application developers build
performance-critical portions of their apps in native
code (C, C++).
The NDK provides stable headers for libc (the C library),
libm (the Math library), OpenGL ES (3D graphics
library), the JNI interface.
Very convenient to developer that already has an
exisiting native C/C++ OpenGL renderer that has
thousands of lines of code.
14. 3D Head Tracking
By tracking the location of your head and rendering view
dependent images on the display, this effectively
transforms the display into a virtual environment which
has a realistic illusion of depth and space
http://johnnylee.net/projects/wii/
15. Sensor Tracking
Orientation sensor can try to fake the 3D head tracking
class HeadTracking extends Activity implements
SensorEventListener
SensorManager mgr
Sensor sensor
mgr=(SensorManager)getSystemService(SENSOR_SERVICE)
sensor=mgr.getDefaultSensor(Sensor.TYPE_ORIENTATION)
mgr.registerListener(this, sensor,
SensorManager.SENSOR_DELAY_FASTEST)
......
16. Face Tracking
Actual head tracking is possible with front-facing camera
FaceDetector arrayFaces = null
FaceDetector.Face getAllFaces[ ] = null
getAllFaces = new FaceDetector.Face[NUM_FACES]
arrayFaces = new FaceDetector (sourceImage.getWidth( ),
sourceImage.getHeight( ), NUM_FACES)
arrayFaces.findFaces(sourceImage, getAllFaces)
17. Augmented Reality
A live direct or indirect view of a physical real-world
environment whose elements are augmented by virtual
computer-generated imagery – Wikipedia
18. Camera Preview
class Preview extends SurfaceView implements
SaurfaceHolder.Callback
SurfaceHolder mHolder
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_
BUFFERS)
Camera mCamera
mCamera = Camera.open( )
mCamera.setPreviewDisplay(holder)
mCamera.startPreview( )
19. Stereoscopic View
Stereoscopy is the enhancement of the illusion of depth
in a photograph, movie or other 2D graphics by
presenting a slightly different image to each eye, and
thereby adding the dominant stereopsis cues.
Active LCD shutter
Circularly polarized projections
Lenticular autostereoscopic displays
Anaglyphs
20. Red-Cyan Anaglyph
Graphics are made up of two differently filtered coloured
graphics, one for each eye, superimposed to produce a
depth effect – Wikipedia
gl.glDisable(GL10.GL_DEPTH_TEST)
gl.glEnable(GL10.GL_BLEND)
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE)
gl.glColorMask(true, false, false, true)
gl.glColorMask(false, true, true, true)
21. Endless Possibilities ...
In the future … anything is possible
Check out CodeAndroid Malaysia at
http://www.codeandroid.my/
Thank you!
Small portions of this presentation are modifications based on work
created and shared by Google and used according to terms described
in the Creative Commons 3.0 Attribution License.