private void UpdateBasicLightEstimation(UnityARLightEstimate uarle) { Light[] array = lightsInScene; foreach (Light light in array) { float ambientIntensity = uarle.ambientIntensity; light.intensity = ambientIntensity / 1000f; light.colorTemperature = uarle.ambientColorTemperature; } }
public serializableUnityARCamera(serializableUnityARMatrix4x4 wt, serializableUnityARMatrix4x4 pm, ARTrackingState ats, ARTrackingStateReason atsr, UnityVideoParams uvp, UnityARLightEstimate lightEst, serializablePointCloud spc) { worldTransform = wt; projectionMatrix = pm; trackingState = ats; trackingReason = atsr; videoParams = uvp; lightEstimation = lightEst; pointCloud = spc; }
void UpdateBasicLightEstimation(UnityARLightEstimate uarle) { foreach (Light l in lightsInScene) { //fix ambient light // Convert ARKit intensity to Unity intensity // ARKit ambient intensity ranges 0-2000 // Unity ambient intensity ranges 0-8 (for over-bright lights) float newai = uarle.ambientIntensity; l.intensity = newai / 1000.0f; //Unity Light has functionality to filter the light color to correct temperature //https://docs.unity3d.com/ScriptReference/Light-colorTemperature.html l.colorTemperature = uarle.ambientColorTemperature; } }
// invoked by FrameUpdated-event private void ARFrameUpdated(UnityARCamera camera) { // current timestamp lastFrameTimestamp = GetCurrentTimestamp(); // current light intensity UnityARLightEstimate lightEstimate = camera.lightData.arLightEstimate; currentLightIntensity = lightEstimate.ambientIntensity / 1000f; currentColorTemperature = lightEstimate.ambientColorTemperature; // point cloud if (arManager.pointCloudPrefab != null) { MultiARInterop.MultiARData arData = arManager.GetARData(); arData.pointCloudData = camera.pointCloudData; arData.pointCloudLength = arData.pointCloudData.Length; arData.pointCloudTimestamp = lastFrameTimestamp; //Debug.Log("Point cloud size: " + arData.pointCloudLength + " @ " + arData.pointCloudTimestamp); } }
public UnityMarshalLightData(LightDataType ldt, UnityARLightEstimate ule, MarshalDirectionalLightEstimate mdle) { arLightingType = ldt; arLightEstimate = ule; arDirectonalLightEstimate = mdle; }
public UnityARLightData(LightDataType ldt, UnityARLightEstimate ule, UnityARDirectionalLightEstimate udle) { arLightingType = ldt; arLightEstimate = ule; arDirectonalLightEstimate = udle; }