1
我目前正試圖通過使用來自相機的數據作爲環境地圖和採樣燈來實現環境照明。是OnTangoImageAvailableEventHandler()多線程?
我所做的是
private int noOfSamples = 64;
private int noOfLights = 0;
public void OnTangoImageAvailableEventHandler(TangoEnums.TangoCameraId cameraId, TangoUnityImageData imageBuffer)
{
createSamples(imageBuffer);
}
然後在createSamples():
public void createSamples(TangoUnityImageData imageBuffer)
{
if (m_enableEnvironmentalLighting && noOfLights < noOfSamples)
{
----- generate samples -------
for (int i = 0; i < noOfSamples; i++)
{
---- create light game object, set the position and rgb of the light.
noOfLights++;
}
}
}
這工作正常,在Unity編輯器,它只是創造了第一個64個燈,反射和陰影作品精細。但是,當它位於Tango設備上時,除非我刪除noOfLights檢查noOfSamples,否則不會創建光源。
刪除檢查noOfLights < noOfSamples後,在每一幀中都需要再次計算樣本,導致性能很差。是否因爲OnTangoImageAvailableEventHandler方法是多線程的?有沒有辦法只創建前64個燈?
謝謝!
謝謝您的回答!出於好奇,而不是使用圖像緩衝區,會不會實施ITangoVideoOverlayMultithreaded解決這個問題? – dddddddaxing