9. The Wonderful World of 3D
OpenGL Pixar’s PRMan
Direct X POV
Ogre 3Delight
Quesa Pixie
Aqsis
OSG
VL Lucille
DotC
OpenSG
LuxRender
Mental Ray
3DKit
10. What
• A framework for building 3D apps / games,
for Mac & iOS
• Common foundation for 3D
• Specialized to talk to various libs / tools
• Good Cocoa citizen
11. Conceptualizing (a bit)
App • Computer Graphics
Math
Ceed3DGL Ceed3DRenderMan ...
• 3D Data
Representation(s)
Ceed3D
• Object Graph(s)
•
GL CeedMath Foundation
Rendering Interfaces
14. Objects Talk Together
Value Sphere A
1.7 Radius
Cube B
Transform
Parent Transform
Cube C
Transform
Size
Style Group 1 Style Group 2
15. Coping with Diversity
• Objective-C is high level
• Sometimes, subclassing is your enemy
• And then, categories are your friend
• Renderer interface & file read/write’s as
categories of existing classes
17. Focus on OpenGL
• Modern OpenGL only (no legacy calls)
• Support for OpenGL ES
• Sophisticated Shader Definition
18. Focus on OpenGL
• Modern OpenGL only (no legacy calls)
• Support for OpenGL ES
• Sophisticated Shader Definition
Ceed3DGL • Thin Objective-C layer for
OpenGL
CeedGL
Ceed3D • Encapsulates GL objects
(texture, buffer, framebuffer, program,
shader...)
GL CeedMath • Defines Draw Commands
19. Cocoa Interactions
• KVO / KVC: easy access to object inputs/outputs
• Core Image: CIImage used as textures, CIFilter as post
process filters on rendered image
• Quartz: NSBezierPath used as geometry source, incl. glyphs
• Quartz Composer: Ceed3D should be able to render as a
QCPlugin, QC outputs usable as Ceed3D textures
• Grand Central Dispatch: Parallelism for computations
• OpenCL: Geometry filters