-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathHISTORY
More file actions
285 lines (261 loc) · 12.6 KB
/
HISTORY
File metadata and controls
285 lines (261 loc) · 12.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
Kinect 3D Video Capture Project History
=======================================
Kinect-0.01:
- Initial release, needs Vrui-2.0 to build.
Kinect-1.0:
- Update with refactoring and additional vislet and raw viewer.
- First "official" release.
Kinect-1.1:
- Added color camera calibration procedure to RawKinectViewer.
Kinect-1.2:
- Added support to merge 3D images from multiple Kinect cameras in
KinectViewer.
- Added serial numbers to camera calibration files.
- Added projector transformation files.
- Added calibration program to align multiple Kinect cameras.
- Added ability to save the 3D video stream from one or multiple Kinect
cameras.
- Added (experimental) ability to play back previously recorded 3D video
streams.
Kinect-1.3:
- Bumped Vrui version requirement to Vrui-2.1-001.
- Added compression for depth and color streams.
- Added streaming server and client viewer application for real-time 3D
video transmission.
- Added new grid-based calibration method in RawKinectViewer.
- Added initial prototype of space carving algorithm to create
watertight meshes from multiple colocated Kinect 3D video streams.
- Added client and server plug-ins for Vrui's collaboration
infrastructure to stream real-time 3D video between collaborating
sites.
Kinect-1.4:
- Bumped Vrui version requirement to Vrui-2.2-001.
Kinect-2.0:
- Bumped Vrui version requirement to Vrui-2.3-001.
- Major code reorganization.
- Build system changed to new modular Vrui build system.
- Added check if Vrui was built with libusb-1 support.
Kinect-2.1:
- Bumped Vrui version requirement to Vrui-2.4-001.
- Changed RawKinectViewer to properly check for non-power-of-two texture
support, to make it work better on lame OpenGL installations.
- Changed depth viewer in RawKinectViewer to use a value-ramped rainbow
color map.
- Added support for per-pixel depth correction to account for lens
distortion in the depth camera.
- Improved modularity of Kinect package classes.
- Added ability to save reconstructed surfaces as mesh files.
- Changed collaboration plug-in to temporarily disable clipping while
rendering remote 3D video.
Kinect-2.2:
- Created Kinect::Renderer class to handle common case of rendering 3D
video from a 3D video stream source.
- Reimplemented Kinect collaboration plug-in using new Kinect::Renderer
class.
- Moved collaboration plug-in classes into separate subdirectory and
fixed makefile.
Kinect-2.3:
- Bumped Vrui version requirement to Vrui-2.5-001.
- Fixed behavior of Kinect::MultiplexedFrameSource in cluster
environments.
- Fixed installation location of KinectServer.cfg. Pointed out by David
Raila.
- Fixed cluster issues in Kinect client collaboration protocol plug-in.
- Added button to load background removal images to KinectViewer.
- Added detailed description of new intrinsic calibration procedure to
README file.
- Made small changes to build system in line with Vrui.
Kinect-2.4:
- Bumped Vrui version requirement to Vrui-2.6-001.
- Added ability to record and play back synchronized audio in
KinectViewer.
Kinect-2.5:
- Fixed installation path for make configuration file if INSTALLPREFIX
is specified. Pointed out by Braden Pellett.
- Added initial support for lossy depth stream compression when writing
3D video to files or sending over a network. The current compression
method, using an unmodified Theora codec and bit-stuffing 11-bit raw
depth values into an 8-bit YpCbCr 4:2:0 frame, does not work.
- Hopeful fix to get Kinect working on USB 3.0 bus.
- Replaced previous per-pixel depth correction method with method based
on bivariate uniform non-rational B-splines.
- Depth correction can now be used in remote collaboration systems,
for improved alignment.
Kinect-2.6:
- Added loadDefaultBackground method to Kinect::Camera.
- Added plane-based depth color mapping to RawKinectViewer.
- Added tool to define depth planes by selecting depth image points to
RawKinectViewer.
- Added optional make targets installudevrule and uninstalludevrule, to
install/remove a udev rule file opening the Kinect's USB devices for
non-root users. This is currently a system-wide change, allowing any
logged in users, local or remote, to talk to (and capture video from)
all connected Kinect devices. This might be considered a security
risk; ideally, only the console-owning user should get access.
- Added type definitions for depth and color pixels to
Kinect::FrameSource.
- Replaced hard-coded pixel types with typedefs throughout package.
- Changed to use explicitly sized types for I/O throughout package.
Kinect-2.7:
- Fixed pointer arithmetic regression bug in Kinect::ColorFrameReader.
- Added -navigational flag to KinectViewer vislet to render 3D video in
navigational space.
- Bumped Vrui version requirement to 3.0-001.
- Replaced all Geometry::cross with operator^.
- Added an optional time base offset to
Kinect::Renderer::resetFrameTimer.
- Added stream saving and synchronized playback from stream files to
KinectViewer vislet.
Kinect-2.8:
- API change in Kinect::Projector:
- processDepthFrame method no longer accesses projector's mesh triple
buffer and returns newest mesh; requires new MeshBuffer argument.
- Added new setMesh method to place newly-created meshes into the
projector's mesh triple buffer.
- Moved most processing to background threads in KinectViewer and
KinectPlayer vislets.
- Created new shader-based projector to offload depth image processing
to graphics card; significantly reduces memory bandwidth and increases
frame rate on modern GPUs, but can cause slowdown on older GPUs. Local
tests required to select optimal rendering path.
- Shader-based projector selected via KINECT_USE_SHADERS makefile
variable.
- Bumped Vrui version requirement to 3.1-001.
- Fixed race condition in Kinect::Projector and
Kinect::ShaderProjector's GL state management.
- Improved udev (un)install rules in makefile to call sudo themselves.
- Added code in Kinect::Camera to work with newer Kinect-for-Xbox models
(up to 1473 tested) and Kinect-for-Windows models (up to 1517 tested).
- Added getCalib option to KinectUtil to download factory calibration
data from a Kinect camera and create an intrinsic parameter file
compatible with the Kinect package directly in the configuration file
directory.
- Factory calibration data appears to be broken (shift in color
texture mapping) on Kinect-for-Xbox 1473 and Kinect-for-Windows.
Kinect-2.9:
- Bumped Vrui version requirement to 3.2-001.
- Bumped Collaboration infrastructure version requirement to 2.7.
- Fixed dependencies of install: target in makefile.
- Added 3D measurement tool for raw depth stream in RawKinectViewer.
- Moved SphereExtractorTool outside of KinectViewer class.
- Added recovery from number format errors to AlignPoints.
- Replaced private version of Levenberg-Marquardt minimizer with one
from Geometry library.
- Added non-linear fixed-radius sphere fitting to SphereExtractor.
- API change: Replaced setParameters method in Kinect::ShaderProjector
with setIntrinsicParameters and setExtrinsicParameters methods.
- Added option in KinectViewer to align all 3D projectors in a single
column for easier extrinsic calibration.
- Added visualization of collected calibration tie points to
KinectViewer's SphereExtractorTool.
- Added full depth image to world space projection matrix to
Kinect::Projector to simplify matrix setup.
- Fixed behavior of "Save Background..." button in KinectViewer's
streamer dialogs. Now defaults to proper background directory and
background file name.
- Moved compiler-flag #defines from makefile to
Kinect/Internal/Config.h.
Kinect-3.0:
- Bumped Vrui version requirement to 4.0-001.
- Initial support for Kinect v2 (Kinect-for-Xbox-One).
Kinect-3.1:
- Bumped Vrui version requirement to 4.1-001.
- Added support for Intel RealSense cameras through the librealsense
library.
- Created new namespace-global functions openDirectFrameSource to open
3D cameras without knowing their exact types.
Kinect-3.2:
- Added rendering mode to illuminate surfaces instead of mapping images
onto them.
- Bumped Vrui version requirement to 4.2-001.
- Renamed Kinect udev rules file to 69-Kinect.rules to guarantee it is
loaded before the rule file processing uaccess rules in level 70.
- Added rules for Kinect v2 to udev rules file.
- Changed makefile targets to install/remove device permission rules
to bring package in line with Vrui-4.2.
- Rule names changed to installudevrules and uninstalludevrules.
- Removed sudo commands from makefile; must now be invoked as
"sudo make installudevrules" / "sudo make uninstalludevrules".
- Lotsa other things I forgot to write down while working on the
SARndbox package with a gun to my head. :)
Kinect-3.3:
- Fixed Kinect v2 USB transfer problem by ignoring return value from
USB::Device::getMaxIsoTransferSize and always assuming 33792 bytes in
Kinect::CameraV2.
- Changed frame correctness check in Kinect::KinectV2DepthStreamReader.
- Fixed bad bug in Kinect::Projector2: was not taking lens distortion
correction into account when looking up mesh vertices' depth values.
- Fixed KinectServer to work with other cameras than first-generation
Kinect.
- Added extrinsic calibration utility using a tracked controller and a
target disk.
- Added missing dependency on libjpeg (used by Kinect v2 driver) to
Kinect library.
- Made building of Kinect v2 driver dependent on presence of libjpeg
library.
- Provided dummy implementations of optional Kinect V2 and Intel
RealSense camera types to simplify application development.
- Bumped Vrui version requirement to 4.3-001.
- Switched RawKinectViewer, KinectViewer, and KinectViewer vislet to
connect to local 3D cameras of any type by their index in a shared
list. Command line arguments -v2, -c2, and -rs are no longer
recognized.
Kinect-3.4:
- Added projection parameters to Kinect::LensDistortion to simplify
client code dealing with depth image points in pixel space.
- Added distortPixel() and undistortPixel() methods.
- Removed evil calibration hack from Kinect::CameraV2.
- Set lens distortion projection parameters in
Kinect::CameraV2::getIntrinsicParameters.
- Set lens distortion projection parameters in
Kinect::FileFrameSource::initialize() and
Kinect::MultiplexedFrameSource::Stream::Stream.
- Cleaned up depth image handling and lens distortion correction in
RawKinectViewer.
- Cleaned up lens distortion handling in Kinect::DiskExtractor.
- Cleaned up lens distortion handling in Kinect::Projector,
Kinect::Projector2, and Kinect::ShaderProjector.
- Added experimental full calibration routine to ExtrinsicCalibrator
that no longer requires measuring the disk center position in
controller space.
- Added RANSAC optimization to make calibration robust against
outliers. Post-calibration clean-up via AlignPoints no longer
required.
- Added inverse calibration routine for cameras rigidly attached to
a controller or tracker, for free-camera mixed reality recording.
- Added normal vector flipping to Kinect::DiskExtractor so that disks
always point towards the camera.
- Added proper illumination support through dynamically-generated
shaders to Kinect::Projector2.
- Added illumination button to streamer dialog in KinectViewer
application when using Kinect::Projector2 projector class.
- Tweaked USB transfer pool sizes in Kinect::CameraV2 for better buffer
overflow handling.
- Added rough latency mitigation to Kinect v2's low-level streaming
handlers.
- Removed hacky latency mitigation from KinectViewer vislet.
- Added texture mapping and illumination toggles to KinectViewer vislet
and adapted file stream initialization to new Kinect::LensDistortion
interface.
- Improved time stamp handling in Kinect v2 camera driver and
KinectViewer vislet. Playing back recorded streams now has close to
zero relative latency.
- Added ability to track one controller and use button events from
another to ExtrinsicCalibrator, to calibrate a button-less Vive
tracker.
- Added ability to play back files recorded from a tracked 3D camera to
KinectViewer vislet.
- Fixed location of RealSense library dso in BuildRoot/Packages.Kinect
to use .../$(LIBEXT) instead of .../lib, which should fix run-time
search paths again.
Kinect-3.5:
- Bumped Vrui version requirement to 4.5-001.
- Added command line checking to KinectUtil utility and RawKinectViewer
and KinectViewer applications.
- Fixed error messages when camera indices are out-of-bounds.
Kinect-3.6:
- Added check for GL_EXT_gpu_shader4 OpenGL extension in makefile, as it
is required by Kinect::Projector2 but not supported by most IGPs.
Kinect-3.7:
- Bumped Vrui version requirement to 4.6-005.
- Fixed exception catches from by-value to by-const-reference.