Mastering openFrameworks: Creative Coding Demystified
eBook - ePub

Mastering openFrameworks: Creative Coding Demystified

  1. 364 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Mastering openFrameworks: Creative Coding Demystified

About this book

In Detail

openFrameworks is a powerful programming toolkit and library designed to assist the creative process through simplicity and intuitiveness. It's a very handy software library written in C++ to reduce the software development process, helping you to kick-start creative coding. With the help of C++ and shaders support, openFrameworks allows for the processing of all kinds of media information with your custom-developed algorithms at the lowest possible level, with the fastest speed.

"Mastering openFrameworks: Creative Coding Demystified" will introduce you to a world of creative coding projects, including interactive installations, audio-visual, and sound art projects. You will learn how to make your own projects using openFrameworks. This book focuses on low-level data processing, which allows you to create really unique and cutting-edge installations and projects.

"Mastering openFrameworks: Creative Coding Demystified" provides a complete introduction to openFrameworks, including installation, core capabilities, and addons. Advanced topics like shaders, computer vision, and depth cameras are also covered.

We start off by discussing the basic topics such as image and video loading, rendering and processing, playing sound samples, and synthesizing new sounds. We then move on to cover 3D graphics, computer vision, and depth cameras. You will also learn a number of advanced topics such as video mapping, interactive floors and walls, video morphing, networking, and using geometry shaders.

You will learn everything you need to know in order to create your own projects; create projects of all levels, ranging from simple creative-code experiments, to big interactive systems consisting of a number of computers, depth cameras, and projectors.

Approach

Stuffed with practical examples, this book gives clear and effective instructions to build your own fun, stunning, and highly-interactive openFrameworks applications. Each chapter is focused on one topic and has a new theme to it.

Who this book is for

If you are a visual artist, designer, or programmer interested in creative coding with openFrameworks then this book is for you. Basic knowledge of object-oriented programming, such as C++, Java, Python, and ActionScript 3, would be helpful.

Trusted by 375,005 students

Access to over 1 million titles for a fair monthly price.

Study more efficiently using our study tools.

Mastering openFrameworks: Creative Coding Demystified


Table of Contents

Mastering openFrameworks: Creative Coding Demystified
Credits
Foreword
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color graphics PDF
Errata
Piracy
Questions
1. openFrameworks Basics
About openFrameworks
Use cases
Installing openFrameworks and running your first example
Installing on Windows
Microsoft Visual Studio
Code::Blocks (Windows)
Installing on Mac OS with Xcode
Installing on Linux with Code::Blocks
openFrameworks' folders
The examples folder
The apps folder
The addons folder
File structure of a project
Code structure of a project
main.cpp
testApp.h
testApp.cpp
setup()
update()
draw()
Other functions
Creating a new project
Creating a project from an existing example
Creating a project using Project Generator
Creating your first project – the Pendulum example
Running the book's examples
Basic utility functions
Summary
2. Drawing in 2D
Drawing basics
The background color of the screen
Pulsating background example
Geometric primitives
The simplest example of a flower
Controlling the drawing of primitives
Using ofPoint
Operations with points
Using control points example
Coordinate system transformations
Flower with petals example
Colors
Operations with colors
Color modifications example
Drawing with an uncleared background
Using FBO for offscreen drawings
Spirals example
Playing with numerical instability
Screen grabbing
Additional topics
Summary
3. Building a Simple Particle System
The basics of particle systems
Interaction types
Computing particles' physics
Rendering particles
Creating a particle system – summary
A single particle
Control parameters
Defining the particle functions
Implementing a particle in the project
An emitter
The attraction, repulsion, and spinning forces
Graphical user interface
Additional topics
Summary
4. Images and Textures
Raster and vector images
Loading and drawing an image
Rotating images
Color modulation
Transparency
Creating and modifying images
Creating images
Modifying images
Working with the color of a single pixel
A simple geometrical distortion example
The functions for manipulating the image as a whole
Using ofTexture for memory optimization
Image warping and video mapping
Using images for internal calculations
An image as a mask
An image as a palette
Summary
5. Working with Videos
Video basics
Playing a video file
Controlling the video playback
Processing a single video frame
The vertical lines image example
The replacing colors example
Processing multiple frames
Radial slit-scan example
Horizontal slit-scan
Discussing color interpolation
Processing a live video from the camera
The video synthesizer example
Using image sequence
Using image sequence example
Summary
6. Working with Sounds
Sound basics
Playing sound samples
The bouncing ball example
The singing voices example
Generating sounds
The PWM synthesis example
Image-to-sound transcoder example
Using a microphone
The loop sampler example
Saving a recorded sample to the file
Getting spectral data from sound
Dancing cloud example
Summary
7. Drawing in 3D
3D basics
Representation of 3D objects
3D scene rendering
Simple 3D drawing
The triangles cloud example
Using ofMesh
Enabling lighting and setting normals
Computing normals using the setNormals() function
Drawing sharp edges
Drawing line segments and points
Drawing line segments
Drawing points
Coloring the vertices
Texturing
Working with vertices
The oscillating plane example
The twisting knot example
Additional topics
Summary
8. Using Shaders
Basics of shaders
Types of shaders
When to use shaders
Structure of a shader's code
A simple fragment shader example
Creating the fragment shader
The vertex shader
Embedding shaders in our project
Debugging shaders
Creating video effects with fragment shaders
Passing a float parameter to a shader
A simple geometrical distortion example
Passing the float array to the shader
Using Perlin noise in shaders
A liquify distortion example
Processing several images
A masking example
An audio-reactive project example
Deforming objects with a vertex shader
Vertex shader
Fragment shader
Using vertex shader in our project
Using a geometry shader
The furry carpet example
Additional topics
Summary
9. Computer Vision with OpenCV
Understanding computer vision and OpenCV
Using ofxOpenCv
Working with ofxCv images
Image initializing
Algebraic operations with images
Drawing functions
Access to pixels
Working with color planes and color spaces conversion
Motion detection from movies
Discussing the algorithm's parameters
Motion detection from live video
Image filtering
The image filtering example
Geometrical transformations of images
Perspective distortion removing example
Searching for objects in an image
Using the ofxCvContourFinder class for finding contours
An example for searching bright objects in video
Using OpenCV functions
Optical flow
Video morphing example
Using optical flow for morphing
Applying morphing to another image
Summary
10. Using Depth Cameras
Depth camera basics
Active infrared stereo cameras
Installing the ofxOpenNI addon
ofxOpenNI examples
Working with examples of depth images
Hand-tracking examples
User tracking examples
Creating in...

Table of contents

  1. Mastering openFrameworks: Creative Coding Demystified

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn how to download books offline
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 990+ topics, we’ve got you covered! Learn about our mission
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more about Read Aloud
Yes! You can use the Perlego app on both iOS and Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app
Yes, you can access Mastering openFrameworks: Creative Coding Demystified by Denis Perevalov in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Vision & Pattern Recognition. We have over one million books available in our catalogue for you to explore.