Package camera3D.generators
Class DuboisAnaglyphGenerator32bitLUT
java.lang.Object
camera3D.generators.Generator
camera3D.generators.StereoscopicGenerator
camera3D.generators.AnaglyphGenerator
camera3D.generators.DuboisAnaglyphGenerator32bitLUT
- All Implemented Interfaces:
processing.core.PConstants
Optimized implementation of the Dubois Anaglyph algorithm.
More information can be found here:
http://www.site.uottawa.ca/~edubois/anaglyph/
particularly:
http://www.site.uottawa.ca/~edubois/anaglyph/LeastSquaresHowToPhotoshop.pdf
http://www.site.uottawa.ca/~edubois/icassp01/anaglyphdubois.pdf
This algorithm is actually similar to what's being done in the
MatrixAnaglyphGeneratorLUT except the calculations are done in linear RGB
space.
This works by precomputing a set of lookup tables for every possible color.
There is a small up-front cost but after that the performance speedup of the
generateCompositeFrame method is about 300x.
The lookup tables will use 128 MB of RAM. The lower memory and speed comes at
the cost of lower calculation accuracy for desaturated colors.
Without these optimizations it would not be possible to use this algorithm in
real time.
-
Nested Class Summary
Nested classes/interfaces inherited from class camera3D.generators.Generator
Generator.PixelCopyTask
-
Field Summary
Fields inherited from class camera3D.generators.AnaglyphGenerator
LEFT_DUBOIS_AMBERBLUE, LEFT_DUBOIS_MAGENTAGREEN, LEFT_DUBOIS_REDCYAN, LEFT_GRAY_ANAGLYPH, LEFT_HALF_COLOR_ANAGLYPH, LEFT_TRUE_ANAGLYPH, RIGHT_DUBOIS_AMBERBLUE, RIGHT_DUBOIS_MAGENTAGREEN, RIGHT_DUBOIS_REDCYAN, RIGHT_GRAY_ANAGLYPH, RIGHT_HALF_COLOR_ANAGLYPH, RIGHT_TRUE_ANAGLYPH
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 TypeMethodDescriptionstatic StereoscopicGenerator
static StereoscopicGenerator
static StereoscopicGenerator
void
generateCompositeFrame
(int[] pixelDest, int[][] pixelStorage) Combine the component frames into one composite frame.Methods inherited from class camera3D.generators.AnaglyphGenerator
applyGammaCorrection, applyGammaCorrectionStandardRGB, preComputeApplyGammaCorrectionStandardrgbLUT, preComputeDuboisLUT, preComputeMatrixLUT, preComputeRemoveGammaCorrectionStandardrgbLUT, removeGammaCorrection, removeGammaCorrectionStandardRGB
Methods inherited from class camera3D.generators.StereoscopicGenerator
cleanup, completedDraw, getComponentCount, getComponentFrameName, prepareForDraw, recalculateCameraSettings, setAdjustTargetFactor, setDivergence, swapLeftRight, useSymmetricFrustum
Methods inherited from class camera3D.generators.Generator
clip, clip, copyFrameNumber, executeTask, generateCompositeFrameAndSaveComponents, initExecutor, insertFrame, notifyCameraConfigChange
-
Constructor Details
-
DuboisAnaglyphGenerator32bitLUT
-
-
Method Details
-
createRedCyanGenerator
-
createMagentaGreenGenerator
-
createAmberBlueGenerator
-
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
-