BlenderPocket How Blender bring CG in Mobile Devices by Salvatore Russo (russose) Blender Conference (21/10/2006)

Slides:



Advertisements
Similar presentations
© Copyright Khronos Group, Page 1 Open Source Projects around the OpenGL ES API Hans-Martin Will Project Lead, Vincent.
Advertisements

FireMonkey Deep Dive The Next Generation of Business Application Development.
CP411 Computer Graphics, Wilfrid Laurier University Introduction # 1 Welcome to CP411 Computer Graphics 2012 Instructor: Dr. Hongbing Fan Introduction.
© Copyright Khronos Group, Page 1 Coping with Fixed Point Arto Astala, CTO
Design & Developed by: EATL
TORQUE 3D Daniel Casadevall-Pino
Survey of Graphics and Games. Outline Overview of computer graphics – Coursework – Research Programming using game engines Computer game and animation.
DEPARTMENT OF COMPUTER ENGINEERING
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
Label Gallery Developer Series Overview. Label Gallery Developer Series Label Gallery Developer Series is a line of Label Gallery products designed for.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
© Copyright Khronos Group, Page 1 Open Source Projects around the OpenGL ES API Hans-Martin Will Project Lead, Vincent.
CSE328:Computer Graphics OpenGL Tutorial Dongli Zhang Department of Computer Science, SBU Department of Computer Science, Stony.
Finding Nearby Wireless Hotspots CSE 403 LCA Presentation Team Members: Chris Scoville Tessa MacDuff Matt Mohebbi Aiman Erbad Khalil El Haitami.
Using C++ and OpenGL George Georgiev Telerik Corporation
Course Overview, Introduction to CG Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 5, 2003.
© Copyright Khronos Group, Page 1 The State of the Union Update from the Working Group Chair Tom Olson, Texas Instruments Inc.
Blender Landon Glodowski. Agenda  The History of Blender  Blender 2.6  Python Scripts  The Blender Foundation  The Blender Foundation Projects 
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
Week II Platforms and Engines. Overview Platforms and Engines Tools and SDKs Netbeans Game Development Walkthrough
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
Operating System. 1. How Operating Systems Work Operating System Functions At the simplest level, an operating system does two things: It manages the.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
1 Computer Graphics Week2 –Creating a Picture. Steps for creating a picture Creating a model Perform necessary transformation Lighting and rendering the.
© Copyright OpenGL ARB, Page 1 Ecosystem Working Group Status Update Ecosystem Working Group Status Update Chair: Benj Lipchak, ATI.
1 Control Software (CAT) Introduction USB Interface implementation Calorimeter Electronics Upgrade Meeting Frédéric Machefert Wednesday 5 th May, 2010.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
MonoXNA 3D. Games Fun Relaxation Mind training Profitable business –World of Warcraft (successful game)
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
© Copyright Khronos Group, Page 1 Khronos and OpenGL ES Status Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
DIGITAL CONTENT CREATION PROCESS fff PRE-PRODUCTION PRODUCTION POST-PRODUCTION Process ANIMATION PROCESS.
Client-Server applications Introduction to Java Applets Client-server architectures Why do Applets exist? What can an Applet do?
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
1 /13 SPICE* Roadmap Presentation for KVM Forum 2011 Alon Levy, Red Hat *or Spice or spice.
BlenderPocket How Blender bring CG in Mobile Devices by Salvatore Russo (russose) Blender Conference (21/10/2006)
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
10/2/20161 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
2D Graphics Optimizations
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Beginning of Xamarin for iOS development
Unit 20 – Computer Game Platforms & Technology – Software Technology
Khang Lam Daniel Limas Kevin Castillo Juan Battini
Computer Software Digital Literacy.
Piano Chord Builder Artem Kuligin CS 470 6/17/2018 3:08 AM
Mobile Operating System
Advanced Graphics Algorithms Ying Zhu Georgia State University
Computer Software Digital Literacy.
Introduction to OpenGL
Contents: Introduction Different Mobile Operating Systems
Popular Operating Systems
Drupal VM and Docker4Drupal For Drupal Development Platform
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Unit 20 Software Part 2.
Unit 20 Software Part 2.
AI Stick Easy to learn and use, accelerate the industrialization of artificial intelligence, and let the public become an expert in AI.
An introduction to the Linux environment v
Educational Computing
Introduction to OpenGL
OpenGL-Rendering Pipeline
Presentation transcript:

BlenderPocket How Blender bring CG in Mobile Devices by Salvatore Russo (russose) Blender Conference (21/10/2006)

Content Source Code Overview Future of this project and main applications Questions ? Demonstration: working with BlenderPocket

Source Code Overview

➔ No Game Engine ➔ No Sound ➔ No international Support Two main work areas : ➔ Ghost ➔ OpenGL Other fine tuning in: ➔ Source ➔ bmfont for fonts

GHOST library ➔ Implements the event management system ➔ Implements the OS Window management ➔ Implements hardware support (mouse, keyboard,...) ➔ Implements OpenGL context management

