Jump to content

Search the Community

Showing results for tags 'eye tracking'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • VIVE
    • VIVE Community Forums
    • VIVE Technical Support
    • VIVE Developer Forums


  • Viveport Blog
  • Viveport Reviews
  • Viveport SDKs and Downloads
  • Developer Blog
  • Vive Blog

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me

Found 25 results

  1. Vive Pro Eye Calibration Initialization Error Troubleshooting Problem: Launching calibration shows error: "Initialization Failed" Solutions: - Run "EyeCalibration.exe" manually in C:\Program Files\VIVE\SRanipal\tools\eye_calibration - Power off/on PC & Link Box. - Run 'sr_runtime.exe' as Admin. Default install path: 'C:\Program Files (x86)\VIVE\SRanipal'. - Update SteamVR Runtime. - Update graphics card drivers. - Navigate to "Change User Account Control settings" via Windows Settings search or start menu search. Change to "Never Notify" and click "OK". - Possible issue with some models of MSI laptops fixed with rollback to earlier NVIDIA driver. Fresh install of NVIDIA driver 417.71 (GPU BIOS not being updated and it does not support the latest NVIDIA driver). - Uninstall 'VIVE_SRaniaplInstaller' & 'Tobii VRU02 Runtime'. Restart and Install latest 'VIVE_SRanipalInstaller_1.1.0.1.msi'. Plug in HMD and wait for any updates to complete. - Update motherboard integrated Intel Graphics Driver (fixes system reference to incorrect openCL.dll (intel) instead of NVidia). - Disable integrated graphic card - Possible issue with wireless adapter, try running calibration with wired. - Possible issues with early dev kits. Check System Requirements: - Use DisplayPort, mini-DisplayPort, or USB-C output from the dedicated GPU. - Windows 8.1 or later (64-bit). Problem: Error in logs: "This HMD doest NOT has eye-tracking feature, Error : -5" Solutions: - Launch "SR_Runtime" and start calibration or eye tracking application - Check Device Manager for "EyeChip" under "Universal Serial Bus Devices" - Check Services for "Tobii VRU02 Runtime" - Remove any other Tobii services installed - Disconnect any other eye tracking devices attached
  2. Hallo zusammen, ich bin auf der Suche nach einer VR Brille mit welcher ich ein Experiment für eine Studienarbeit machen kann. Dazu habe ich die HTC VIVE PRO EYE ins Auge gefasst. Leider kann mit der HTC Support nicht weiterhelfen und hat mich an das Forum hier verwiesen. Welche Möglichkeiten habe ich mit der HTC VIVE PRO EYE die Augenverfolgung aufzuzeichenen bzw. zu bewerten oder zu analysieren? Es geht u.a. um folgendes: Probanden sollen Fotos gezeigt werden. Innerhalb der Fotos gibt es verschiedenen symetrische Figuren (in verschiedenen Farben je nach Bild). Ich möchte nur wissen in welcher Reihenfolge die Figuren auf jedem Bild angeschaut werden. Gib es eine Software für die HTC Vive Pro Eye mit welcher ich dies nachvollziehen kann? GGf. bzw. Notfalls würde auch eine "Heatmap" ausreichen, auch wenn das nicht ganz das ist was ich suche. Für eine Antwort wäre ich sehr dankbar, da der HTC Support mich mehrfach auf das Forum verwiesen hat und nicht helfen konnte. Viele Grüße
  3. HI! I'm using HTC Vive Pro Eye in Unity with SRanipal to track user's ocular movementes. I can save at 120HZ gaze direction from both eyes. Gaze Direction is a vector3 that return data between -1 and 1.Is it possible to covert this value in pixels? Best Regards, Mattia
  4. Get ready to discover a better way to develop and integrate VR experiences with the HTC VIVE Eye Tracking SDK. Led by Developer Relations Engineer Cory Corvus, this free webinar showcases a deep dive into our eye tracking use cases. You’ll also gain insights into: Foveated rendering integration Variable-rate shading Recording eye animations The webinar will finish with a live Q&A. Click here to register.
  5. I want to perform something like the video Raycasting video where using raycasting , I could get the object display name in unreal. In this video, I used first person camera to get the world Location and world rotation. Now, I would like to do the same using user gaze data to observe at which objects the user is gazing currently. I have used many blueprints using getGazedata but nothing seems to be working efficiently like the video above. I have attached a blueprint as an example of what I am currently trying to do. Gazedata blueprint Please tell me how can I get something like the video above using the Sranipal eye tracking data using blueprints in unreal.
  6. Hello, I am trying to build a VR application using Unity 2019.4.1 and Vive Eye Pro. Assume I have a "red" sphere in the scene, I want to check when the user looks at the sphere and change its color to green. Using the following libraries ViveSR.anipal.Eye, ViveSR.anipal, ViveSR I can read and check the data eyeData.verbose_data including gaze direction, gaze origin, eye openness and many more. I would appreciate any guidance and support to implement the example explained above. Thanks.
  7. Is it possible to spectate during the eye calibration from HTC? I use Unity and start the eye calibration by calling SRanipal_Eye_API.LaunchEyeCalibration() the HTC Eye Calibration is neither visible from the Unity game window nor being picked up from a screen recorder like unity recorder v2. I would like/I need to help participants (especially children!) during the calibration step, and it would be great if I can see what they see. It is also possible to change the language that the eye calibration screen uses programmatically? Thanks, @Corvus @Daniel_Y @zzy
  8. Hi, I have been trying to setup the HTC Vive Pro Eye for some time now but I keep having this one issue: the tray icon eyes won't turn green (unless the face gym demo is open) but stay red instead. I am not sure what I am doing wrong but I have followed all the steps multiple time and the issue seems to persist. Can anyone help me please? Many thanks! @Corvus
  9. In this post, I am going to show you how to integrate Variable Rate Shading (VRS) with your Unreal Engine project in order to enable Foveated Rendering using the HTC Vive Pro Eye headset. This article is going to focus on Unreal Engine. If you are using Unity instead of Unreal Engine then you can use the Vive Foveated Rendering plugin from the Unity Asset Store or the Github page. It is assumed that you’re somewhat familiar with Unreal Engine, C++ and Blueprints. Requirements HTC Vive Pro Eye headset VR Ready Quadro (Quadro Desktop: Quadro 4000 card and higher, Quadro Notebook: Quadro 3000 and higher) or VR Ready GeForce Turing based GPUs ( GeForce™ RTX 20 series or GTX-1660 / GTX-1660 Ti ) NVIDIA Driver version: 430.86 or later OS: Microsoft Windows This post is divided into 4 main parts: Part 1 – Foveated Rendering & NVIDIA Variable Rate Shading (VRS) Part 2 – Setting up Unreal Engine Source Code from the Vive Github Repository. Part 3 – Setting up SRanipal Plugin Part 4 – Combining everything for Foveated Rendering results So, let’s get started! Part 1 – Foveated Rendering & NVIDIA Variable Rate Shading (VRS) Allow me to begin by stressing the importance of Foveated Rendering and how beneficial it can be for VR applications. Creative directors and technical artists always try to raise the bar of visual fidelity of immersive VR applications, but the engineering teams often hit the bottleneck of achieving the required minimum of 90 FPS as new headsets are released with better and better display resolutions. From time to time some new smart rendering techniques are invented that allow us to optimize this process without having to drop the quality. This is where foveated rendering comes in to play. If you’re not already familiar with the term Foveated Rendering, what you need to know about it is that it is a rendering technique that can be used together with VR Headsets that support Eye Tracking, such as the HTC Vive Pro Eye, to reduce the rendering workload, thus allowing developers to improve the performance of their VR applications or push the visual quality of their content. The term “Foveated” derives from the word Fovea, the part of the eye retina that allows us to have a sharp central vision (Foveal Vision) which lets us focus on the visual details of what is important in a narrow region right in front of us. The Foveal and Para-Foveal areas cover a field of vision of about 5 degrees. Anything outside the fovea region belongs to the peripheral vision and despite the fact that it is also useful, it can only detect fast-moving content changes and color, hence why it feels comparatively less detailed and blurry. The Foveated Rendering technique exploits the anatomy of the human eye and suggests that computers can drop the quality of graphics in the peripheral vision by lowering the resolution there while focusing all of the available processing power on the smaller foveated area of the image. VRS_01_v008_white_logo.mp4 Dynamic (Eye-Tracked) Foveated Rendering should not be confused with a variant called Fixed Foveated Rendering. The latter assumes forward viewing direction and limits the rendering costs of display areas which will not be clearly visible in the headset mainly around in the lens distortion region. Although the concept of Foveated Rendering has been around for a while, the new NVIDIA Turing™ architecture for GPUs allowed the use of a rendering technique called Variable Rate Shading (VRS) that can enable this feature. This technique offers the ability to vary the shading rate within a frame and can be combined with Eye-Tracking data to perform Foveated Rendering in VR experiences, hence why you need a GPU that is based on Turing™ architecture. Graphics cards have a component called pixel shader (or fragment shader), that determines the visual characteristics of a single pixel in a virtual environment such as its color, brightness, contrast, etc. Instead of executing the pixel shader once per pixel, with VRS the GPU can not only apply a single pixel shader operation to a whole 16 x 16-pixel region but also dynamically change the shading rate during actual pixel shading in one of 2 ways: Coarse Shading. Execution of the Pixel Shader once per multiple raster pixels and copying the same shade to those pixels. Configurations: 1×1, 1×2, 2×1, 2×2, 2×4, 4×2, 4×4 Super Sampling. Execution of the Pixel Shader more than once per single raster pixel. Configurations: 2x, 4x, 8x For example, in the case of Coarse Shading, we can select a 2×2 coarse shading that indicates that a single shade operation evaluated by a pixel shader invocation will be replicated across a region of 2×2 pixels. So instead of sampling 4 times for each pixel in the 2×2 area, we can sample once and broadcast the result to all 4 pixels. On the other hand, Supersampling is a method that enables increased sharpness and better anti-aliasing on high-frequency textures not possible by simple MSAA. The pixel shader is run at every sample location within a pixel instead of just once per pixel. With VRS, a VR application doesn't need to perform supersampling on the entire render target, as a specific region can be selected instead, minimizing the performance impact. Shading rate such as 4x Supersampling indicates that pixel shader will be invoked upto 4 times evaluating upto 4 unique shades for the samples within 1 pixel. This is really useful and provides a smoother immersive VR experience for the users especially when they need for example to read text in VR. This fine level of control enables developers to combine varied shading rates and gaze tracking capabilities for foveated rendering. Besides Foveated Rendering, NVIDIA VRS supports the following 2 techniques: Content Adaptive Shading that takes into account factors like spatial and temporal color coherence and object variation every frame to lower the shading rate in successive frames, e.g for areas where detail remains unchanged from frame to frame, such as sky boxes and walls. Lens-Optimised VRS that can be used to render efficiently to a surface that closely approximates the lens corrected image, eliminating the need to render pixels that would otherwise be discarded before output on the headset, exploting the fact that lenses are designed to be sharper at the center and blurrier around the periphery. It is worth mentioning that all 3 techniques can be used in unison for ultimate customization, and there is no limit on how much supersampling and coarse shading can be done per frame by the developers. Part 2 – Setting up Unreal Engine Source Code from the Vive Github Repository. Usually, most engineering teams that use Unreal Engine for VR development have to make a choice depending on the VR project they will work on and the flexibility they need. They can use: a binary version of Unreal Engine provided from Epic Games via the Epic Games Launcher. In that case, the Engine can’t be modified and only binary plugins that are verified to work with that version of Unreal Engine can be used. This is usually the case if you want to build quickly a demo using technologies/features that are already supported out of the box. the source code of a specific version or branch of Unreal Engine. The engineering team can introduce entirely new features in their custom source code of Unreal Engine to reach their goals for a project. For example, if Unreal doesn’t support a feature, the engineers can modify the source code of the engine to introduce this feature. Or if they find a bug in Unreal Engine that has not been fixed yet, they can fix it themselves without the need to wait for Epic Games to fix it. Most engineering teams that work on projects with new technologies usually prefer the 2nd option. This gives them more control over their pipeline. Currently, if you want to integrate VRS and Foveated Rendering in your Unreal Engine project you need to download and use a custom modified version of the Unreal Engine source code from the HTC Vive Github Repository. HTC Vive currently supports 3 different versions of Unreal Engine for Foveated Rendering, so there is a branch for UE 4.21.0, another branch for UE 4.23.1 and one for UE 4.24.2. Don’t forget that in order to be able to access the Unreal Engine Source code repository, it’s required to link your Epic Games account to GitHub account and get authorized by Epic Games. This modified version of Unreal Engine contains: Changes to the Unreal Engine Rendering Pipeline source code to support VRS for certain render passes. The VRS Plugin that comes with NVIDIA API libraries We realize that you may want to integrate Foveated Rendering in your project and you may be using a binary/installed version of Unreal Engine or a different custom version of Unreal Engine. HTC Vive is working closely with NVIDIA and Epic Games to make this process easier in the future by integrating the required engine changes to the official Unreal Engine branch so that only the VRS plugin will be needed without any further modifications. For now, if you or your team already use a custom Unreal Engine source code for versions 4.23 or 4.21 and you don’t want to switch to a different engine, you can copy the changes we made in the Unreal Engine Rendering pipeline source code and of course, add the extra VRSPlugin. It’s only a few lines of code! More specifically, for Unreal version 4.23 we had to make changes to the following files: Engine/Source/Runtime/Renderer/Private/ScenePrivate.h Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessing.cpp Engine/Source/Runtime/Engine/Public/SceneViewExtension.h On the other hand for UE 4.24 we modified the following files as we had to call VRS functions from the RHI thread and not the Rendering thread: Engine/Source/Runtime/Renderer/Private/ScreenSpaceRayTracing.cpp Engine/Source/Runtime/Renderer/Private/ScenePrivate.h Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessUpscale.cpp Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessMaterial.cpp Engine/Source/Runtime/Renderer/Private/DeferredShadingRenderer.cpp Engine/Source/Runtime/Engine/Public/SceneViewExtension.h You can choose to download the source code branch as a .zip file or use Github Desktop to clone the repository locally. We recommend using Git to clone the repository, since this way you can quickly fetch the latest updates and bug fixes and update your local copy every time the HTC Vive engineers push a change. Here is the list of steps required after you download the custom Unreal Engine source code in order to get the Engine up and running: 1. If you downloaded a zip archive of the code, extract the archive contents to a directory where you would like to build the engine, e.g., C:\Unreal\4.23-vive. Make sure you use a short path, otherwise you may get errors in the next step with files that exceed the Windows length limit for file names. Alternatively, you can map your install directory as a Windows drive to reduce the path length. 2. Now navigate to the engine directory and run Setup.bat. You may need to Run as Administrator. The Setup.bat script will start downloading the required 3rd party dependencies for Unreal Engine and your system. This may take some time. Make sure that you check regularly the window for any warnings/issues. 3. The next step is to download all the required dependencies for Unreal Engine, so we need to run GenerateProjectFiles.bat to generate the Visual Studio Solution. By default, the script GenerateProjectFiles.bat creates project files for Visual Studio 2017. 4. Launch UE4.sln to open the project solution in Visual Studio. 5. In the menu bar, select Build > Configuration Manager. Verify that Active solution configuration is set to Development Editor and that Active solution platform is set to Win64. 6. In the Solution Explorer, right-click UE4 under Engine and select Set as Startup Project. This makes sure we build the Engine and not one of the other Programs that comes with Unreal. 7. Now, right-click UE4 under Engine again and, in the context menu, select Debug > Start New Instance to launch the engine. 8. Once the Unreal Engine is launched you can select the project you would like to open or specify a new project. If you are creating a new project, don’t forget to specify a project name. **There is currently an issue if you try to select a Blank Blueprint or Basic Code C++ Project where everything is black unless the mode is set to “Unlit” so instead try to select any of the other Template Projects. If you already have an Unreal Project built with a different version of Unreal Engine and you just want to swap the Engine versions, then you can try to open the Project using the Unreal Engine version that supports Foveated Rendering. To do that, find the Unreal Engine Project file, right-click on it and switch the Unreal Engine version used for that project to the new version of the engine we installed (browse to the installed path). That’s all, you should now be able to use the Custom Unreal Engine provided by HTC Vive with your project. Part 3 – Setting up SRanipal Plugin In order to optimize the rendering quality to match the user’s gaze, we need to feed Eye-Tracking gaze data to VRS. To get access to the data provided by the Eye-Tracking capabilities of the HTC Vive Pro Eye, you need to use the Vive SRanipal SDK. The SRanipal SDK allows developers to track and integrate users’ eye and lip movements, empowering them to read intention and model facial expression, create new interactions and experiences and improve existing ones exploiting the precise tracking of eye movement, attention and focus. The SRanipal SDK includes: the required runtime(SR_Runtime) which runs in the notification tray to show the current eye-tracking status for HTC VIVE Pro Eye. Plugins for Unreal/Unity along with sample code for native C development. Follow the list of steps below in order to integrate the SRanipal plugin in your project: 1. Visit the Vive SRanipal SDK page at the Vive Developer website, read the guidelines and start the download procedure. If you don’t have an HTC Developer account you will be asked to register and create a new one to be able to download the SRanipal SDK. 2. Download the Vive_SRanipalInstaller that contains the required runtime. Follow the instructions to install SR_Runtime. 3. Once installed, ensure that your Vive Pro Eye headset is connected to your PC and launch SR_Runtime.exe as an Administrator to start the runtime. Wait until you notice the SRanipal status icon that looks like a Robot appearing in the Windows notification tray. This icon’s eyes will turn orange if a headset with Eye-tracking capabilities is detected but the device is in idle mode and green if a program is retrieving eye data from it. 4. Start SteamVR (If not running already) 5. Put on your HMD. 6. The next step is to go through the Eye-Calibration Process. This is required for each new user and the calibration results are saved to the PC. To start eye calibration, press your VIVE controller’s system button and the calibration program will show an overlay window on your HMD. Select the Vive Pro button at the bottom grid of SteamVR menu. Note that for the highest level of precision, it is recommended to recalibrate for different users, as the eye positions and the pupillary distances are different for each individual. 7. You will need to read and accept the user agreement before turning on the Vive Eye-Tracking capabilities. 8. Press Calibrate to start. It will start by adjusting your HMD position. *If you have any issues with the Calibration Process and you get an error message “Initialization Failed” please follow the steps described in this troubleshooting guide. 9. Next, you need to adjust your IPD value, as shown below. 10. After that, you will be guided to do gaze calibration. Please look at the blue-dot sequentially shown at the center, right, left, upper and lower of the panel until the calibration has been successful, moving only your eyes and not your head. 11. Calibration is done. You are ready to develop eye-aware applications. Now you can try a mini-demo to light up the dots with your eye gaze or press the Vive controller’s system button to quit eye calibration. 12. Download the Vive SRanipal SDK .zip file. It contains the required plugins for each platform as well as documents with detailed instructions. 13. You will need to install the SRanipal Unreal Engine plugin in your Unreal project. To do that, copy the folder located in SRanipal SDK\v1.1.0.1\SRanipal_SDK_1.1.0.1\03_Unreal\Vive-SRanipal-Unreal-Plugin\SRanipal into the Plugins folder of your Project. If you don’t have a Plugins folder in your project structure, you can create a new one and name it “Plugins”. Then generate Visual Studio Project files again for your project. If you get any compilation issue about the Dartboard.h file that can not be included then please make the following change in the SRanipal.Build.cs file: 14. Open the Unreal project, go to Edit->Plugins and you will see the SRanipal plugin under the Project plugins. Make sure it is enabled. Now you can use the SRanipal SDK features for Eye Tracking with your HTC Vive Pro Eye. Part 4 – Combining everything for Foveated Rendering results At this point, the last thing we need is to tie everything together. We will combine the SRanipal plugin and the VRS plugin to enable Foveated Rendering by feeding eye gaze data each frame to the VRS algorithm. In Part 2 above, we used the custom Unreal Engine source code that comes with the VRS plugin. You can locate the VRS plugin folder at UnrealEngine\Engine\Plugins\Runtime\ViveSoftware\VRSPlugin. You will notice that it contains the required NVIDIA VRS APIs as well as code to easily modify VRS settings in your application. Also if you open your Unreal Engine project and go to Edit–>Plugins, you will find the Variable Rate Shading plugin under the Rendering category of the Unreal Engine plugins. Again make sure it is enabled. [UPDATE 9 Feb 2021] : If you are using the Unreal Engine branches for UE 4.24.2 or 4.23.1 then you don't need to write any extra code and you can ignore the following steps. Yo won't need to add GetEyeGazeDirectionsNormalized() and call UpdateStereoGazeDataToFoveatedRendering(), you just have to install the SRanipal runtime, import the SRanipal plugin into your game project and enable Eye Tracking in VRSSettings, then VRSPlugin will get gaze data from the engine automatically and you can just configure the settings.] In order to feed gaze data to VRS and enable Foveated Rendering, developers need to go through the following list of steps: 1. Create a new function to return the Normalized Eye Directions using SRanipal’s method GetVerboseData() and expose it to Blueprints. One way to do this is to add a new function in the list of methods found in the header file SRanipal_FunctionLibrary_Eye.h. located in Plugins\SRanipal\Source\SRanipal\Public\Eye. Of course, you can always create a new static method anywhere else in your project as long as it uses the SRAnipal module dependency. Go ahead and type in the following code for the new function GetEyeGazeDirectionsNormalized. This function will return the normalized Eye Gaze Directions for each eye. UFUNCTION(BlueprintCallable, Category = "SRanipal|Eye") static bool GetEyeGazeDirectionsNormalized(FVector& LeftEyeGazeDirectionNormalized, FVector& RightEyeGazeDirectionNormalized); Also, for the implementation of the function, you will need to type in the following code in the source file SRanipal_FunctionLibrary_Eye.cpp. bool USRanipal_FunctionLibrary_Eye::GetEyeGazeDirectionsNormalized(FVector& LeftEyeGazeDirectionNormalized,FVector& RightEyeGazeDirectionNormalized) { LeftEyeGazeDirectionNormalized = FVector(); RightEyeGazeDirectionNormalized = FVector(); ViveSR::anipal::Eye::VerboseData VerboseDataOut; bool Result = SRanipal_Eye::Instance()->GetVerboseData(VerboseDataOut); LeftEyeGazeDirectionNormalized = VerboseDataOut.left.gaze_direction_normalized; RightEyeGazeDirectionNormalized = VerboseDataOut.right.gaze_direction_normalized; return Result; } 2. Feed the Normalized Eye Directions to VRS plugin’s UpdateStereoGazeDataToFoveatedRendering function. This way, the center of the foveated region for every frame will be calculated by the VRS plugin automatically. You will need to connect the function GetEyeGazeDirectionsNormalized from the previous step to the function UpdateStereoGazeDataToFoveatedRendering from the VRS plugin during Event Tick. You can do this by creating a new Blueprint Actor and adding the following Blueprint nodes in its Event Graph. Don’t forget to place the actor in your Scene so that it can tick. Of course, you don’t necessarily need an Actor for this, you could use the same Blueprint nodes in your GameMode or your GameInstance. 3. Finally, you need to drag and drop an Actor of type SRanipal_Eye_Framework in your Scene and enable Eye tracking (tick box) on it. Only then you can get valid eye gaze directions. 4. If the VRS plugin was successfully enabled, VRS Settings will appear under the Project Settings ->Plugins category. Below you will find a list that describes what each setting can be used for. For more information, you should read this detailed article from NVIDIA. Enable VRS: Whether to enable Variable-Rate Shading or not. Enable Eye Tracking: If an eye-tracking device is properly set up and with its eye-tracker plugin enabled, checking this will automatically fetch eye-tracking data and change the center of the foveated region according to it. ScreenPercentage: In Unreal Engine, the VRSPlugin requires r.ScreenPercentage to be larger than 100 to trigger the UpScale pass renderer so VRS could take effect, that’s why it’s set to 101 by default. Foveation Pattern Preset: This property adjusts the region size of foveated rendering. There are several pre-defined region sizes, the smaller more aggressive. If you pick one of the predefined options, then the Foveation Pattern Preset Detail section will auto-fill the values for you. If you pick the Custom option as the Foveation Pattern Preset, you can customize the internal parameters to perform foveated rendering exactly the way you want. More specifically, the region size (Horizontal and Vertical Radius) for each of the available regions (Innermost, Middle, Peripheral) can be customized from a value of 0 to 10. When the radius is set to 1.0 for both the width and height, the region size will span the width and height of the window forming a circle fitting in the render target (this will depend on the aspect ratio of the render target as well). If you pick a value greater than 1 then the region will span outside the render target area. So the available options are: Narrow Balanced Wide Custom Shading Rate Preset: This property adjusts the shading rate of each region automatically according to a pre-defined rate without having to specify any numerical parameters. The available options are Highest Performance/ High Performance / Balanced / High Quality / Highest Quality. There is also a "Custom" option that allows you to define manually the shading rate for each region. The built-in shading rate preset details can be customized to: Culled: Nothing will be rendered (black) Normal Shading: Each Pixel is sampled once Supersampling (2x,4x,8x,16x): Each pixel is sampled more than once, which would result in less aliasing than Normal Rendering (but will take more computing power). Coarse Shading options (Sample once per 2×1,1×2,2×2,4×2,2×4,4×4 pixel): With coarse shading, a group of pixels is only sampled once, which would result in performance gain, but with fewer details rendered. All parameters in VRSSettings in Project Settings can be changed dynamically during a VR session or a PIE session. This means that developers can also dynamically changing the presets according to different game-dependent factors. Please be noted that the VRS configuration modified in Project Settings will not be carried to the packaged game. Therefore, a set of Blueprint functions is provided by the VRS plugin to alter them during runtime. Developers should call these functions at the initialization phase. The boolean return value indicates whether the setter function execution was successful or not. Generally, VRSPlugin will fallback to Fixed Foveated Rendering if there’s any problem with eye-tracking (e.g. invalid gaze data, device not connected, tracker module not loaded/implemented etc.) You should now be able to apply foveated rendering to your VR application and adjust shading rate and region size for either better performance or better quality according to your project requirements. Currently, there isn’t a way to visualize each region individually, e.g with a different color, but if you want to test that Foveated Rendering works indeed, you can use “Culled” for the Peripheral and Middle Regions so that only the Innermost Region is rendered. Performance Gains & Known Issues Using the Balanced option for both the Foveation Pattern and Shading Rate Presets should give you the best visual quality and performance. It performs 4x supersampling in foveal region, 1x in the middle and 2×2 coarse shading at periphery, while keeping the foveal region just large enough so that the periphery is outside the instantaneous field of view for most users. In general, performance gain from VRS ranges from 20% to 38% for static scenes and VRS gains less performance when the scene is full of dynamic objects like skeletal mesh, particle emitter, and post-processing-effects. We tested the performance improvement using some of the scenes includes in the Unreal Engine 4 sample scenes pack. SunTemple (Link) This scene was designed to showcase mobile features. This single level contains detailed PBR materials useful for a variety of graphics features and techniques and comes with many static and opaque actors as well as many post-process effects Frame time improved from 11.7ms to 9ms (~23%) with Narrow/Highest Performance preset Frame time improved from 11.7ms to 9.8ms (~16.2%) with Balanced/Balanced presets Default Scene View (NO VRS) VRS Enabled (Balanced/Balanced) VRS Enabled (Narrow/Highest Performance) RealisticRoom(Link) This scene shows off the realistic rendering possibilities of Unreal Engine 4 for architectural rendering. It utilizes physically-based Materials, Pre-calculated bounce light via Lightmass, Stationary lights using IES profiles (photometric lights), Post processing, Reflections. Frame time improved from 10.5ms to 7.8ms (~25%) with Narrow/Highest Performance presets Frame time improved from 10.5ms to 8.8ms (~19%) with Balanced/Balanced presets No VRS VRS Enabled (Balanced/Balanced) VRS Enabled (Narrow/Highest Performance) Virtual Studio(Link) The Virtual Studio Scene showcases the Unreal Engine's ability to integrate with professional quality video cards and contains high quality screen-space reflection, which is benefited by VRS a lot. Frame time improved from 38.2ms to 20.8ms (~45.5%) with Narrow/Highest Performance presets Frame time improved from 38.2ms to 26.6ms (~30.3%) with Balanced/Balanced presets No VRS VRS Enabled (Balanced/Balanced) VRS Enabled (Narrow/Highest Performance) Of course, VRS Foveated rendering is not without its own shortcomings. One of the most noticeable artifacts is magnified aliasing in the peripheral region. This artifact is more obvious for thin or glossy objects in the scene. To ease this kind of artifact, the following options are our recommendations: Use temporal anti-aliasing. Developers can choose AA method under Project Settings > Rendering > Default Settings > Anti-aliasing Method Tweak region parameters (size and resolution) based on the content. For scenes with a lot of text or glossy materials, developers should use a less aggressive setting. (UE 4.24 version) Some objects may flicker when VRS is enabled. Uncheck “Occlusion Culling” in Project Settings > Rendering can fix it. Other known issues so far: Keep in mind Bloom will not take effect unless you use the UE 4.24 version. If you use RenderDoc it may cause a conflict with VRS Plugin, so please disable RenderDoc plugin and try again. (UE 4.24 version) Typing console command may crash the editor. (UE 4.24 version) Editor viewport is affected by VRS. We support Unreal Engine 4.21.0 and 4.23.1 and 4.24.2. We injected some VRS function calls in UE rendering pipeline to make VRS happen only for certain render passes. The UpScale pass was introduced in UE 4.19. Thus, the minimum supported version will be UE4.19. If you want to learn more things about the VRS plugin code base, you should read this article from NVIDIA that describes the VRS Wrapper APIs. References What Is Variable Rate Shading? A Basic Definition of VRS NVIDIA Says New Foveated Rendering Technique is More Efficient, Virtually Unnoticeable VRWorks Variable Rate Shading (VRS) Turing™ Variable Rate Shading in VRWorks Easy VRS Integration with Eye Tracking Microsoft – Variable Rate Shading Realistic Virtual Vision with Dynamic Foveated Rendering - Tobii
  10. Hi, I have a HTC Vive Eye Pro and I am interested in recording eye tracking data as a way of seeing where the user's attention is focusing in the VR environment - for research purposes. So I am thinking being able to record the API check focus for example may be useful to this end. There would be different levels that the user would experience so the recording would need to be carried in such a way that displays what is being seen across the different levels of the simulated environment. What is the best way to go about this? I have seen API check focus works for any object in the scene that has a collider on it but I could not find how this can be setup and recorded. Is there any tutorial available that explains the workflow to do it? (I am currently using UE but it would be useful to know how this would work for Unity as well). I hope this makes sense and thanks so much for your help.
  11. Get ready to discover a better way to develop and integrate VR experiences with the HTC VIVE Eye Tracking SDK. Led by Developer Relations Engineer Cory Corvus, this free webinar showcases a deep dive into our eye tracking use cases. You’ll also gain insights into: Foveated rendering integration Variable-rate shading Recording eye animations The webinar will finish with a live Q&A. Click here to register.
  12. I'm trying to display a UI element in the position of the gaze collision. I found out that just using: Camera.main.WorldToScreenPoint(collision.position, Camera.MonoOrStereoscopicEye.Left); does not fully work for the "LeftEye" display - there seems to be some screen-cropping going on (about 15% on each side). Does anybody have a way how to reliably obtain a screenpoint from world point in SteamVR in Unity please? @Daniel_Y @Corvus
  13. How do I get the current timestamp from the eye tracker in Unity? @Corvus @Daniel_Y @Andy.YC_Wang
  14. Hi Everyone! I'm working with HTC Pro Eye in Unity using SRanipal. I would like to know if there'se any chance to change Gaze Ray Sample 2; creating two different gaze rays, for each eyes. And if it possible, it is possible obtain data from each eye? Otherwise, is possible to change Gaze Ray form, with a panel of my creation create inside Unity? I mean, i create using Panels a particular effetc which simulate low vision conditions, and i would like to use this panels, as a replacement of "pink" ray gaze offered in the SDK. Thanks for the help.
  15. Hi everyone, I'm struggling with reaching the specified sampling rate of 120 Hz (8.33 ms) on a VIVE Pro Eye HMD. We use the SRanipal eye callback: SRanipal_Eye_v2.WrapperRegisterEyeDataCallback() in a script, derived from MonoBehaviour. The registered callback is only called every 14~16 ms, which leads to approx. 62 Hz. Way below the targeted 120 Hz. I think the PC specs are quite decent and should allow for 120 Hz sampling: Windows 10Pro Intel i7-10750H (specs can be found here) 32GB Ram GeForce RTX 2070 with Max-Q Design Following tool versions are used: SRanipal SDK & Runtime Unity 2019.4.18f1 Pleas note that I am aware of these threads and articles, but did not find a explanation/solution that fits for me: Getting VerboseData at the fastest rate possible. - Vive Eye Tracking SDK - Community Forum Assessing Saccadic Eye Movements With Head-Mounted Display Virtual Reality Technology (nih.gov) Already many thanks, Scot
  16. Hello Forum, We are a group of students using HTC Vive Pro eye for Eye Tracking as part of our academic project. We need to get the eye tracking data at its maximum capture frequency, having tried the following methods we still fail to capture data at 120Hz, 1. We tried to set the Application.targetFrameRate to more than the default targetFrameRate but it did not work as the number of records did not change. We added it to the start function as in the link below: https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html 2. We tried implementing threads as mentioned in this link: https://forum.vive.com/topic/5897-getting-verbosedata-at-the-fastest-rate-possible/page/2/ . But Unity froze and the application stopped working. There are two codes, one Sample_MainThread.cs creates a new thread which creates an object of type Sample_GetDataThread.cs to get the data. There was a solution to add counter to the while loop which is in the class "Sample_GetDataThread.cs" to keep a counter and avoid unity from freezing. 3. Currently, we are using EyeDataCallback version 2 in SRanipal. We get data at 30-80 records per second and it varies. Please could someone suggest if this can be done and if yes how do we achieve it? Help will be much appreciated, Thank you!
  17. Hello all, I am desperate: Since Monday our eye tracking is not working anymore. As you can see in the attached Tobii-Logfile, SRanipal requires to update the firmware of the eye tracking camera. This fails and is immediately retried, resulting in an endless loop of failed firmware updates. Unfortunately this firmware update is required and prevents the regular functioning. Also the EyeChip-device is always ejected and recognized again during this process. The HTC-Vive headset and ts cameras are working fine. I tried already many things: Several SRanipal-Versions: and Several USB-PCIe cards: Mainboard: Asmedia, Inateck KTU3FR-4P (Fresco Chip), Inateck KT4004 (Fresco Chip) Several USB drivers: Microsoft 10.0.18362.693, Fresco, Fresco 3.8.35514.0 Several USB-Cables Is there a way to update the firmware manually? Is there a way to disable the firmware update? Any help is appreciated. Thank you, Flo Tobii-VR4U2P2.zip SteamVR-2020-10-09-PM_04_44_35.zip ViveSR_Log.zip
  18. Hello, I have some questions, I would be really glad if you could help me : 1. I'm doing an experiment using HTC PRO EYE and Unity and I am looking for a "glossary of term" that will help me understand the meaning of each variable, and the scale of possible values. Can you refer me to a relevant link? (For example for variables: Pupil Position, Pupil Diameter, validation) 2. I am looking for a variable that will return information about the confidence level of the pupil recognition. I thought that - .eye_data_validata_bit_mask Will help me, but it gives me a constant result of = 31. Can you help me understand this better - I have a problem identifying the variable or saving the data? 3. Is there a way to display in Unity real time information about eye movements (E.g. ray, Heatmaps) without it being displayed to the player? but only on the main computer? Thanks, Tchiya
  19. Hi - I would like to entirely eliminate the head motion sensor input on the HTC vive pro eye such that if the user moves their head, the display does not change and keeps the same view / screen. I know this is a bizarre request - it is for an eye tracking study with no external variables coming into play), but any help would be appreciated on whereto look in the SDK. Thank you so much!
  20. Problem I'm having some difficulty getting the plugin for unreal engine installed for the Vive Pro Eye Headset. Following the directions in the documentation leads to compile errors when I go to launch the project. In short, I can't get the plugin to compile or the project to load correctly. Done: [X] - Installed and running steam VR [X] - Installed and running SR_Runtime [X] - Calibrated Eye Tracker in Steam VR Error Trigger Pasted unzipped unreal plugin into C++ blank UE4 project. Returned message from unreal: Result of manual compilation via project.sln Menu -> Build -> Build Solution -------------------------------------------------------- I'm also trying to follow the directions in part 3 of : ------------------------------------------------------------ For Context: I'm a researcher at the University of Michigan and have a series of studies I would like to gather eye tracking data from (especially blink rate and pupil dilatation). We are using a fully developed VR environment in UE4 to give several treatments to participants.
  21. Hello, I would like to ask if it is possible to adjust (in code or in the configuration) the speed of the moving point during the eye calibration using the HTC Vive Pro Eye. We are using the HTC Vive Pro Eye in a clinical center for visual tests. There are some visually impaired patients who are not able to follow the moving point since it is moving too fast for them. Any help would be appreciated. @Jad @Corvus @Daniel_Y
  22. Hello I bought vive pro eye to do eye tracking at unity. But, when I start eye tracking calibration in steamVR. adjust the headset up and down to fit the frame. Even if the headset up and down, the image does not change. and I can't go next step...just stop ; - ; In addition, the camera in SRruntime is not recognized. (And I connect my vive port to graphics card connected to the monitor.) I reinstall several times after deleting all the program(steamVR, SRruntime, etc,,,). SteamVR also 'Camera communication failed.' I think it is a problem with the headset recognition or camera recognition. No matter how many time I search, I can't get the result. Please help me,,, T ^ T (I'm already do this : ) I'm using the following desktop computer: GeForce Nvidia GTX 1080 Ti 11GB VRAM Intel Core i5-4670 CPU 16 GB RAM Windows 10 pro (64bit)
  23. Hello. Is it possible to display the eyes of the user wearing Vive pro eye as an infrared image on the monitor? It will be helpful if someone tells me.
  24. Specifically, I need to know where my participants will be looking at a precise time, so the video and the samples from the EyeData object must be perfectly aligned in time. I am also wondering what the equation is to calculate where the participant is looking from the left and right gaze_origins and the left and right gaze_directions or if there is a better way than trying to compute where the participant is looking in VR from those 4 sets of values. @Corvus @Daniel_Y
  25. Cory, from HTC VIVE, will conduct a free workshop on Eye Tracking development using HTC VIVE’s SRAnipal SDK. Topics will include eye tracking, foveated rendering, variable-rate shading, and using eye tracking for avatar animations. If you are interested in using eye tracking or foveated rendering in your VR content then come to learn, network, ask questions, and try a demo! This workshop is free and opened to the public. You will not need a SIGGRAPH badge to attend. RSVP for your free ticket here This workshop is in partnership with LA Unity 3D Meetup, XRLA Meetup, and Two Bit Circus. There's going to be a strong & passionate community of XR developers attending, and it'll be a great opportunity to connect / network. Location: Two Bit Circus – 634 Mateo St, Los Angeles, California Date: 7/30/2019, Tuesday Time: 6:30pm - 9:00pm Hope to see you there! Check back here on our developer blog for more workshop dates in the future. - Global Developer Relations Team
  • Create New...