SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
CeedMath & CeedGL
Let’s talk 3D...




web: 	

 	

 www.creaceed.com
twitter: 	

 @rsebbe
                                cocoaheads.be
Overview
• CeedMath & CeedGL are libraries for easier
 computer graphics development on Mac & iOS

• BSD license

• Available on Github
  • https://github.com/rsebbe/CeedMath
  • https://github.com/rsebbe/CeedGL
Overview
                         App


         Ceed3DGL         Ceed3DRenderMan        ...
CeedGL




                          Ceed3D




GL            CeedMath              Foundation
CeedMath
Why?
• CG math libs are generally written in C++
• C++ is cumbersome when developing in
  Objective-C
• Need of a pure C library
• Need for both float & double data type
Definition
• Written in pure C
• Macro-based templates, float & double
• Simple types (float*)
• Chain-able
• C++ interoperable (polymorphic)
  • In C, use _f or _d suffixes
  • In C++, automatic based on param type
Types
• vector (2D, 3D, 4D)
• normal (3D) / plane (4D)
• matrix (2D, 4D)
• quaternion (4D)
• ray
• box
• frustum
• triangle
What?
• vector: add, subtract, dot/vect product, norm,
  rotate, project, find angles, lerp...
• matrix: add, subtract, multiply, transform,
  solve, invert...
• quaternion: standard operations...
• ray: intersections w/ plane/triangle/box...
• box: union / intersection...
• frustum: perspective transform...
• triangle: normal computation
Xcode Project
• Universal: Mac & iOS libs

• Headers note
  • lib: PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/CeedMath
  • app: HEADER_SEARCH_PATHS = "$(DSTROOT)/usr/local/include" "$
    (CONFIGURATION_BUILD_DIR)/usr/local/include"


  • #include <CeedMath/C3Math.h>
Demo
• Demo #1: template mechanics

• Demo #2: real world example (rounded rect)
                   C3MeshGeometry+Primitives.mm



• Demo #3: C++ templates for mouse picking
                   C3StreamPrimitive+Picking.mm
Demo
Demo’s
CeedGL
Why?
• OpenGL is a C API, most GL objects are int’s
  • Error prone, all function take int’s
  • Complex APIs, many functions
  • Not practical within Objective-C
  • Intimidating, hard to start
• Higher level abstractions exist (scene
 graphs), but what if you only need standard
 OpenGL?
Old vs. Modern OpenGL

      OpenGL 1.x, 2.x            OpenGL ES 1.x
 define camera position, define object position, choose a
predefined illumination model, place the lights, draw some
      triangles, change position, draw some other...


      OpenGL >= 3.1          OpenGL ES 2.x + WebGL
set vertices, indices, shading program & params, then draw
OpenGL
• Modern OpenGL programming is hard.
 Especially the first time...
 • It’s a functional C API
 • Most “objects” are represented by handles (int)
 • Modern GL has removed many concepts
    • Light, shading, transforms
 • For the good, the old pipeline was limiting, and
   a hurdle for card makers
 • It is now more in sync w/ hardware capabilities
CeedGL
• CeedGL does not define new concepts
• But it helps in setting up and managing your
  OpenGL objects
• Thin Objective-C Wrapper
CeedGL
                            GLObject
GLFramebuffer                                GLRenderbuffer


 GLBuffer       GLTexture         GLShader      GLProgram


                                                  GLValue




                     GLDrawCommand
Draw (1/2)
     • Vertex Shader
        • 1 execution per vertex
        • inputs: uniform, attribute
        • output: varying
     • Fragment Shader
        • 1 execution per output
         pixel
       • input: uniform, varying
       • output: fragment color
Draw (2/2)
        GLDrawCommand          GLFramebuffer

GLProgram      u    GLValue         GLRenderbuffer

v   GLShader   a    GLValue          GLTexture

f   GLShader   a   GLBuffer
               i   GLBuffer
               t   GLTexture
Demo’s
GLKit?
• GLKit’s Math
  • NEON optimized
  • Currently iOS5 only, definitely Apple only
  • Has an overlap with CeedMath
