实现专业品质创意的C++开源包:Cinder
Cinder是一个专为创意而生的C++开源包。Cinder是一款C++开源资料库,是一个跨平台的,专为程序制图、音频、视频、网络、图像处理和计算几何学提供支撑的强大工具箱。
Cinder最初是The Barbarian Group公司内部的一个提供创意编程框架的组织。最初的任务是和iTunes的视觉设计师一起为艺术家罗伯特·霍金的音乐视觉化实验项目提供支持。很快,其他Barbarian的成员加入到这个项目中来。
Cinder的首席架构师Andrew Bell:“一个新的C++程序员知道应该规避一些在编程过程中的死角,但他们不知道这些死角是什么,或者在哪里。然而,像我这样经验丰富的程序员知道程序中所有的死角。我们在编程过程中也犯过不少的错误,因此,我们希望有一个数据库来记录所有的错误,以免再犯。令我非常骄傲的是,Cinder离这个目标已经很近了。”
由于cinder是C++编写的, 有着非常好的可移植性. 最重要的是ios下呈现出的性能高于cocos2d等游戏框架.
Platform Core
-
Standalone Mac & PC applications
Platform-native windowing and event handling
-
Screensavers
Create native Mac OS X and Windows screensavers
-
Internet I/O
Load media via HTTP and FTP natively
-
Full I/O abstraction
Seamless I/O from flat files, memory, resources and networks
-
C++ Core
Internally reference-counted design prevents leaks, C++0x std::thread for multithreading
-
iOS Support
Targets the iPhone & iPad; provides a growing list of device-specific features
-
UI Events
Full keyboard, mouse (including scroll wheel), window and file drag & drop
-
MultiTouch
Consistent multiTouch APIs for Windows 7, iOS and Mac OS X 10.6
-
XML DOM parser
Built-in object oriented XML parsing API
-
Communication APIs
Serial port (enable Arduino applications), OSC and TUIO
3d Graphics
-
Core Classes
Perspective and orthographic cameras, triangle meshes, OBJ loading, geometric primitives
-
OpenGL Core
Multisampled antialiasing, dynamic switching between full-screen & windowed modes, convenience methods for rapid development
-
OpenGL Classes
Full-featured classes for textures, FBOs, GLSL, VBOs, lights, materials and display lists
-
Tile-based renderer
Render arbitrarily large images (for print & other applications)
-
GUI Parameters
GL-based GUI for powerful, convenient manipulation of parameters
Mathematics
-
Math primitives
Full-featured matrix, vector and quaternion classes
-
Utilities
Colors, random numbers, Perlin noise (up to 4D, with analytical derivatives)
-
Geometric Primitives
Poly-bezier paths, polygons, axis-aligned bounding boxes, B-splines, least-squares B-Spline curve fitting
2d Graphics
-
Robust Image I/O
PNG, JPEG, TIFF, BMP & others via platform-native libraries. Preservation of premultiplication and high dynamic range information
-
2D image processing
Professional quality image resizing, edge detection, desaturation, adaptive thresholding
-
High Dynamic Range Imaging
Full support for floating point HDR pixel processing in image I/O, OpenGL and software
-
Powerful 2D rasterizer via cairo
Full featured vector renderer exports to SVG, PDF, Postscript, EPS, CoreGraphics, GDI and a pixel-based antialiasing rasterizer
-
Fonts & Text
Font enumeration, glyph path extraction, Unicode text layout and rasterization, custom fonts via flat files or resources
Media
-
Video Capture
Webcam support via platform native libraries on Mac OS X, iOS and Windows
-
OpenCV
Object-oriented lightweight wrapper for OpenCV 2.1
-
Full-featured QuickTime
Frame extraction, native accelerated OpenGL path, audio playback, FFT analysis, asynchronous network loading
-
Audio support
Loading standard file formats, synthesis, access to raw PCM data, FFT analysis (Mac-only), microphones (Mac-only)