Commits

Show all
Author Commit Message Labels Comments Date
Cliff Biffle
KVDepthView now uses bindings to sync renderer properties, rather than manually copying values back and forth.
Cliff Biffle
Renamed KVRenderer's "useLighting" property to just "lit" to be more consistent with other properties -- and shorter.
Cliff Biffle
Enabled garbage collection. Thought I had done this earlier....
Cliff Biffle
Rearranged KVDepthView's implementation, now that the "private category" no longer constraints method ordering.
Cliff Biffle
KVDepthView now uses a class continuation for its internals, instead of an old-school private category.
Cliff Biffle
Renderers now compute false colors only when lighting is disabled. This improves lit surface quality and reduces CPU usage.
Cliff Biffle
Not that it's currently reached, but the app delegate now quits when replay is finished.
Cliff Biffle
Added /usr/local/include/** to the header search paths to support libfreenect's custom patched libusb implementation. While I was in there, fiddled with the optimization settings for Release builds.
Cliff Biffle
Ray-field projection is now in 2D, since Z never changed anyway. This saves 300KiB per renderer and shaves 5% off frame times.
Cliff Biffle
Removed the "purplish" color correction for non-textured anaglyph rendering. It was never quite right and made things uglier.
Cliff Biffle
Pixel color data can now be mapped onto the depth scene. The defaults are reasonably accurate for my Kinect, but keyboard shortcuts are available for tweaking the matrix.
Cliff Biffle
Added projective transforms for mapping one frustum onto another.
Cliff Biffle
Changed how perspective is computed. My original formula was wrong. I was merely trying to run the perspective projection formula backwards. This gave a decent approximation at middle distances, but showed warping at extremes. Today I realized I had over-simplified the problem. The new version (most of which lives in KVAbstractRenderer) is based around raycasting, given the lens's known FOV and aspect ratio. It's memoized a little too aggressively -- I should be able to square-root the footprint later, since raycasting is separable across X and Y in this case. As a side effect, the vector computations implicitly scale the scene, so I was able to remove some GL scaling …
Cliff Biffle
Loosened some over-aggressive Debug build flags.
Cliff Biffle
Reorganized the Xcode project layout.
Cliff Biffle
KFKinect now uses a class continuation for its internals, rather than an old-school private category.
Cliff Biffle
Cleanup: turned on a bunch of warnings, fixed them. Also made Debug and Release use the same (non-scary) code generation settings, though Debug is -O1 and Release is -O3.
Cliff Biffle
Fixed an oversight wherein KVAbstractRenderer implemented the wrong method signature. This had no impact on the actual program, but could make writing KVRenderers confusing.
Cliff Biffle
KVRenderers now receive color data when rendering, though they don't do anything with it yet.
Cliff Biffle
KVDepthMaps are now notified of color data received from the camera. They don't do anything with it yet.
Cliff Biffle
Renamed -[KVDepthMap update:] to -[KVDepthMap updateDepth:] in preparation for mapping RGB pixels onto the Z buffer.
Cliff Biffle
Tri-strip rendering's discontinuity detection is now scaled with Z.
Cliff Biffle
KVAveragingDepthMap's edge detection is now Z-scaled, so it's better at noticing continuous distant surfaces. (The previous version would start to become noisy at about four meters.)
Cliff Biffle
KVAveragingDepthMap notices large Z changes and resets the pixel accumulator. This means it deals much better with motion, though it's still best for static images.
Cliff Biffle
New KVDepthMap implementation: KVAveragingDepthMap, which attempts to derive more detail from static scenes by assuming and correcting for normally-distributed depth noise.
Cliff Biffle
Restored copyright headers. Curse you, Xcode, for not providing a file template customization UI like Eclipse.
Cliff Biffle
KVRenderers no longer maintain their own Z-buffers -- this is now the job of KVDepthMap. This restores the ability to change renderers during freeze-frame, and prepares the way for reimplementing foreground isolation.
Cliff Biffle
W/S rotate the camera around X.
Cliff Biffle
Adjusted the inverse perspective transform to give better dimensional accuracy in XY. I would love to cite some clever math here, but in reality I just adjusted this scale value until round things became properly round.
Cliff Biffle
KVDepthView can now do anaglyph stereo (red-cyan).
  1. Prev
  2. Next