0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何把OpenGL中3D坐标转换成2D坐标

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-07-09 10:40 次阅读

在OpenGL中,一切事物都在3D空间中,但我们的屏幕坐标确实2D像素数组,OpenGL大部分工作就是把3D坐标转换成适应屏幕的2D像素。

3D坐标转换成2D屏幕坐标的过程是由OpenGL的图形渲染管线管理的。

图形渲染管线的工作可以被划分为两个主要的部分:

把3D坐标转换成2D坐标。

把2D坐标转换成实际有颜色的像素。

注意:2D坐标和像素是不同的,2D坐标精确的描述了一个点在2D空间中的位置,二2D像素是这个点的近似值,2D像素收到你的屏幕/窗口分辨率的限制

图形渲染管线包含很多部分。首先,我们以数组形式传递3D个3D坐标作为图形渲染管线的输入,用来表示三角形,这个数组叫做定点数据(Vertex Data);定点数据是一系列定点的集合。一个顶点(Vertex)是一个3D坐标的集合。为了简单起见,我们假定每个顶点只由一个3D位置和一些颜色值构成。

注意:OpenGL不知道我们传入的顶点位置和颜色值到底需要构成什么,这个时候就需要我们去指定这些数据去表示渲染类型。做出的这些提示叫做图元(Primitive),我们可以指定一下三种:GL_POINTS、GL_TRIANGLES、GL_LINE_STRIP。

图形渲染管线的第一个部分是顶点着色器,它把单独的顶点作为输入,顶点着色器的主要目的是吧3D坐标转换成另外一种3D坐标。同时顶点着色器允许我们队顶点属性进行一些基本处理。

图元装配阶段是将顶点着色器输出的顶点作为一个输入,(如果是GL_POINTS,那么就是一个顶点),并把所有的点装配成指定图元的形状。

图元装配阶段的输出会传递给几何着色器。集合着色器吧图元形式的一系列定点作为集合的输入,它可以通过产生新的顶点构造出新的(或者其他的)图元来生成其他的形状。

几何着色器的输出会被传入光栅化阶段,它会把图元转换成最终屏幕上相应的像素生成供片段作色器使用的片段。在片段着色器运行之前会执行裁剪,裁剪会丢弃在视线范围外的所有像素,以提供执行效率。

片段着色器的主要目的是计算一个像素的最终颜色。在颜色确定以后,最终会被传入到一个最后的阶段 ,Alpha测试和混合测试阶段。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OpenGL
    +关注

    关注

    1

    文章

    85

    浏览量

    29243

原文标题:OpenGL工作流程:把3D坐标转换成2D坐标

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问怎么才能将AD3D封装库转换2D的封装库?

    请问怎么将AD3D封装库转换2D的封装库
    发表于 06-05 00:35

    如何计算才能把坐标转换成水平的坐标系?

    当mpu6050初始放置的时候是倾斜的,如何计算才能把坐标转换成水平的坐标系?转换后的效果是保证倾角不变,水平转动mpu,出来的数据是水平转动的。我用当前四元数与初始的四元数做差,得
    发表于 07-31 22:19

    如何更改Altium图中3D的这个坐标轴?

    3D的这个坐标轴可以更改吗?怎么更改?
    发表于 09-18 05:36

    为什么3D2D模型不能相互转换

    AD17.1.5软件,3D2D模型不能相互转换,按3可以进入3D模型,按2不可以进入
    发表于 09-20 05:35

    如何将相对坐标转换成UBFS的绝对坐标

    嗨,各位,我目前正在使用一个触摸应用程序,它应该使用绝对坐标。如何将相对坐标转换成UBFS的绝对坐标?我已经阅读了数据表组件,但它没有说,
    发表于 10-28 09:58

    【Altium小课专题 第193篇】PCB封装如何在2D3D模式之间进行切换?

    答:1)执行菜单命令“视图→切换到3维模式”即可切换到3D模式2)执行菜单命令“视图→切换到2维模式”即可切换到2D模式
    发表于 09-13 14:13

    全球首款2D/3D视频转换实时处理芯片:DA8223

      Dialog半导体股份有限公司日前宣布推出全球首款2D/3D影像转换实时处理芯片:DA8223.该芯片为包括智能手机和平板电脑等在内的各种便携式设备提供了2D/
    发表于 12-14 09:17 5180次阅读

    Creaform发布MaxSHOT 3D光学坐标测量系统

    Creaform隆重推出公司研发并生产的最新MaxSHOT 3D 光学坐标测量系统。MaxSHOT 3D将在9月19日的德国汉诺威EMO metalworking tradeshow展会上首次亮相,在9月20日美国芝加哥Qual
    发表于 09-20 09:59 1800次阅读

    2D3D视频自动转换系统

    完成系统界面的设置及控制、显示等功能,其DSP处理器实现图像分割和渲染等核心算法,实现了1个高效的2D3D视频的视频转换系统。2D3D
    发表于 03-06 14:20 1次下载
    <b class='flag-5'>2D</b>到<b class='flag-5'>3D</b>视频自动<b class='flag-5'>转换</b>系统

    Cocos2d-x开发游戏的坐标系知识介绍

    无论是开发2D还是开发3D游戏,首先必须弄清楚坐标系的概念。在Cocos2d-x,需要了解的有Open
    发表于 04-27 11:34 1361次阅读

    3d人脸识别和2d人脸识别的区别

    首先是3d人脸识别和2d人脸识别图像数据获取不同。3D人脸识别是以3D摄像头立体成像,而2D是以2D
    发表于 02-05 16:00 4.5w次阅读

    KITTI 3D检测数据集

    因为gt label中提供的bbox信息是Camera坐标系的,因此在训练时需要使用外参等将其转换到Lidar坐标系; 有时想要把3d bbox映射到图像
    的头像 发表于 05-31 10:49 2556次阅读

    2D/3D图表和图形添加到WindowsForms应用程序

      将2D/3D图表和图形添加到WindowsForms应用程序 包括您可能需要的所有功能,并以100%托管代码编写。很好地集成到仪表板和商业智能软件。由响应迅速的支持团队提供支持
    的头像 发表于 06-15 11:45 2225次阅读

    2D3D视觉技术的比较

    作为一个多年经验的机器视觉工程师,我将详细介绍2D3D视觉技术的不同特点、应用场景以及它们能够解决的问题。在这个领域内,2D3D视觉技术是实现自动化和智能制造的关键技术,它们在工业
    的头像 发表于 12-21 09:19 1118次阅读

    一文了解3D视觉和2D视觉的区别

    3D视觉与2D视觉最明显的区别在于立体感。2D视觉只有两个维度,即宽度和高度;而3D视觉则具有额外的深度维度。通过模拟真实世界的第三个维
    的头像 发表于 12-25 11:15 3014次阅读