美文网首页
glViewPort详解

glViewPort详解

作者: 似奔跑的野马 | 来源:发表于2018-07-04 11:00 被阅读0次

OpenGL ES中的坐标转换的最后一步视口转换。将标准化的设备坐标(Normalized Device Cordinate,NDC)转换为屏幕坐标。


void glViewport(GLint x,
    GLint y,
    GLsizei width,
    GLsizei height);

参数

x,y
指定了左下角的视口的矩形区域。注意:单位是像素,初始化值为(0, 0)
NOTE:iOS设备来说,大多数都是全屏展示,几乎很少有非全屏显示。

width, height
指定了视口的宽高。当一个上下文(GL Context)关联一个屏幕窗口时,宽和高会设置到屏幕的方向上。

描述

glViewport 指定了从NDC到屏幕坐标的仿射变换。计算公式如下。
Xnd、Ynd 表示标准化的设备坐标(x 、y坐标 -1.0 - 1.0,z坐标也是-1.0-1.0. DirectX z是0 - 1.0);

视口的宽度最大尺寸有一个范围的,可以通过glGet获取。

    GLint dimension;
    glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &dimension);

NOTE:如在iPhone 6plus 的OpenGL ES 2.0 ,dimension = 8192。
在iPhone 7Plus 的OpenGL ES 2.0 ,dimension = 16384。
具体和设备性能有关系。

错误

如果width或者height 设置为负数,会产生 GL_INVALID_VALUE错误。

引用
khronos开发文档
iPhone 3D Programming
苹果官方文档

相关文章

  • glViewPort详解

    OpenGL ES中的坐标转换的最后一步视口转换。将标准化的设备坐标(Normalized Device Cord...

  • GLViewPort视口变换

    glViewPort() 正常显示时的参数: 这里传入的参数为glViewPort(0,0,width,heigh...

  • 2.GLFW创建窗口

    一.工程相关代码如下: 二.相关解析: 1. 关于 glViewport : OpenGL幕后使用glViewpo...

  • 坐标系统

    1、OpenGL幕后使用glViewport中定义的位置和宽高进行2D坐标的转换,将OpenGL中的位置坐标转换为...

  • Mysql性能调优

    SQL执行原理详解 连接器详解 分析器详解 优化器详解 执行器详解 Innodb的Buffer Pool机制详解 ...

  • C/C++的30个冷知识

    数据格式详解 输入输出函数详解 字符串处理函数详解 内存函数详解 类详解 数据格式详解 2^8=256(同样是一个...

  • TSNE 详解

    TSNE 详解 TSNE 详解

  • SwiftSyntax 详解

    SwiftSyntax 详解SwiftSyntax 详解

  • 深入理解相机五(硬件抽象层HAL)

    一、Android 基础学习 Activity 使用详解 Service 使用详解 Broadcast 使用详解 ...

  • Lucene和ElasticSearch基本概念

    Lucene索引详解(IndexWriter详解、Document详解、索引更新)https://www.cnbl...

网友评论

      本文标题:glViewPort详解

      本文链接:https://www.haomeiwen.com/subject/gmteuftx.html