Comments (3)
hi @performlabrit - thanks for your report.
you are right that the current visualization is actually showing the hit point between gaze direction and environment and not the raw gaze vector.
using assumptions about the environment was intentional for the initial gaze demo and is a valid optimization depending on your use-case. but as we are now using this implementation as the default gaze visualization, it can indeed be misleading.
we will look into it for the next release (visualizing the sphere cast and maybe the hit point at the same time). thanks for pointing it out.
from hmd-eyes.
Here is some representative code. Note that I also scale the size of the hit object so that it is constant in degrees of visual angle.
GazeDirectionCombined is the normalized gaze direction within the world frame.
objSizeDegs is the diameter of the object in degrees of visual angle.
objDefaultDist a default distance at which to cast the object when it does not collide with anything.
if (Physics.SphereCast(Camera.main.transform.position, sphereCastRadius, GazeDirectionCombined, out RaycastHit hit, Mathf.Infinity))
{
transform.position = Camera.main.transform.position + GazeDirectionCombined * hit.distance;
float diameterM = Mathf.Tan(Mathf.Deg2Rad * (objSizeDegs/2.0f)) * hit.distance * 2.0f;
transform.localScale = new Vector3(diameterM, diameterM, diameterM);
}
else
{
transform.position = Camera.main.transform.position + GazeDirectionCombined * objDefaultDist;
float diameterM = Mathf.Tan(Mathf.Deg2Rad * (objSizeDegs/2.0f)) * objDefaultDist * 2.0f;
transform.localScale = new Vector3(diameterM, diameterM, diameterM);
}
from hmd-eyes.
thanks again @performlabrit.
updated + more detailed documentation in latest develop branch
from hmd-eyes.
Related Issues (20)
- Hololens support on V1.2 HOT 1
- VR add-on for Vive pro cannot be recognized after opening Pupil capture HOT 4
- Receive pupil data from both eyes simultaneously HOT 3
- Accessing gaze data before calibration finishes HOT 1
- NullReferenceException Error with Connection? HOT 2
- Multiple ellipse data for one frame in pupil.pldata HOT 1
- What is the best calibration practice? HOT 2
- Would you consider refactoring as a custom package? HOT 2
- Support for OpenXR eye_gaze_interaction extension on Linux and Windows? HOT 3
- IL2CPP build connection error HOT 1
- Alpha: FormatterNotRegisteredException HOT 2
- alpha - Use color to indicate when the gaze estimate marker is not being updated. HOT 1
- "Diameter" Values HOT 3
- Camera Sensor Dimensions and Specifications
- README - Fix links to docs.pupil-labs.com HOT 1
- Start File Sources in Capture via notification HOT 17
- HMD_Calibration(_3D) does not drop low-confidence samples HOT 2
- How to make Gaze Visualizer invisible for the HMD-user? HOT 1
- Live recording HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hmd-eyes.