OPEN FRAMEWORKS +
                            KINECT PART III

                               @GAFFTA




Thursday, March 14, 13
3D and Open Frameworks




    Cameras

    3D Math Classes

    OpenGL Wrappers




Thursday, March 14, 13
Vector Classes



    ofVec2f , ofVec3f , ofVec4f
    align()
    cross()
    distance()
    rotate()
    perpendicular()
    dot()


    vectors are used to store dimensional data such as position, direction, length
    ( or magnitude )




Thursday, March 14, 13
Quaternion Classes




    ofQuaternion


    With 3D rotation becomes more complicated rotating in X ,Y , and Z in
    different orders will result in different perceived rotations. Quaternions are
    used to calculate “moves” between rotations for consistency.




Thursday, March 14, 13
Matrices Classes



    ofMatrix3x3 , ofMatrix4x4
    getRotate( )
    getEuler( )
    inverse( )
    makeRotate( )


    Matrices are often used to calculate 3d transformation data on a set of data
    to move things between coordinate spaces. Luckily of wraps a lot of this
    lower level functionality so these classes are more behind the scenes classes
    until you want to get really low level.




Thursday, March 14, 13
3D Math




    ofWrapDegrees()
    ofRadToDeg( )
    ofNoise( )
    ofInsidePoly()
    ofRandom( )


    Open Frameworks does a really good job of wrapping simple math functions
    that are often used when working with polygons angles and generative art




Thursday, March 14, 13
Cameras
    Cameras is a great way to control how a 3D rendered scene looks. Cameras
    are the “eyes” of the window. The camera position has a large effect on
    rendered effects such as lights and shading.




                                   *HTTP://WWW.OPENFRAMEWORKS.CC/DOCUMENTATION/3D/OFCAMERA.HTML




      ofCamera - base camera class. Camera rendering is controlled similar to an ofFbo
      with ofCamera::begin() and ofCamera::end( )

      ofEasyCam - extends ofCamera and adds a little extra functionality including
      mouse dragging functionality.


Thursday, March 14, 13
OpenGL
    OpenGL is an API for interactive directly with the GPU which is much more adept at
    handling parallel processing than the CPU. OpenGL is a very deep and extensive topic but
    the basics are wrapped well in Open Frameworks

    ofMesh - An ofMesh represents a set of vertices in 3D spaces, and normals at those points,
    colors at those points, and texture coordinates at those points. Each of these different
    properties is stored in a vector.Vertices are passed to your graphics card and your graphics
    card fill in the spaces in between them in a processing usually called the rendering pipeline.
    The rendering pipeline goes more or less like this:




                                       *HTTP://WWW.OPENFRAMEWORKS.CC/DOCUMENTATION/3D/OFMESH.HTML


Thursday, March 14, 13
OpenGL
    ofNode - basic “3d” object class with position , rotation , and orientation. It also has some
    hand functions like : lookAt( ) which orients an ofNode object to any other ofNode object


    ofShader - shaders are small programs written in GLSL that allow for really intensive
    rendering computation. They are often split into two parts : the Vertex shader which
    works with vertices , and the Fragment shader which works with pixels. Shaders are a
    very deep topic but OF makes it easy to :


    load a shader from an external text file
    pass any data into the shader
    begin() and end() rendering.


    ofTexture - allows pixel data to be rendered on 3d vertices

    ofMaterial - contains properties for how textures are rendered such as shininess and color
    along with specular color



Thursday, March 14, 13
Kinect Point Cloud
    The kinect interprets the scene in 3D so it’s easy to work with the raw data. All you have
    have to do in OF is add it to an ofMesh and point an ofCamera at it.




Thursday, March 14, 13
ofxKinect + ofxUI + Point Cloud

Thursday, March 14, 13
Splicing the Point Cloud

Thursday, March 14, 13
Masking a Fragment Shader

Thursday, March 14, 13
Cube Point Cloud

Thursday, March 14, 13
Apply Vertex + Fragment Shader

Thursday, March 14, 13

More Related Content

