Jump to content

ScalableDisplay / Dx12


photo

Recommended Posts

Hi,

We were eager to update to 2.18.1 and finally take profit from Dx12... only to realize that the EasyBlend plugin is limited to Dx11 (yes it's documented, we just overlooked that part). In 2.19, you seems to still use the SD 7 version, which is also limited to Dx11.

Is there any plan to have the EasyBlend plugin for Dx12? If this is a limitation by ScalableDisplay (limited technical support?), do you plan at some point to just scrap it and parse the .ol files yourselves? (the file is plain text and the warping & blending should be straight forward)

We really would like to take profit from Dx12 performance increase and DLSS support!

Thank you :)

Link to comment

Hi Stephane,

Were there any changes in *.ol mesh formats in between 7 and 9?

In version 2.19, you can utilize the SpiderVision plugin and configure it to work with *.ol files from Scalable Display, without the need for any additional plugins. It should be compatible with any API (DX11, DX12, or VK). If you encounter any visual artifacts, please send us your *.ol files for testing, and we will do our best to resolve the issues.

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Indeed, I hadn't tried with 2.19 but it actually works with Dx12! So this are some very good news!

Yet, somethings aren't clear for me:

  1. We use multiple OL files, corresponding to different cockpits and eye position (pilot/copilot for example), and previously we used the UnigineEasyBlend API to swap OL file at runtime. How can we do this now (or something equivalent) ?
  2. As changing eye position only actually requires changing the eye offset and view orientation, maybe it's possible now with a new API ? (for example to support a realtime eye tracker)
  3. Now, the OL file is imported in the SV file in a preprocess step. Is it possible to automate this? We can have quite a lot of OL files, for multiple eye position and multiple cockpit geometries... Before 2.19, I just had to click a single button 'Update Calibration' in ScalableDisplay for all simulators and all cockpits to generate a few dozens OL files. Importing them one by one manually will be tedious...
  4. As you now have full control of the warping/blending, would it be possible to exclude the console from it (ie render the console after warping the scene)
  5. How can I disable temporarily the warping? (equivalent to the previous easyblend 0 command)

Thank you!

Link to comment
  1. Are you referring to dynamic eye points? It has not yet been implemented, but from my understanding, it should not be very difficult to add, as long as the additional eye points are essentially offsets from the default position.
  2. I believe that question is similar to the first one. The getViewOffset() method was available in version 2.18 but was removed in version 2.19. A direct analogue will be added to the SV API in the upcoming hotfix (2.19.0.1).
  3. You can use the API to import projection files from a disk and assign them to individual PCs. A small example of the code will be provided shortly.
  4. Unfortunately, that would still be difficult to achieve. Could you please describe your use case for this? Are you using a master PC (e.g., a calibration PC) as an IG channel, and do you have a distorted view here?
  5. In 2.19.0.1 we will also update SV API so you can disable EasyBlend warping on fly.

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Here's code snippet for #3:

// changing mesh for a selected view (2.19.0.1)
int AppWorldLogic::update()
{
	spider_vision_manager = Unigine::Plugins::SpiderVision::Manager::get();
	int view_id = spider_vision_manager->findViewportID("left");
	if (view_id == -1)
		return 1;

	auto config = spider_vision_manager->getConfig();
	auto viewport = config->getViewport(view_id);
	
	if (Input::isKeyDown(Input::KEY_P))
	{
		viewport->loadEasyBlendSettings("E:/EasyBlend/EasyBlendOLfiles/TestMeshes/ViewAngleA_+20degrees.ol");
	}

	if (Input::isKeyDown(Input::KEY_O))
	{
      		// you can use the file with the same name that was before, ol mesh will be automatically reloaded
		viewport->loadEasyBlendSettings("E:/EasyBlend/EasyBlendOLfiles/TestMeshes/ViewAngleBC_+45degrees.ol");
	}

	if (Input::isKeyDown(Input::KEY_L))
	{
		viewport->removeEasyblendSetup();
	}

	if (Input::isKeyDown(Input::KEY_K))
	{
		bool enabled = viewport->getEasyblendData()->isEnabled();
		viewport->getEasyblendData()->setEnabled(!enabled);
	}

	return 1;
}

Hope that helps :)

  • Like 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Thanks a lot! That will definitely help!

But just to be clear: in a master/slave context, where all master+slaves have the same files on disk, is it sufficient to call viewport->loadEasyBlendSettings from the master only for each slave vioewport, or do I need to call it on every machine (ie is the call going through the syncker automatically or not)?

Thanks!

Link to comment

Ok Thanks. On a side note, please update the SpiderVision documentation, as a few functions are missing from the doc (isEnabled, find*, viewoffset).

About viewoffset (2.19.0.1), does it mean we can have a runtime eye position with a tracker, updating the camera frustums? Or is this a way to set the IG View offset (equivalent to CIGI ViewControl)? Maybe a sample would be great :)

Link to comment

Yes, documentation will be updated soon.

You can find a sample in the attachment. It should only work with the SpiderVision version that we provided to you in the helpdesk. So far, we are not quite sure how offset feature should function, so we will be waiting for your feedback :)

Thanks!

sync_offset.zip

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
×
×
  • Create New...