zoukankan      html  css  js  c++  java
  • Unity Camera

    透视相机

    Field of View:

    //设置FOV Axis=Vertical时,fieldOfView的值为45f。
    m_camera.fieldOfView=45f;//m_camera.fieldOfView 永远指的都是竖直方向上展开角度(水平方向的展开角度是根据camera.aspect计算出来的)
    //设置FOV Axis=Horizontal时,fieldOfView的值为45f。
    m_camera.fieldOfView=2f*Mathf.Atan(Mathf.Tan(45f*Mathf.Deg2Rad*0.5f)/m_camera.aspect)*Mathf.Rad2Deg;
    

    设置相机剪裁面的宽高比:

    m_camera.aspect=640f/960f;
    

    设置一个透视相机始终看向目标,且不管相机距离物体多远,物体宽度都能占满屏幕的宽。

    float distance=100f;   //相机到物体的距离
    float objectWidth=50f; //物体的宽
    float slope=(objectWidth*0.5f)/distance;//物体一半宽/距离
    m_camera.fieldOfView=2f*Mathf.Atan(slope/m_camera.aspect)*Mathf.Rad2Deg;
    

    计算指定距离相机剪裁面的宽高:

    float distance=20f;//剪裁面的距离
    float halfFOV=(m_camera.fieldOfView*0.5f)*Mathf.Deg2Rad;
    float height=distance*Mathf.Tan(halfFOV);
    float width=height*m_camera.aspect;
    
    正交相机

    如:相机的大小为800x480,要使相机适应800x480像素的图,则
      Size = 相机高/2/像素单位
         = 480/2/100
         = 2.4
    (屏幕的宽高比Aspect Ratio = frac{屏幕宽度}{屏幕高度})
    (frac{摄像机实际宽度}{摄像机实际高度}=frac{摄像机实际宽度}{摄像机orthographicSize imes 2}=frac{屏幕宽度}{屏幕高度})

  • 相关阅读:
    SQL批量更新
    使用PLSQL导入导出数据库
    Oracle 的Blob使用小结
    基于java的邮件服务器以及webmail的搭建
    Tomcat 系统架构与设计模式 【2】
    修改Oracle XE Listener 占用的1521、8080端口
    nls_lang pl/sql 设置编码
    oracle提高查询效率的解析
    Tomcat 系统架构与设计模式
    hql与sql的区别(转)
  • 原文地址:https://www.cnblogs.com/kingBook/p/13658009.html
Copyright © 2011-2022 走看看