• GLKit’s GL
  • Forces a GL coding style
  • Provides easier starting point
  • Mostly complementary to CeedGL

• Permissive, forkable open source make
 sense in such projects
Happy 3D coding !



web: 	

 	

 www.creaceed.com
twitter: 	

 @rsebbe
                                cocoaheads.be

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to ScalaJohan Andrén
 
CPP13 - Object Orientation
CPP13 - Object OrientationCPP13 - Object Orientation
CPP13 - Object OrientationMichael Heron
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03) iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03) Jonathan Engelsma
 
Typescript overview
Typescript overviewTypescript overview
Typescript overviewThanvilahari
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02) iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02) Jonathan Engelsma
 
Introduction To Rust Language - Chester Devs
Introduction To Rust Language - Chester DevsIntroduction To Rust Language - Chester Devs
Introduction To Rust Language - Chester DevsAndy Lowry
 
Model with actors and implement with Akka
Model with actors and implement with AkkaModel with actors and implement with Akka
Model with actors and implement with AkkaNgoc Dao
 
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...Álvaro Agea Herradón
 
Microservices, the lean way
Microservices, the lean wayMicroservices, the lean way
Microservices, the lean wayBruno Bossola
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Java- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionJava- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionMazenetsolution
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Patternguy_davis
 
Melbourne Cocoa Heads CoreML Presentation
Melbourne Cocoa Heads CoreML PresentationMelbourne Cocoa Heads CoreML Presentation
Melbourne Cocoa Heads CoreML PresentationHon Weng Chong
 
Kotlin For Android (at DevFest İzmir 2016)
Kotlin For Android (at DevFest İzmir 2016)Kotlin For Android (at DevFest İzmir 2016)
Kotlin For Android (at DevFest İzmir 2016)Semih Bozdemir
 
Adapter design-pattern2015
Adapter design-pattern2015Adapter design-pattern2015
Adapter design-pattern2015Vic Tarchenko
 
Introduction to Scala for Java Developers
Introduction to Scala for Java DevelopersIntroduction to Scala for Java Developers
Introduction to Scala for Java DevelopersSolix JJ
 

Was ist angesagt? (20)

Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Short and fast introduction to Scala
Short and fast introduction to ScalaShort and fast introduction to Scala
Short and fast introduction to Scala
 
CPP13 - Object Orientation
CPP13 - Object OrientationCPP13 - Object Orientation
CPP13 - Object Orientation
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03) iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 03)
 
Typescript overview
Typescript overviewTypescript overview
Typescript overview
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02) iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 02)
 
Introduction To Rust Language - Chester Devs
Introduction To Rust Language - Chester DevsIntroduction To Rust Language - Chester Devs
Introduction To Rust Language - Chester Devs
 
Model with actors and implement with Akka
Model with actors and implement with AkkaModel with actors and implement with Akka
Model with actors and implement with Akka
 
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
 
Microservices, the lean way
Microservices, the lean wayMicroservices, the lean way
Microservices, the lean way
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Java- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionJava- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solution
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Pattern
 
Kotlin & Swift
Kotlin & SwiftKotlin & Swift
Kotlin & Swift
 
Scala for C# Developers
Scala for C# DevelopersScala for C# Developers
Scala for C# Developers
 
Melbourne Cocoa Heads CoreML Presentation
Melbourne Cocoa Heads CoreML PresentationMelbourne Cocoa Heads CoreML Presentation
Melbourne Cocoa Heads CoreML Presentation
 
Kotlin For Android (at DevFest İzmir 2016)
Kotlin For Android (at DevFest İzmir 2016)Kotlin For Android (at DevFest İzmir 2016)
Kotlin For Android (at DevFest İzmir 2016)
 
Adapter design-pattern2015
Adapter design-pattern2015Adapter design-pattern2015
Adapter design-pattern2015
 
Introduction to Scala for Java Developers
Introduction to Scala for Java DevelopersIntroduction to Scala for Java Developers
Introduction to Scala for Java Developers
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 

