zoukankan      html  css  js  c++  java
  • UE4 UCanvas Project

      在使用DrawText时候用Project将世界坐标转化为屏幕坐标,这就出现了问题,text会同时出现在屏幕前和后边

      

    FVector ScreenPos = Project(data.Position);
    
    if (ScreenPos.Z == 0)
    {
    //behind the screen
    return;
    }

      返回的FVector,如果behind the screen 则为0,否则不为0,在源码里边可以看到

    FVector UCanvas::Project(FVector Location) const
    {
        FPlane V(0,0,0,0);
    
        if (SceneView != NULL)
        {
            Location.DiagnosticCheckNaN();
            V = SceneView->Project(Location);
        }
    
        FVector resultVec(V);
        resultVec.X = (ClipX/2.f) + (resultVec.X*(ClipX/2.f));
        resultVec.Y *= -1.f * GProjectionSignY;
        resultVec.Y = (ClipY/2.f) + (resultVec.Y*(ClipY/2.f));
    
        // if behind the screen, clamp depth to the screen
        if (V.W <= 0.0f)    
        {
            resultVec.Z = 0.0f;
        }
        return resultVec;
    }

      

  • 相关阅读:
    Java 执行
    Java 反射
    Mysql 日常
    Java 引用
    Mysql insert on update
    Java Mail 异常
    HDU_5456_数位dp
    HDU_4734_数位dp
    POJ_1221_DP
    POJ_1050_最大子矩阵
  • 原文地址:https://www.cnblogs.com/LynnVon/p/14681552.html
Copyright © 2011-2022 走看看