Beispiel #1
0
    private void UpdateDepthCues()
    {
        //List<GameObject> cuedObjs = m_sDM.SceneObjects;
        List <GameObject> cuedObjs = m_sDM.FocusedObjects;

        int numIter = cuedObjs.Count;

        //Vector3 visPos = m_FirstPersonCamera.transform.position;
        Vector3 visPos = m_focusCylinderCenterPos_noOffset;

        for (int i = 0; i < numIter; i++)
        {
            GameObject curr         = cuedObjs[i];
            Renderer   currRenderer = curr.GetComponent <Renderer>();
            float      objVisDis    = Vector3.Distance(curr.transform.position, visPos);

            if (objVisDis > m_sDM.FarDis) // far from far dis
            {
                FocusUtils.UpdateMaterialAlpha(currRenderer, FocusUtils.FarAlpha);
            }
            else if (objVisDis < m_sDM.FarDis && objVisDis > m_sDM.NearDis)                                                                   // in between far and near dis
            {
                float alpha = FocusUtils.LinearMapReverse(objVisDis, m_sDM.NearDis, m_sDM.FarDis, FocusUtils.FarAlpha, FocusUtils.NearAlpha); // mapping from m_sDM.NearDis - m_sDM.FarDis to m_sDM.FarAlpha - 1.0f to

                // hand distance from obj is usually from 0.09 to 0.20
                alpha += AddHandDistanceAlpha(curr, alpha);

                FocusUtils.UpdateMaterialAlpha(currRenderer, alpha);
            }
            else
            {
                FocusUtils.UpdateMaterialAlpha(currRenderer, FocusUtils.NearAlpha);
            }
        }
    }
Beispiel #2
0
    private float AddHandDistanceAlpha(GameObject curr, float alpha)
    {
        float objHandDis = FocusUtils.FarHandDis;

        if (ActiveHandManager)
        {
            objHandDis = Vector3.Distance(ActiveHandTransform.position, curr.transform.position);
        }
        if (objHandDis > FocusUtils.FarHandDis)
        {
            objHandDis = FocusUtils.FarHandDis;
        }

        return(FocusUtils.LinearMapReverse(objHandDis, FocusUtils.NearHandDis, FocusUtils.FarHandDis, 0.0f, FocusUtils.NearAlpha - alpha)); // add hand distance into consideration
    }