Package camera3D.generators
Class BarrelDistortionGenerator
java.lang.Object
camera3D.generators.Generator
camera3D.generators.StereoscopicGenerator
camera3D.generators.BarrelDistortionGenerator
- All Implemented Interfaces:
processing.core.PConstants
Optimized implementation of the barrel distortion algorithm.
Builds a lookup table to map pixels in sketch to the distorted view that will
be countered by the lenses.
Defaults to settings for an Oculus Rift's lenses.
Much thanks to this guy for explaining barrel distortion:
https://www.youtube.com/watch?v=B7qrgrrHry0
And to this guy for pointing out that the radius (r) must be normalized:
http://stackoverflow.com/questions/28130618/what-ist-the-correct-oculus-rift-
barrel-distortion-radius-function
-
Nested Class Summary
Nested classes/interfaces inherited from class camera3D.generators.Generator
Generator.PixelCopyTask
-
Field Summary
Fields inherited from interface processing.core.PConstants
ADD, ALPHA, ALT, AMBIENT, ARC, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BEZIER_VERTEX, BLEND, BLUR, BOTTOM, BOX, BREAK, BURN, CENTER, CHATTER, CHORD, CLAMP, CLOSE, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CURVE_VERTEX, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIAMETER, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_ASYNC_SAVEFRAME, DISABLE_BUFFER_READING, DISABLE_DEPTH_MASK, DISABLE_DEPTH_SORT, DISABLE_DEPTH_TEST, DISABLE_KEY_REPEAT, DISABLE_NATIVE_FONTS, DISABLE_OPENGL_ERRORS, DISABLE_OPTIMIZED_STROKE, DISABLE_STROKE_PERSPECTIVE, DISABLE_STROKE_PURE, DISABLE_TEXTURE_MIPMAPS, DODGE, DOWN, DXF, ELLIPSE, ENABLE_ASYNC_SAVEFRAME, ENABLE_BUFFER_READING, ENABLE_DEPTH_MASK, ENABLE_DEPTH_SORT, ENABLE_DEPTH_TEST, ENABLE_KEY_REPEAT, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_ERRORS, ENABLE_OPTIMIZED_STROKE, ENABLE_STROKE_PERSPECTIVE, ENABLE_STROKE_PURE, ENABLE_TEXTURE_MIPMAPS, ENTER, EPSILON, ERODE, ESC, EXCLUSION, FX2D, GIF, GRAY, GROUP, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LANDSCAPE, LEFT, LIGHTEST, LINE, LINE_LOOP, LINE_STRIP, LINES, LINUX, MACOS, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MODELVIEW, MOVE, MULTIPLY, NORMAL, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PATH, PDF, PERSPECTIVE, PI, PIE, platformNames, POINT, POINTS, POLYGON, PORTRAIT, POSTERIZE, PROBLEM, PROJECT, PROJECTION, QUAD, QUAD_BEZIER_VERTEX, QUAD_STRIP, QUADRATIC_VERTEX, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RECT, REPEAT, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPAN, SPHERE, SPOT, SQUARE, SUBTRACT, SVG, TAB, TARGA, TAU, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, VERTEX, WAIT, WHITESPACE, WINDOWS, X, Y, Z
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
generateCompositeFrame
(int[] pixelDest, int[][] pixelStorage) Combine the component frames into one composite frame.setBarrelDistortionCoefficients
(float pow2, float pow4) setDivergence
(float divergence) setZoom
(float zoom) swapLeftRight
(boolean swap) Methods inherited from class camera3D.generators.StereoscopicGenerator
cleanup, completedDraw, getComponentCount, getComponentFrameName, prepareForDraw, recalculateCameraSettings, setAdjustTargetFactor
Methods inherited from class camera3D.generators.Generator
clip, clip, copyFrameNumber, executeTask, generateCompositeFrameAndSaveComponents, initExecutor, insertFrame, notifyCameraConfigChange
-
Constructor Details
-
BarrelDistortionGenerator
public BarrelDistortionGenerator(int width, int height)
-
-
Method Details
-
setZoom
-
setBarrelDistortionCoefficients
-
setDivergence
- Overrides:
setDivergence
in classStereoscopicGenerator
-
swapLeftRight
- Overrides:
swapLeftRight
in classStereoscopicGenerator
-
useSymmetricFrustum
- Overrides:
useSymmetricFrustum
in classStereoscopicGenerator
-
generateCompositeFrame
public void generateCompositeFrame(int[] pixelDest, int[][] pixelStorage) Description copied from class:Generator
Combine the component frames into one composite frame.- Specified by:
generateCompositeFrame
in classGenerator
-