• OPENGL_单位长度对应屏幕像素





    gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar)

    fovy:视角,指定视景体的视野的角度,以度数为单位,y轴的上下方向(x轴的视角可以由y轴视角和视景体的宽高比计算出)

    aspect:视景体的宽高比(窗口的纵横比,即x/y)

    zNear:指定观察者到视景体的最近的裁剪面的距离(必须为正数)

    zFar:指定观察者到视景体的最远的裁剪面的距离(必须为正数)


    在初始化OpenGL时,需要使用gluPerspective设定视景体,视景体的参数,屏幕的分辨率共同决定了,OpenGL中1个单位(一般为1米)对应屏幕多少像素

    计算方法

    以gluPerspective(45,w/h,0.1,1000),屏幕分辨率1024*768为例

    0.0414 少写一个0

    计算屏幕近景裁剪面的高 h = 2*tan(22.5)*0.1=0.082842

    0.0828米对应 768像素

    那么1米就对应 768/0.0828 = 9275像素(图像在z位置为0的情况)

    如果z不为0

    0.0414 少写一个0


    h = 2*tan(22.5)*0.15 = 0.12426米

    那么1米就对应 768/0.12426 = 6180像素


    所以

    so 1米单位长度与像素的换算关系为

    1米 = 屏幕分辨率的高/裁剪面的高 = 768/ (2*tan(22.5)*(ZNear+z))

    其中ZNear是图中的0.1

    z是0.15-0.1=0.05

  • 相关阅读:
    Algorithm --> KMP算法
    Algorithm --> 快速排序
    Algorithm --> 阶乘和因子
    Algorithm --> Dijkstra和Floyd最短路径算法
    Algorithm --> 二分图最大匹配
    Algorithm --> 邮票连续组合问题
    Algorithm --> 字母重排
    Algorithm --> 6174问题
    Algorithm --> 字符串中最长不重合子串长度
    Algorithm --> DFS和BFS
  • 原文地址:https://www.cnblogs.com/nafio/p/9137612.html
Copyright © 2020-2023  润新知