Commits

Author Commit Message Labels Comments Date
Cliff Biffle
Switched from KFKinect to KVKinectHardware and KVO-based frame distribution.
Cliff Biffle
Fixed an oversight in the new KVKinectHardware impl: it wasn't setting its own running flag, so it'd always exit after a couple frames.
Cliff Biffle
Changed the light falloff so the room doesn't look so dark.
Cliff Biffle
Added a new Kinect abstraction that uses KVO to distribute new frames. Not sure if this is a great idea yet, but giving it a shot!
Cliff Biffle
Switched the point-cloud renderer to use vertex arrays. Interestingly, on Mac OS X 10.6.3, I see no significant in the profiles, and performance is unchanged.
Cliff Biffle
Improved documentation in KVRaySpaceFieldModel's solid triangle renderer.
Cliff Biffle
Removed a stray tweaking constant from KVDepthView.
Cliff Biffle
The RayFieldSpaceModel can now do normal calculations, so we have lighting again. The factoring improvements have let me move normal calculation to the Kinect thread, so that both threads stay within their 33ms deadlines.
Cliff Biffle
Fixed copyright headers on KVRayFieldSpaceModel.[hm].
Cliff Biffle
Completely refactored the model/renderer relationship in preparation for voxel rendering and SLAM stuff. There are no longer DepthMaps or Renderers, because the rendering method needs intimate awareness of the depth model. Instead, a new KVSpaceModel type combines both.
Cliff Biffle
Anaglyph rendering now assumes that the eyes converge about 10m ahead of the viewer. This seems to make things a bit more comfortable.
Cliff Biffle
Pinch-zoom gestures now dolly the camera in and out of the scene.
Cliff Biffle
At the cost of some memory, made the triangle strip renderer roughly twice as fast, improved accuracy of normal calculations, and fixed a bug in texture application that reduced Y accuracy by 50%. So now it's faster and much better.
Cliff Biffle
Vector math functions now pass/return structs by value, not by address. This simplifies the code, and since they're inlined anyway it seems to have no performance impact.
Cliff Biffle
Removed an errant log call I accidentally included last night.
Cliff Biffle
Cleaned up KinectViewerAppDelegate a bit.
Cliff Biffle
At some cost in CPU, the KVMultiDepthMap now tracks colors for occluded surfaces, so texture mapping works again.
Cliff Biffle
KVMultiDepthMap can separate foreground from background, using a slightly cleverer algorithm than I used before. Originally I had hoped to scale this beyond two occlusion planes, and it almost works at 8 planes...but (1) rendering is bad because the renderer sees only one plane at a time, even if they intersect, and (2) it's slow.
Cliff Biffle
Separated the ray projection transform into X and Y components. This saves 297KiB of hot memory in the depth map, which should now fit quite comfortably in cache.
Cliff Biffle
Can now overlay a wireframe (CmdF).
Cliff Biffle
Added double-buffering for both depth and color data. It turns out that depth and color are mutually asynchronous and arrive at slightly different frequencies, which complicates this code a bit (must manage two separate buffer states).
Cliff Biffle
Renamed KVSinglePlaneDepthMap -> KVDoubleBufferDepthMap. Note that this is currently a lie: I wanted to commit the rename before I rearrange its innards.
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.
  1. Prev
  2. Next