© Copyright Khronos Group, 2004 - Page 1 Coping with Fixed Point Arto Astala, CTO

Slides:



Advertisements
Similar presentations
ENT4310 Business Economics and Marketing A six-step model for marketing research Arild Aspelund.
Advertisements

Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Free Space and Allocation Issues
Strategies for Successful Journal Publications Rachael E. Goodhue University of California, Davis.
Copyright ©: Lawrence Angrave, Vikram Adve, Caccamo 1 Virtual Memory III.
3D Graphics Rendering and Terrain Modeling
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Chapter 3.5 Debugging Games
Projection Matrix Tricks Eric Lengyel Outline  Projection Matrix Internals  Infinite Projection Matrix  Depth Modification  Oblique Near Clipping.
CSC1016 Coursework Clarification Derek Mortimer March 2010.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Learning from Observations Chapter 18 Section 1 – 4.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Lecture 2 Teams Principles What makes a good project Project Definition Project Plan.
Course Website: Computer Graphics 9: Clipping In 3D.
DT228/3 Web Development JSP: Directives and Scripting elements.
Computer ArchitectureFall 2008 © August 25, CS 447 – Computer Architecture Lecture 3 Computer Arithmetic (1)
Hub Queue Size Analyzer Implementing Neural Networks in practice.
Kathy Grimes. Signals Electrical Mechanical Acoustic Most real-world signals are Analog – they vary continuously over time Many Limitations with Analog.
Prepared by: Hind J. Zourob Heba M. Matter Supervisor: Dr. Hatem El-Aydi Faculty Of Engineering Communications & Control Engineering.
Aaron Schultz. Idea: Objects close to a light shadow those far away. Anything we can see from the light’s POV is lit. Everything hidden is dark. Distance.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Captcha Soft solutions Pvt Ltd is a recognized name in the web design industry. For the past three years, we’ve been doing what we love: inventing, conceptualizing,
IB Internal Assessment Design. Designing an Experiment Formulate a research question. Read the background theory. Decide on the equipment you will need.
1 Shawlands Academy Higher Computing Software Development Unit.
Scan Conversion. Also known as rasterization In our programs objects are represented symbolically –3D coordinates representing an object’s position –Attributes.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
CSE 381 – Advanced Game Programming Basic 3D Graphics
Additional Unit 2 Lecture Notes New Instructional Design Focus School of Education Additional Unit 2 Lecture Notes New Instructional Design Focus School.
Honors Track: Competitive Programming & Problem Solving Effective Programming Kevin Verbeek.
Connected 3D Game Development for Mobile Devices using X-Forge Game Developers Conference 2005 March 11, San Francisco Petrus Lundqvist.
Multimedia. What is Multimedia? The integration of interactive elements using computer technology: __________.
Computer Graphics Texture Mapping
Project Raytracing. Content Goals Idea of Raytracing Ray Casting – Therory – Practice Raytracing – Theory – Light model – Practice Output images Conclusion.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
CSE 381 – Advanced Game Programming Code Setup.
Fast Cascade VSM By Zhang Jian.
Tiger Woods 2008: Advancements in Environments Peter Arisman Technical Art Director Tiger Woods 2008.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Static Program Analysis of Embedded Software Ramakrishnan Venkitaraman Graduate Student, Computer Science Advisor: Dr. Gopal Gupta.
QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs By Koen Claessen, Juhn Hughes ME: Mike Izbicki.
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
© Copyright Khronos Group, Page 1 Coping with Fixed Point Mik BRY CEO
Fixed & Floating Number Format Dr. Hugh Blanton ENTC 4337/5337.
Advanced Computer Graphics Shadow Techniques CO2409 Computer Graphics Week 20.
The Software Development Process
Texture Mapping CAP4730: Computational Structures in Computer Graphics.
Real-Time Cyber Physical Systems Application on MobilityFirst Winlab Summer Internship 2015 Karthikeyan Ganesan, Wuyang Zhang, Zihong Zheng Shantanu Ghosh,
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
© 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.
IB Internal Assessment Exploration. Designing an Experiment Formulate a research question. Read the background theory. State the variables. Decide on.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Kernel Regression Prof. Bennett Math Model of Learning and Discovery 1/28/05 Based on Chapter 2 of Shawe-Taylor and Cristianini.
OpenGL and You I Cast, Therefore I Am. Ray Casting Idea is simple, implementation takes some work –Cast rays as if you were the camera –Determine intersection.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
1. WHAT IS A PROJECT? “A project is a problem scheduled for solution.” This definition forces us to recognize that projects are aimed at solving problems.
STAR Simulation. Status and plans V. Perevoztchikov Brookhaven National Laboratory,USA.
09/23/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Reflections Shadows Part 1 Stage 1 is in.
A Method for Improving Code Reuse System Prasanthi.S.
Implementation Topics Describe –Characteristics of good implementations –Best practices to achieve them Understand role of comments Learn debugging techniques.
Computer Graphics.
CCT356: Online Advertising and Marketing
Lecture 13 Clipping & Scan Conversion
Lecture 5: Writing Page
Games Development 2 Tools Programming
Chapter 9: Implementation
Presentation transcript:

