14. Review our goals
• Generic way of rendering 3D images for Pebble
• Flexible
• High frame rates
15. Two ways
• Phone side rendering
• Render image on phone
• Send the image over to watch to display
• Watch side rendering
• Send the 3D vertices to watch
• Rendering done on the watch side
19. Pebble Display
• Each pixel will take 1 byte(8 bits)
• 2 bit alpha(not been used)
• 2 bit red, 2 bit green, 2 bit blue
• Display resolution 144x168
• One frame will take..
• 144x168 = 24192 Bytes = 23.625 KB
20. Pebble Bluetooth
Texas Instruments CC2564B
Bluetooth and Dual-Mode Controller
Bluetooth 2.1 (default, max data rate: 3 Mbps.),
Bluetooth 4.0 (iOS7+ uses LE for Notifications)
21. Pebble Bluetooth
• 3 Mbps ~= 360 KB per second
• One image frame will take..
• 144x168 = 24192 Bytes = 23.625 KB
• We can get more than 10 frames per second!
30. A 3D renderer in JavaScript
https://github.com/billhsu/renderer.js
https://www.youtube.com/watch?
v=pUKUM6oUYNM
(Thanks engineers.sg)
31. Performance
3D rendering Sending buffer
Time 0.24 sec 8.46 sec
Tested on iPhone 6S with iOS 10.1
and Pebble Time with Firmware version 4.2.0
32. Reduce image resolution
• Originally 144x168
• Reduce to 36x42
• 36 * 42 = 1512
• Less than 1.8KB (Yay!)
• Image could be sent in one message
33.
34. Performance with reduced
image resolution
3D rendering Sending buffer
Time 0.13 sec 0.41 sec
Tested on iPhone 6S with iOS 10.1
and Pebble Time with Firmware version 4.2.0
35.
36.
37. Watch Side Rendering
• Frame rate should be better
• Geometry limitation
• JerryScript may not work
38. Summary
• [√] Generic way of rendering 3D images for Pebble
• [√] Flexible
• [?] High frame rates