Andere mochten auch

Gestión del CM y herramientas - #AprendiendoenDigital
Gestión del CM y herramientas - #AprendiendoenDigitalGestión del CM y herramientas - #AprendiendoenDigital
Gestión del CM y herramientas - #AprendiendoenDigitalAyuntamiento de Sevilla.
 
Adex Benchmark 2011 (IAB Europe)
Adex Benchmark 2011 (IAB Europe)Adex Benchmark 2011 (IAB Europe)
Adex Benchmark 2011 (IAB Europe)IAB Spain
 
Parkinson i Alzheimer dues malalties neurodegeneratives
Parkinson i Alzheimer dues malalties neurodegenerativesParkinson i Alzheimer dues malalties neurodegeneratives
Parkinson i Alzheimer dues malalties neurodegenerativesPatricia Cañaveras
 
LOS ORIGENES DE MADRID
LOS ORIGENES DE MADRIDLOS ORIGENES DE MADRID
LOS ORIGENES DE MADRIDpazair
 
CV-Library Q4 Media Pack
CV-Library Q4 Media PackCV-Library Q4 Media Pack
CV-Library Q4 Media PackJames Legge
 
Taller outlook 2010
Taller outlook 2010Taller outlook 2010
Taller outlook 2010FACPYME
 
El libro de_los_cuidadores_de_semillas_-_rosemary_morrow
El libro de_los_cuidadores_de_semillas_-_rosemary_morrowEl libro de_los_cuidadores_de_semillas_-_rosemary_morrow
El libro de_los_cuidadores_de_semillas_-_rosemary_morrowInstituto Comenius
 
Programación Actividades CURSA
Programación Actividades CURSAProgramación Actividades CURSA
Programación Actividades CURSAAlexander Perdomo
 
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...Checks & Balances
 
Con los hijos
Con los hijosCon los hijos
Con los hijosanacjg
 
Lumenous trust mit media
Lumenous trust mit mediaLumenous trust mit media
Lumenous trust mit mediaLaVonne Reimer
 
DEKRA Magazine - n. 8 del 2010
DEKRA Magazine - n. 8 del 2010DEKRA Magazine - n. 8 del 2010
DEKRA Magazine - n. 8 del 2010DEKRA Italia
 
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"Jansäter Kommunikation AB
 

Andere mochten auch (20)

Vector3
Vector3Vector3
Vector3
 
Jesus te ama
Jesus te amaJesus te ama
Jesus te ama
 
Gestión del CM y herramientas - #AprendiendoenDigital
Gestión del CM y herramientas - #AprendiendoenDigitalGestión del CM y herramientas - #AprendiendoenDigital
Gestión del CM y herramientas - #AprendiendoenDigital
 
OpenSense
OpenSenseOpenSense
OpenSense
 
Adex Benchmark 2011 (IAB Europe)
Adex Benchmark 2011 (IAB Europe)Adex Benchmark 2011 (IAB Europe)
Adex Benchmark 2011 (IAB Europe)
 
Parkinson i Alzheimer dues malalties neurodegeneratives
Parkinson i Alzheimer dues malalties neurodegenerativesParkinson i Alzheimer dues malalties neurodegeneratives
Parkinson i Alzheimer dues malalties neurodegeneratives
 
LOS ORIGENES DE MADRID
LOS ORIGENES DE MADRIDLOS ORIGENES DE MADRID
LOS ORIGENES DE MADRID
 
CV-Library Q4 Media Pack
CV-Library Q4 Media PackCV-Library Q4 Media Pack
CV-Library Q4 Media Pack
 
Go-Enotur, una app para descubrir territorios enoturísticos - Fòrum TurisTIC
Go-Enotur, una app para descubrir territorios enoturísticos - Fòrum TurisTICGo-Enotur, una app para descubrir territorios enoturísticos - Fòrum TurisTIC
Go-Enotur, una app para descubrir territorios enoturísticos - Fòrum TurisTIC
 