© Copyright Khronos Group, Page 1 Coping with Fixed Point Arto Astala, CTO

© Copyright Khronos Group, Page 2 Fathammer Mobile Gaming Technology -X-Forge™ Game Development System -Client focused -Complete solution -4 years of experience Game development -Internal development -Game Development Partners Industry cooperation -Samsung, Gizmondo, Tapwave, Nokia -Intel, TI, Nvidia (& MediaQ), ATI -Channels (TBA)

© Copyright Khronos Group, Page 3 Summary How do you do it without floats? You don’t !!!

© Copyright Khronos Group, Page 4 Outline The Audience The Difference General Strategies The Production Chain Coding Summary Q & A Demo

© Copyright Khronos Group, Page 5 The Audience Who you are? Professional experience Graphics experience Art experience

© Copyright Khronos Group, Page 6 The Difference Problems in any math -Loss of precision -Speed of calculation -Implementation effort -The artists With floats you don’t usually notice -In mobile / embedded there is no difference -You can partly choose your problems There is a difference -Space, Speed, Effort limitation -Try to optimize the recurring effort -Fixed is better sometimes

© Copyright Khronos Group, Page 7 General Strategies Don’t fight the system -Some things are just done in float, no matter what -Avoid risky operations -Train the artists Know your system -Order operations -Debug math -Create precision offline -How many polys per pixel you need Be careful -Audit the content -Debug the math -Use floats when needed (e.g. physics)

© Copyright Khronos Group, Page 8 Production Chain All starts with content -Usually most effort, by far -Optimize effort -Avoid mistakes Tool chain massages it into suitable shape -Use all the precision you can -Verify everything -Pre-calculate Real-time processing in the device -Understand the problems -Don’t cumulate the errors -Solutions available, both math only and full game engine

© Copyright Khronos Group, Page 9 Production Chain: Art Love your artist Art is done in float but understanding is needed -Set limits -Use natural one unit -Avoid extreme differences and sizes -Document! There is enough precision -Scale at export if necessary -Track the scaling factors Remember textures & UV mapping Remember device differences -Perspective correction, lights, raw performance differences

© Copyright Khronos Group, Page 10 Production Chain: Tools Use all available precision -Doubles are good for fixed point -Select appropriate representation (quarternion) -Filter out all unnecessary data Pre-calculate as much as you can -Win-win: improves both performance and precision Verify your content -Weed out problems -Fast preview for artists helps -Verify limits -Useful error messages -Keep the coder out of the loop

© Copyright Khronos Group, Page 11 Production Chain: Device Use old coders -Re-use at its best :-) Avoid risky things, bad things -Order of operations -Use alternative algorithms (normalize, length) Exploit the content -You know it, trust it! (limits) Discard errors, not precision -Collect transformations -Delay or eliminate world space -Calculate relative to camera

© Copyright Khronos Group, Page 12 Coding Make always the same errors Use libraries, they are there Debug / trace your system Use precision where needed -Cumulation of errors -Catastrophic errors -Low volume -Physics Alternative ways -Sliding origo -World size limits -Shift decimal point, use multiple representations

© Copyright Khronos Group, Page 13 Summary Success is achieved by care and feeding of the artists Understand your system Discard errors, not precision Just do it (without floats) Don’t reinvent the wheel There is always a way

© Copyright Khronos Group, Page 14 Questions ?

© Copyright Khronos Group, Page 15 COPING WITH FIXED POINT: Using fixed point in applications on top of OpenGL ES Maintain accuracy, avoid overflows and methods for improved performance Effective use of fixed point in OpenGL ES applications Float to Fixed-point based engine conversions, for those who want to write for common-lite STAYING GROUNDED IN A FLOAT FREE WORLD