zoukankan      html  css  js  c++  java
  • render same axis

    // 当前渲染相机的参数
        QGlobalCamera* curRenderCamera = _getWorld()->getMainCam();
        const Matrix4& matView = curRenderCamera->_getCamMatView();
        float zNear = curRenderCamera->getNearClipDistance();
        float fovYHalf = curRenderCamera->getFOVy().valueRadians() * 0.5f;
        float tanFov = Math::Tan(fovYHalf);
        float asp = curRenderCamera->getAspectRatio();
        float heightNear = tanFov * zNear * 2;
        float widthNear = asp * heightNear;
        float screenMaxSize = std::max( widthNear, heightNear );

        // 自己的参数
        Vector3 rsPos = _getRSPosWorld();
        Vector3 posInViewSpace = matView * rsPos;
        float zView = -posInViewSpace.z;

        // 调节
        const float projRef = 0.1f * screenMaxSize; // 要求占屏幕大小比例

        float zViewMin = zNear + 0.01f;
        if ( zView < zViewMin )
            zView = zViewMin;

        float projRefLong = Math::Sqrt( zNear * zNear + projRef * projRef );

        // ref / ref_l = r / z_view
        float r = projRef / projRefLong * zView;
        float s_adj = r / AXIS_LEN;
        Vector3 v_adj(s_adj);

  • 相关阅读:
    小儿吃鸡蛋食积案
    女子经前胀痛脸上红斑案
    小儿外感咳嗽咽痛案
    顽固偏头痛案
    交通心肾治失眠
    小儿扁桃体高热兼咳嗽案
    过敏疾患与太少两感相合
    经前乳胀案
    女子黃带案
    小儿外感后频繁眨眼案
  • 原文地址:https://www.cnblogs.com/zengqh/p/3534908.html
Copyright © 2011-2022 走看看