emcels creative 2016
emcels creative 2016emcels creative 2016
emcels creative 2016
 
Taller outlook 2010
Taller outlook 2010Taller outlook 2010
Taller outlook 2010
 
El libro de_los_cuidadores_de_semillas_-_rosemary_morrow
El libro de_los_cuidadores_de_semillas_-_rosemary_morrowEl libro de_los_cuidadores_de_semillas_-_rosemary_morrow
El libro de_los_cuidadores_de_semillas_-_rosemary_morrow
 
El Exito 1
El Exito 1El Exito 1
El Exito 1
 
Estudio seguros de repatriación
Estudio seguros de repatriaciónEstudio seguros de repatriación
Estudio seguros de repatriación
 
Programación Actividades CURSA
Programación Actividades CURSAProgramación Actividades CURSA
Programación Actividades CURSA
 
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...
Todos los hombres del rey: Abordaje desde el Análisis Transaccional y la Nego...
 
Con los hijos
Con los hijosCon los hijos
Con los hijos
 
Lumenous trust mit media
Lumenous trust mit mediaLumenous trust mit media
Lumenous trust mit media
 
DEKRA Magazine - n. 8 del 2010
DEKRA Magazine - n. 8 del 2010DEKRA Magazine - n. 8 del 2010
DEKRA Magazine - n. 8 del 2010
 
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"
Davidshalls Höstfest 24/9 - fotoutställning "Vi är Davidshallare"
 

Ähnlich wie CeedMath & CeedGL, Let's talk 3D...

Designing an Objective-C Framework about 3D
Designing an Objective-C Framework about 3DDesigning an Objective-C Framework about 3D
Designing an Objective-C Framework about 3Drsebbe
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).pptHIMANKMISHRA2
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.pptHIMANKMISHRA2
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading LanguageJungsoo Nam
 
PSGL (PlayStation Graphics Library)
PSGL (PlayStation Graphics Library)PSGL (PlayStation Graphics Library)
PSGL (PlayStation Graphics Library)Slide_N
 
Chapter02 graphics-programming
Chapter02 graphics-programmingChapter02 graphics-programming
Chapter02 graphics-programmingMohammed Romi
 
Getting started with open gl es 2
Getting started with open gl es 2Getting started with open gl es 2
Getting started with open gl es 2matthewgalaviz
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGLGary Yeh
 
AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8Phil Eaton
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Dmitry Alexandrov
 

Ähnlich wie CeedMath & CeedGL, Let's talk 3D... (20)

Designing an Objective-C Framework about 3D
Designing an Objective-C Framework about 3DDesigning an Objective-C Framework about 3D
Designing an Objective-C Framework about 3D
 
september11.ppt
september11.pptseptember11.ppt
september11.ppt
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
OpenGL Interaction
OpenGL InteractionOpenGL Interaction
OpenGL Interaction
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).ppt
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.ppt
 
Graphics Libraries
Graphics LibrariesGraphics Libraries
Graphics Libraries
 
2D graphics
2D graphics2D graphics
2D graphics
 
Efficient Image Processing with Halide
Efficient Image Processing with HalideEfficient Image Processing with Halide
Efficient Image Processing with Halide
 
Open gl
Open glOpen gl
Open gl
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading Language
 
PSGL (PlayStation Graphics Library)
PSGL (PlayStation Graphics Library)PSGL (PlayStation Graphics Library)
PSGL (PlayStation Graphics Library)
 
Chapter02 graphics-programming
Chapter02 graphics-programmingChapter02 graphics-programming
Chapter02 graphics-programming
 
GLSL
GLSLGLSL
GLSL
 
Getting started with open gl es 2
Getting started with open gl es 2Getting started with open gl es 2
Getting started with open gl es 2
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGL
 
AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8
 
Programming with OpenGL
Programming with OpenGLProgramming with OpenGL
Programming with OpenGL
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?
 

