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);

  • 相关阅读:
    while语句
    闭包
    文件操作
    Python基础九:高级特性
    Python基础八:函数
    Python基础六:字典和集合
    Python基础七:条件判断和循环结构
    Python基础五:列表和元组
    Python基础四:字符串及编码
    Python基础三:数据类型和变量
  • 原文地址:https://www.cnblogs.com/zengqh/p/3534908.html
Copyright © 2011-2022 走看看