GHOST for PocketPC GHOST Heart GHOST_DisplaymanagerCarb on GHOST_WindowCarbon GHOST_SystemCarbon (Mac) GHOST_DisplaymanagerX11 GHOST_WindowX11 GHOST_SystemX11 (Linux) GHOST_DisplaymanagerWin3 2 GHOST_WindowWin32 GHOST_SystemWin32 (Windows) GHOST_DisplaymanagerWinC E GHOST_WindowWinCE GHOST_SystemWinCE (Windows Mobile) GHOST_WindowWinCE : ➔ Windows creation (only one window for BlenderPocket! ) ➔ OpenGL initialisation ➔ Other tuning GHOST_SystemWinCE : ➔ BlenderPocket hardware button implementation ➔ Event loop for BlenderPocket ➔ Other tuning

OpenGL situation for PocketPC OpenGL ES Mesa (open source OpenGL) + It is a standard + Especially developed for mobile + Optimized for mobile (fixed point) + Implementations available for free or open source - It is only a subset of OpenGL - Vital functions for Blender are missing !! + A full OpenGL implementation + A portable code + A long history and development - A full optimization needed (fixed point) - Some problems to be solved to even start Blender

A crucial decision... OpenGL ES Mesa (open source OpenGL) + Ghost tests worked with OpenGL ES and a wrapper (KlimtES from Daniel Wagner not open source) + Blender could start + Hardware accelerated OpenGL ES devices already exists - A deep understanding of OpenGL necessary to develop a wrapper (starting from scratch!) + Ghost tests worked with Mesa but very slow + I optimized it using direct access to the screen (GAPI) - Blender could NOT start! - Fixed point implementation necessary to use Blender - Going against the industry massively adopting OpenGL ES - No hope to use hardware acceration for mobile devices

OGLES2OGL library is born Main OpenGL functions emulated: ➔ Begin/End emulated using vertex array ➔ GLU taken from Mesa ➔ Evaluators (for nice curves) replaced by simple lines ➔ Pixel/Bitmap drawing implemented using texture drawing (already here in Blender sources!) ➔ Raster position supported by ogles2ogl ➔ OpenGL selection process implemented using an off-line rendering ➔ Other misc stuff... Front/Back buffer functionalities NOT implemented. “myswapbuffer” function in Blender is a good friend for that :)

BlenderPocket Source Code - Final Picture Blender Pocket ➔ OpenGL ES ➔ Port of some others extern libraries (PythonCE, zlibCE,etc...) ➔ Ghost for mobile device ➔ OpenGL wrapper (OGLES2OGL) ➔ bmfont adapted to mobile device requirements blender heart intern libraries extern libraries ➔ Front/back buffer approach replaced thanks to myswapbuffer ➔ Menu/toobox size reduction ➔ DNA generated for our devices ➔ Implementation of standard c functions not supported (e.g. open, close, stat, etc...) ➔ Unicode conversion to WinCE API ➔ Other tuning

Future of BlenderPocket and Main Applications

Priorities for the near future 1) Support efforts to make Blender run on other embedded Oss or support OpenGL ES hardware accelerated devices...on Nokia770 (linux) from Giuseppe (using Mesa) I am currently working in making BlenderPocket support Vincent, an open source OpenGL ES implementation (today, only Rasteroid implementation is supported) Keep in mind that the PSP and some PocketPC already have an OpenGL ES hardware acceleration

Priorities for the near future 2) Support Blender/BlenderPocket promotion writing some tutorials Mobile device fan with some experience with 3D packages Mobile device fan with no experience with 3D packages 3D packages users curious to discover BlenderPocket Blender fan with a good knowledge of Blender BlenderPocket is probably not the right product. Blender should first be learned....needs short explanations only. They will naturally move to Blender documents.... needs detailed explanations to use BlenderPocket.... needs only short explanations to use BlenderPocket.

Priorities for the near future 3) Improvements Stability issues to be solved (“white screen bug”, freeze) Optimization considering more fixed point implementation (GLU, MOTO intern library (?) ) Other optimization (OpenGL configuration, UI theme better adapted to our mobile devices) Any help is welcome :)

And the Game Engine ? Use Blender intern Game Engine Optimizations ( a lot? ) necessary to have acceptable fps. Use Game Engines already ported for mobile devices OGRE3D already ported for PocketPC

Applications of BlenderPocket Ever have our favourite software with us :) Education tool to better learn and understand Computer Graphic during “lost time” (train, aircraft, doctor, etc...) Easy to bring Blender near to the object we want to model/texture Bring our favourite.blend files everywhere (with some precautions) Realize small projects directly from our mobile device

Applications of BlenderPocket Advertise Blender proving its quality running in our extreme environment OGLES2OGL could be use to run Blender on “One Laptop Per Child” computer without FPU No limits thanks to python scripting (advanced virtual keyboards, 3d calculator, navigation system, CAD scripts, etc...)

Links BlenderPocket: OpenGL ES Rasteroid Implementation OpenGL ES Vincent Open Source Implementation Khronos Group OGRE for mobile devices

Thank you :) Questions ? A live demo...