Kürzlich hochgeladen

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Kürzlich hochgeladen (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

CeedMath & CeedGL, Let's talk 3D...

  • 1. CeedMath & CeedGL Let’s talk 3D... web: www.creaceed.com twitter: @rsebbe cocoaheads.be
  • 2. Overview • CeedMath & CeedGL are libraries for easier computer graphics development on Mac & iOS • BSD license • Available on Github • https://github.com/rsebbe/CeedMath • https://github.com/rsebbe/CeedGL
  • 3. Overview App Ceed3DGL Ceed3DRenderMan ... CeedGL Ceed3D GL CeedMath Foundation
  • 5. Why? • CG math libs are generally written in C++ • C++ is cumbersome when developing in Objective-C • Need of a pure C library • Need for both float & double data type
  • 6. Definition • Written in pure C • Macro-based templates, float & double • Simple types (float*) • Chain-able • C++ interoperable (polymorphic) • In C, use _f or _d suffixes • In C++, automatic based on param type
  • 7. Types • vector (2D, 3D, 4D) • normal (3D) / plane (4D) • matrix (2D, 4D) • quaternion (4D) • ray • box • frustum • triangle
  • 8. What? • vector: add, subtract, dot/vect product, norm, rotate, project, find angles, lerp... • matrix: add, subtract, multiply, transform, solve, invert... • quaternion: standard operations... • ray: intersections w/ plane/triangle/box... • box: union / intersection... • frustum: perspective transform... • triangle: normal computation
  • 9. Xcode Project • Universal: Mac & iOS libs • Headers note • lib: PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/CeedMath • app: HEADER_SEARCH_PATHS = "$(DSTROOT)/usr/local/include" "$ (CONFIGURATION_BUILD_DIR)/usr/local/include" • #include <CeedMath/C3Math.h>
  • 10. Demo • Demo #1: template mechanics • Demo #2: real world example (rounded rect) C3MeshGeometry+Primitives.mm • Demo #3: C++ templates for mouse picking C3StreamPrimitive+Picking.mm
  • 11. Demo
  • 14. Why? • OpenGL is a C API, most GL objects are int’s • Error prone, all function take int’s • Complex APIs, many functions • Not practical within Objective-C • Intimidating, hard to start • Higher level abstractions exist (scene graphs), but what if you only need standard OpenGL?
  • 15. Old vs. Modern OpenGL OpenGL 1.x, 2.x OpenGL ES 1.x define camera position, define object position, choose a predefined illumination model, place the lights, draw some triangles, change position, draw some other... OpenGL >= 3.1 OpenGL ES 2.x + WebGL set vertices, indices, shading program & params, then draw
  • 16. OpenGL • Modern OpenGL programming is hard. Especially the first time... • It’s a functional C API • Most “objects” are represented by handles (int) • Modern GL has removed many concepts • Light, shading, transforms • For the good, the old pipeline was limiting, and a hurdle for card makers • It is now more in sync w/ hardware capabilities
  • 17. CeedGL • CeedGL does not define new concepts • But it helps in setting up and managing your OpenGL objects • Thin Objective-C Wrapper
  • 18. CeedGL GLObject GLFramebuffer GLRenderbuffer GLBuffer GLTexture GLShader GLProgram GLValue GLDrawCommand
  • 19. Draw (1/2) • Vertex Shader • 1 execution per vertex • inputs: uniform, attribute • output: varying • Fragment Shader • 1 execution per output pixel • input: uniform, varying • output: fragment color
  • 20. Draw (2/2) GLDrawCommand GLFramebuffer GLProgram u GLValue GLRenderbuffer v GLShader a GLValue GLTexture f GLShader a GLBuffer i GLBuffer t GLTexture
  • 22. GLKit? • GLKit’s Math • NEON optimized • Currently iOS5 only, definitely Apple only • Has an overlap with CeedMath • GLKit’s GL • Forces a GL coding style • Provides easier starting point • Mostly complementary to CeedGL • Permissive, forkable open source make sense in such projects
  • 23. Happy 3D coding ! web: www.creaceed.com twitter: @rsebbe cocoaheads.be