Page: 1
Please Log In or Register

Preparing an OpenFrameworks Application for the Mac App Store

I had to figure out a few things to get an Openframeworks 008 application ready for submission to the Mac App Store. Below are some of my findings.

Remove Quicktime and QTKit

Apple no longer supports the Quicktime API. So remove all of the ofQuicktime and ofQTKit files from the source files in the video folder of the OpenFrameworks XCode project. Remove the QTKit and Quicktime frameworks from the Openframeworks project and your Xcode project inside the frameworks folder. Make sure the libraries are not present in the Build Phases > Link Binary with Libraries.
No Mo QT!
If you need a video player, kronick’s addon that uses AVFoundation, is a good solution. I haven’t tried to find a solution for grabbing video using AVFoundation, so do your research if you plan to use it in your application.

Support Retina displays

As of this writing, OF does not support retina displays on osx. But Theo offered up a fix for GLFW to support Hidpi. So make sure to use GLFW for the windowing. Don’t forget to set ‘High Resolution Capable’ to YES.

Info.plist High Res Capable Settings

Add some preprocessor macros for convenience

I think it’s useful to know if you are in release mode or debug mode, so I add some preprocessor macros in the build settings of the project. I usually use OF_DEBUG and OF_RELEASE respectively. This usually comes in hand at some point during the dev process. Like only showing debug GUIs #ifdef OF_DEBUG. I’ll go over some more uses a little later.

Preprocessor macros in xcode
(only focus on OF_DEBUG + set OF_RELEASE for Release)

MORE INFO


MipMap Textures with Anisotropy in OpenFrameworks 008

If you have worked with meshes and textures in OpenGL, than you probably have experienced aliasing on textures bound to meshes. Unfortunately OpenFrameworks 008 only supports mip mapping of textures that have compression on them. I usually work with straight jpgs or pngs for my textures, so that is not an option. Recently some friends over at Incredible Machines brought up the issue, so I thought it might be useful to post. Both for other people and myself.

Below is an example of a texture without mip mapping. Notice the jaggedness on the checkered image. It is more apparent when there is a sharp angle from the vertex to the camera.
Regular ofTexture

Now here is the mip mapped version of the texture. Notice how it appears more anti-aliased. (Click to enlarge.)
Mip Mapped ofTexture

Anisotropy limits how much “aliasing” is applied between the mip maps. A value of 1 will do nothing, as the value increases so does the appearance of anti-aliasing.
I wrote a convenience function that is based on ofTexture, but includes the mip map and anisotropy functions.

MORE INFO


Change Main Menu in OSX and OpenFrameworks

Main Menu

Attached is a project using Openframeworks 008 that allows you to change the menu items in the application for OSX using GLFW.

MainMenuExample

 

 

 


Watermelon Watercolor Phone Case

Phone Case Outside

iPhone5_Template_1200x1200

Phone Wallpaper 

iPhone5_Template_screen

 

Download Wallpaper

iPhone 5 (  640 x 1136 )

iPhone 4 ( 640 x 960 )

Samsung Galaxy 4 ( 1080 x 1920 )

Samsun Galaxy III (720 x 1280 )

iPad 2 (768 x 1024 )

iPad / 3 / 4 / Air (1536 x 1024 )


Kinected Portraits – Process

This post describes the process involved for the Kinected Portrait Series.

A custom OpenFrameworks application captured depth information using the Microsoft Kinect. The depth information was calibrated to a color image that was also captured by the kinect. Below is the raw color and depth information.

_kinectImage

Kinect color image

kinectDepth

Kinect Depth Data

 

 

 

 

 

 

 

 

 

A series of meshes were generated with incremental triangle size  from 1 – 19. Below demonstrates the difference in spacing between the different generated meshes, 1 being the tightest and 19 being the loosest.

mesh_spacing

Various mesh sizes were chosen that allow smooth transitions between tighter meshes and looser meshes. Level 2, 4 and 8 were used to create a composite.

meshes 2 - 4 - 8

Mesh sizes 2, 4 and 8 from left to right.

The meshes were placed onto the captured color image in photoshop. The tighter meshes denoted the darker areas and the looser ones were utilized for the lighter areas, creating a ‘mesh hatching’ style. Originally the OpenFrameworks application algorithmically blended the meshes based on the lightness of the image, but the process by hand provided a much more pleasing result.

composite_w_mesh

Color Image with Mesh Composite Overlay in Photoshop

Kinected Portrait - Ryan - Mesh Composite Print

Mesh composite print out on tracing paper

MORE INFO


Older Posts