Author |
Message |
Michal Husak
Rating: N/A Votes: 0 (Vote!) | Posted on Wednesday, February 07, 2001 - 7:59 pm: | |
I am looking for somebody who works on VFX3D-Cyberpuck software development for information / code / experineces exchange. I have up to now written a sample OpenGl aplication demonstrating the basic of headracking orientation in the 3D enviroment (based on NeHe tutorial 10) ... I have rewriten InterSense InterTrack demo for VFX3D support as well (Direct3D code) ... I am now working on stereoscopy support via OpenGl and stencil buffer operations. Does anybody have e.g. experiences with some optimal mathematic for the headtracking variables oscilation smoothing (probably based on motion prediction) ? |
Brightland
Rating: N/A Votes: 0 (Vote!) | Posted on Saturday, February 10, 2001 - 12:16 am: | |
Hi, Do some research on filters: a simple FIR or IIR filter will smooth things out quite nicely, with the expense of a little lag. With a high enough sample rate (19,200bps or higher), you can do decent oversampling and still have reasonable lag time. For prediction you'll want to look into Kalman filters, which are not quite as trivially easy to implement as a FIR or IIR filter. Here's a paper to get you started: http://www.cs.unc.edu/~welch/kalman/kalman_filter/kalman.html. Do a search on www.google.com for Kalman Filter. Good luck, John Schultz Brightland www.brightland.com |
Michal Husak
Rating: N/A Votes: 0 (Vote!) | Posted on Sunday, February 11, 2001 - 9:19 pm: | |
The Kalman Filter is a good idea ... The article you suggest looks interesting, I have unfortunately forget to much form may math knowladge, that I am jsut now not able to put together a code based only on this article ... I hope I will find some code using practical implementation ... |
TJ
Rating: N/A Votes: 0 (Vote!) | Posted on Monday, February 12, 2001 - 12:45 am: | |
Michal, Are you saying that the output from the VFX3D's tracker is jittery? I thought the VFX3D was supposed to have a much improved tracker. The VFX1's tracker had jitter bad enough to seriously affect its performance. I tried different software approaches, like averaging, but most introduced too much lag. My best, final solution, was simply to allow the values (any values - yaw, pitch, or roll) to bounce around within a range, keeping my "return result" reading centered within that range. I would only slide the range (hence the result) up or down when a certain number of actual readings fell consecutively above or below the range. Thus you can discern real head movement from simple jitter. The width of the range can be adjusted through experimentation. This method causes almost no time-performance hit, but it does reduce the fine-movement accuracy of the tracker a little... but that's better than the jitter, which gives you no choice. You probably won't have high enough sample rates on typical trackers to do very complex filtering. You could beat it to death with mathematical analysis, but the best answer is oftentimes the simplest creative approach. Feel free to e.mail me if you want. Tadd |
Michal Husak
Rating: N/A Votes: 0 (Vote!) | Posted on Monday, February 12, 2001 - 12:23 pm: | |
The output from VFX3D is NOT JITERING so much ! To my suprise it is O.K. for the standar usage ... I have found that even profesional products (InterTrack) use so coled PPF (Perceptual Post Filtering) and Kalman filter just for improving the results ... I need the position smoothing only for some extreme cases as angle asigmet with precision about 1 degree. It is the situation when you are in a VR scene and than you use extreme zoom (like watching objects with a trieder in real word). The VFX3D oscilation is multilpied in this case severel times in compariosn to wide angle view. I was trying to solve this problem just by the technique you describe, but the results produce jumping by the step you chose as minimal change. I want to solve a bit more complicated problem - Motion Sickned caused by time delay nessesery for scene view calculation. If you have some function with could predict the motion, you can give the graphic HW commands to calulate the image in advance and show it when you chaive this point. Let me know, plese, if you can send me some sample code showing your aproach ... |
|