Commits

Show all
Author Commit Message Labels Comments Date
Cliff Biffle
Adjusted the maximum Z-delta for triangulation. It was making the foreground a little stringy.
Cliff Biffle
Changed how anaglyph rendering is handled so that the near plane is the monitor.
Cliff Biffle
Rearranged XCode's file/group layout.
Cliff Biffle
KVDepthRecorder now writes frames asynchronously using GCD. There are no safeguards against buffering all of RAM if the disk is slow, but previously we'd drop frames and that was lame.
Cliff Biffle
Factored recording out of KVDepthView into the app delegate, using a KVDepthRecorder.
Cliff Biffle
KVDepthRecorder is now thread-safe and forces the file to exist before writing.
Cliff Biffle
KVKinectHardware was setting the wrong length on the data it broadcast. Nobody noticed because nobody checked the data, but the recorder was getting hosed.
Cliff Biffle
Factored depth playback and recording into separate objects, and simplified the app delegate.
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.
  1. Prev
  2. Next