Jump to content

More realistic thermal image


photo

Recommended Posts

Hello,

in non-AppWall applications (1 display) I usually disable shadows, reduce sky intensity (colder sky), disable lens flares, etc. in order to make the thermal image look more realistic.

In AppWall applications (multi display) I would need different render settings for daylight and thermal image.

Is this possible ?

Are there any post_sensor settings to make (only) the sky look colder and shadows less visible?

 

Best regards,

Christian

Link to comment

Hi Christian,

Quote

In AppWall applications (multi display) I would need different render settings for daylight and thermal image.

I'm afraid, that's not possible. You can use seprate rendering settings on a different engine instances only.

 

Quote

Are there any post_sensor settings to make (only) the sky look colder and shadows less visible?

As far as I remember - there is no exact option to control this. What's your current post_sensor material settings? Did you have time to adjust Influence Scene Scale and Global Temperature parameters? Is there any difference?

Thanks!

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

Link to comment

Hi Silent,

here is our (realistic) post_sensor_white material:

<?xml version="1.0" encoding="utf-8"?>
<material version="2.12.0.2" name="post_sensor_white_0" guid="ff661fa2fc0b1a990e89432438abb4331fee6bf6" parent="6c9028091619e0c167f3e8e32b7d067784cbfcb0" base_material="post_sensor">
	<parameter name="ambient_heat_occlusion" expression="0">0</parameter>
	<parameter name="influence_scene_scale" expression="0">0.5</parameter>
	<parameter name="global_aux_scale" expression="0">0.200000003</parameter>
</material>

Here are our (realistic) render settings:

void AppWorldLogic::setIr(bool ir, PlayerPtr camera)
{
	const char* irPostMaterial = "post_sensor_white_0";
	const char* noisePostMaterial = "post_noise_0";
	if (ir != m_isIr)
	{
		if (ir)
		{			
			camera->setPostMaterials(irPostMaterial);
			Render::setShadows(0);
			Render::setShadowsScreenSpace(0);
			Render::setLightsLensFlares(0);
			Render::setWaterSSR(false);
			m_Sun->setRenderWater(false);
			Render::getEnvironmentPreset(0)->setSkyIntensity(0.25f);
			Render::getEnvironmentPreset(1)->setSkyIntensity(0.25f);
			Render::getEnvironmentPreset(2)->setSkyIntensity(0.25f);
			m_CloudMaterial->setParameterFloat("ambient_intensity_top", 10.0f);
			if (m_AppWall->getWallWidth() == 1)
				m_AppWall->setMaterials(0, 0, irPostMaterial);
		}
		else
		{			
			camera->setPostMaterials(noisePostMaterial);
			Render::setShadows(1);
			Render::setShadowsScreenSpace(1);
			Render::setLightsLensFlares(1);
			Render::setWaterSSR(true);
			m_Sun->setRenderWater(true);
			Render::getEnvironmentPreset(0)->setSkyIntensity(1.0f);
			Render::getEnvironmentPreset(1)->setSkyIntensity(1.0f);
			Render::getEnvironmentPreset(2)->setSkyIntensity(1.0f);
			m_CloudMaterial->setParameterFloat("ambient_intensity_top", 1.0f);
			if (m_AppWall->getWallWidth() == 1)
				m_AppWall->setMaterials(0, 0, noisePostMaterial);
		}
		m_isIr = ir;
	}	
}

We found no post_sensor setting which makes just the sky colder.

Auxilary texture for sky and clouds would also solve the problem.

 

Best regards,

Christian

Link to comment

Hi Silent,

see below screenshots.

All images were captured using the same post_sensor_white_0 material.

We think the ThermalRenderSettings_* images look more realistic.

 

Best regards,

Christian

ThermalRenderSettings_0.png

ThermalRenderSettings_1.png

VisualRenderSettings_0.png

VisualRenderSettings_1.png

Link to comment

Hi Christian,

Thanks for the references. As far as I understand from your code you have already achieved the desired results. Or I am missing something?

Do you want to remove all your code for custom rendering settings? Or you have some limitations with this approach? Could you please elaborate on this?

Thanks!

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

Link to comment

Hi Silent,

no we have not achieved the desired result, because we cannot render thermal + visible image with optimal settings at the same time with the same engine instance.

As you already told me different render settings are only possible we 2 separate engine instances (our current workaround).

So the question is would it be possible to achieve the same or similar effect by e.g. adding auxilary textures for sky or enhancing the post_sensor materials?

 

Best regards,

Christian

Link to comment

I've consulted with developers and I think you can achieve simultaneous rendering of your main viewport and thermals (with different rendering settings). The idea is simple: you need to apply your thermal rendering settings right before rendering the thermals viewport and than after render finished restore them back.

To do so, you can modify AppWall sources located in <SDK>/source/plugins/App/AppWall directory.

You need to find render_window(int i, bool primary) implementation inside D3D11AppWall.cpp / GLAppWall.cpp files and modify it so the viewport with specific index will get the thermals settings and others - no.

If you don't have AppWall sources, please write me PM and specify your current SDK version, I will send them to you.

Nevertheless, we will think how else we can improve the thermals shader, so no additional steps like these will be required in the future (but, I can't say how long it could take).

Thanks!

  • Thanks 1

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

Link to comment
×
×
  • Create New...