Commits

Author Commit Message Labels Comments Date
Cliff Biffle
Moved lighting into the fragment shaders...not that it makes a whole lot of difference at the moment, since I don't believe normals are actually being interpolated.
Branches
shaders
Cliff Biffle
Un-projection is now a single matrix multiply on the GPU. Having re-learned matrix math, which I hadn't used since high school, I was able to rearrange all the linearization and projection calculations so that I could describe the process as a single multiply in homogeneous space. Unfortunately, this disables normal calculation for now -- and thus lighting. Will fix all this shortly.
Branches
shaders
Cliff Biffle
The vertex and fragment shaders didn't really need to be recorded in instance variables.
Branches
shaders
Cliff Biffle
Rearranged the shader copy build stage.
Branches
shaders
Cliff Biffle
Removed triangulated and mesh rendering, in the interest of merely being a Kinect *viewer* and not inferring data where there isn't any.
Branches
shaders
Cliff Biffle
Removed the old KFKinect class, which hadn't been used in some time.
Branches
shaders
Cliff Biffle
Removed the KVSpaceModel protocol.
Branches
shaders
Cliff Biffle
Renamed KVRayFieldSpaceModel -> KVRenderer, now that it's looking like I won't have multiple implementations any time soon.
Branches
shaders
Cliff Biffle
Split the vertex shader up into multiple files.
Branches
shaders
Cliff Biffle
Data holes are now eliminated by the shaders: the vertex shader marks them with transparent alpha, and the fragment shader discards them. This mostly affects the point cloud renderer.
Branches
shaders
Cliff Biffle
Added a rudimentary fragment shader.
Branches
shaders
Cliff Biffle
Factored shader loading code into a separate method, for when there are multiple shaders.
Branches
shaders
Cliff Biffle
Split the vertex shader out into a separate file and cleaned it up a little.
Branches
shaders
Cliff Biffle
Moved lighting into the vertex shader. As of my previous commit lighting was simply broken -- now it is closer to functional, though the normals are not transformed with the vertices and thus tend to point toward the camera more than they should.
Branches
shaders
Cliff Biffle
Rearranged XCode's file/group layout.
Cliff Biffle
Factored depth playback and recording into separate objects, and simplified the app delegate.
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
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
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
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
Can now overlay a wireframe (CmdF).
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
Enabled garbage collection. Thought I had done this earlier....
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
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
Loosened some over-aggressive Debug build flags.
Cliff Biffle
Reorganized the Xcode project layout.
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
New KVDepthMap implementation: KVAveragingDepthMap, which attempts to derive more detail from static scenes by assuming and correcting for normally-distributed depth noise.
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.
  1. Prev
  2. Next