PDF
Hacking the Kinect with GAFFTA Day 2
PDF
Hacking the Kinect with GAFFTA Day 4
PDF
Hacking the Kinect with GAFFTA Day 1
PDF
DIANNE - A distributed deep learning framework on OSGi - Tim Verbelen
PDF
Realtime 3D Visualization without GPU
PDF
GPU - how can we use it?
PDF
Log polar coordinates
PPTX
ANISH_and_DR.DANIEL_augmented_reality_presentation
Hacking the Kinect with GAFFTA Day 2
Hacking the Kinect with GAFFTA Day 4
Hacking the Kinect with GAFFTA Day 1
DIANNE - A distributed deep learning framework on OSGi - Tim Verbelen
Realtime 3D Visualization without GPU
GPU - how can we use it?
Log polar coordinates
ANISH_and_DR.DANIEL_augmented_reality_presentation

What's hot (13)

PPTX
Dijkastra’s algorithm
PDF
Tensorflow IoT - 1 Wk coding challenge
PDF
Transfer learning for IoT
PPT
cs247 slides
PPTX
Transformer Zoo (a deeper dive)
PDF
A Beginner's Guide to Monocular Depth Estimation
PDF
Bryan Thompson, Chief Scientist and Founder at SYSTAP, LLC at MLconf NYC
PPTX
Image Classification using deep learning
PDF
Tensorflow for IoT
PDF
Skeltrack: A Free Software library for skeleton tracking (GUADEC 2012)
PDF
Skeltrack: A Free Software library for skeleton tracking (LinuxTag 2012)
PPT
Praseed Pai
PPTX
KC Skeletalmesh - Features of first two graphics engines
Dijkastra’s algorithm
Tensorflow IoT - 1 Wk coding challenge
Transfer learning for IoT
cs247 slides
Transformer Zoo (a deeper dive)
A Beginner's Guide to Monocular Depth Estimation
Bryan Thompson, Chief Scientist and Founder at SYSTAP, LLC at MLconf NYC
Image Classification using deep learning
Tensorflow for IoT
Skeltrack: A Free Software library for skeleton tracking (GUADEC 2012)
Skeltrack: A Free Software library for skeleton tracking (LinuxTag 2012)
Praseed Pai
KC Skeletalmesh - Features of first two graphics engines

Similar to Hacking the Kinect with GAFFTA Day 3 (20)

PDF
Computer Graphics - Lecture 03 - Virtual Cameras and the Transformation Pipeline
KEY
openFrameworks 007 - GL
PPTX
Penn graphics
PDF
WebGL and three.js
PPT
Graphical Objects and Scene Graphs
PPTX
Geometric-Modeling-in-Graphics-and-Visual-Computing-Updated Version.pptx
PDF
Computer Graphics Programming Problem Solving And Visual Communication Dr Ste...
PDF
Computer graphics notes
PDF
cs notes for the syudents of computer science
PDF
The Day You Finally Use Algebra: A 3D Math Primer
PDF
3D Math Primer: CocoaConf Chicago
PDF
Computer Graphics Notes.pdf
PDF
Cliff sugerman
PDF
Hw1 updated
PPT
Rendering: Vertices, Indices, UVs and Shaders
PPTX
3 CG_U1_P2_PPT_3 OpenGL.pptx
PDF
201707 SER332 Lecture 26
KEY
openFrameworks 007 - 3D
PPTX
chapter 3.pptxGeometry chapter 4 and 5 transformation ,translation ,animation...
PDF
Low Level Graphics & OpenGL
Computer Graphics - Lecture 03 - Virtual Cameras and the Transformation Pipeline
openFrameworks 007 - GL
Penn graphics
WebGL and three.js
Graphical Objects and Scene Graphs
Geometric-Modeling-in-Graphics-and-Visual-Computing-Updated Version.pptx
Computer Graphics Programming Problem Solving And Visual Communication Dr Ste...
Computer graphics notes
cs notes for the syudents of computer science
The Day You Finally Use Algebra: A 3D Math Primer
3D Math Primer: CocoaConf Chicago
Computer Graphics Notes.pdf
Cliff sugerman
Hw1 updated
Rendering: Vertices, Indices, UVs and Shaders
3 CG_U1_P2_PPT_3 OpenGL.pptx
201707 SER332 Lecture 26
openFrameworks 007 - 3D
chapter 3.pptxGeometry chapter 4 and 5 transformation ,translation ,animation...
Low Level Graphics & OpenGL

Recently uploaded (20)

PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PPTX
Internet of Everything -Basic concepts details
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
future_of_ai_comprehensive_20250822032121.pptx
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PPTX
Build Your First AI Agent with UiPath.pptx
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
NewMind AI Weekly Chronicles – August ’25 Week IV
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Custom Battery Pack Design Considerations for Performance and Safety
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Internet of Everything -Basic concepts details
Co-training pseudo-labeling for text classification with support vector machi...
Rapid Prototyping: A lecture on prototyping techniques for interface design
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
sbt 2.0: go big (Scala Days 2025 edition)
future_of_ai_comprehensive_20250822032121.pptx
Taming the Chaos: How to Turn Unstructured Data into Decisions
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Enhancing plagiarism detection using data pre-processing and machine learning...
Build Your First AI Agent with UiPath.pptx
Lung cancer patients survival prediction using outlier detection and optimize...

Hacking the Kinect with GAFFTA Day 3

  • 1. OPEN FRAMEWORKS + KINECT PART III @GAFFTA Thursday, March 14, 13
  • 2. 3D and Open Frameworks Cameras 3D Math Classes OpenGL Wrappers Thursday, March 14, 13
  • 3. Vector Classes ofVec2f , ofVec3f , ofVec4f align() cross() distance() rotate() perpendicular() dot() vectors are used to store dimensional data such as position, direction, length ( or magnitude ) Thursday, March 14, 13
  • 4. Quaternion Classes ofQuaternion With 3D rotation becomes more complicated rotating in X ,Y , and Z in different orders will result in different perceived rotations. Quaternions are used to calculate “moves” between rotations for consistency. Thursday, March 14, 13
  • 5. Matrices Classes ofMatrix3x3 , ofMatrix4x4 getRotate( ) getEuler( ) inverse( ) makeRotate( ) Matrices are often used to calculate 3d transformation data on a set of data to move things between coordinate spaces. Luckily of wraps a lot of this lower level functionality so these classes are more behind the scenes classes until you want to get really low level. Thursday, March 14, 13
  • 6. 3D Math ofWrapDegrees() ofRadToDeg( ) ofNoise( ) ofInsidePoly() ofRandom( ) Open Frameworks does a really good job of wrapping simple math functions that are often used when working with polygons angles and generative art Thursday, March 14, 13
  • 7. Cameras Cameras is a great way to control how a 3D rendered scene looks. Cameras are the “eyes” of the window. The camera position has a large effect on rendered effects such as lights and shading. *HTTP://WWW.OPENFRAMEWORKS.CC/DOCUMENTATION/3D/OFCAMERA.HTML ofCamera - base camera class. Camera rendering is controlled similar to an ofFbo with ofCamera::begin() and ofCamera::end( ) ofEasyCam - extends ofCamera and adds a little extra functionality including mouse dragging functionality. Thursday, March 14, 13
  • 8. OpenGL OpenGL is an API for interactive directly with the GPU which is much more adept at handling parallel processing than the CPU. OpenGL is a very deep and extensive topic but the basics are wrapped well in Open Frameworks ofMesh - An ofMesh represents a set of vertices in 3D spaces, and normals at those points, colors at those points, and texture coordinates at those points. Each of these different properties is stored in a vector.Vertices are passed to your graphics card and your graphics card fill in the spaces in between them in a processing usually called the rendering pipeline. The rendering pipeline goes more or less like this: *HTTP://WWW.OPENFRAMEWORKS.CC/DOCUMENTATION/3D/OFMESH.HTML Thursday, March 14, 13
  • 9. OpenGL ofNode - basic “3d” object class with position , rotation , and orientation. It also has some hand functions like : lookAt( ) which orients an ofNode object to any other ofNode object ofShader - shaders are small programs written in GLSL that allow for really intensive rendering computation. They are often split into two parts : the Vertex shader which works with vertices , and the Fragment shader which works with pixels. Shaders are a very deep topic but OF makes it easy to : load a shader from an external text file pass any data into the shader begin() and end() rendering. ofTexture - allows pixel data to be rendered on 3d vertices ofMaterial - contains properties for how textures are rendered such as shininess and color along with specular color Thursday, March 14, 13
  • 10. Kinect Point Cloud The kinect interprets the scene in 3D so it’s easy to work with the raw data. All you have have to do in OF is add it to an ofMesh and point an ofCamera at it. Thursday, March 14, 13
  • 11. ofxKinect + ofxUI + Point Cloud Thursday, March 14, 13
  • 12. Splicing the Point Cloud Thursday, March 14, 13
  • 13. Masking a Fragment Shader Thursday, March 14, 13
  • 15. Apply Vertex + Fragment Shader Thursday, March 14, 13