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

    文章

    81

    浏览量

    28931
收藏 人收藏

    评论

    相关推荐

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

    3D封装库转换2D的封装库
    发表于 06-05 00:35

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

    坐标转换成水平的坐标系?转换后的效果是保证倾角不变,水平转动mpu,出来的数据是水平转动的。我用当前四元数与初始的四元数做差,得到的四元数坐标系还是与mpu坐标系相同,不知道怎么计算才能把坐标
    发表于 07-31 22:19

    如何在AltiumPCB2D库里导出3D

    2D怎么导出
    发表于 09-11 22:17

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

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

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

    3D2D模型不能相互转换,按3可以进入3D模型,按2不可以进入2D模型,这个是怎么回事啊?
    发表于 09-20 05:35

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

    坐标。如何将相对坐标转换成UBFS的绝对坐标?我已经阅读了数据表组件,但它没有说,或者我错过了它。谢谢
    发表于 10-28 09:58

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

    3维模式”即可切换到3D模式2)执行菜单命令“视图→切换到2维模式”即可切换到2D模式3)也可以执行字母键盘上的数字“2”或“3”进行“2维”或者“3维”模式之间切换 图4-15 基准
    发表于 09-13 14:13

    2D3D视频自动转换系统

    2D3D视频的视频转换系统。2D3D技术可把现有的大量传统2D视频转换成3D视频,简化和节省了用摄像机直接捕捉3D场景的复杂性和高成
    发表于 03-06 14:20 1次下载
    <b>2D</b>到<b>3D</b>视频自动<b>转换</b>系统

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

    2D/3D影像转换实时处理芯片:DA8223.该芯片为包括智能手机和平板电脑等在内的各种便携式设备提供了2D/3D视频影像实时转换处理
    发表于 12-14 09:17 4471次阅读

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

    3D 光学坐标测量系统。MaxSHOT 3D将在9月19日的德国汉诺威EMO metalworking tradeshow展会上首次亮相,在9月20日美国芝加哥Quality Expo展会上也会展出。
    发表于 09-20 09:59 1599次阅读

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

    2D还是开发3D游戏,首先必须弄清楚坐标系的概念。在Cocos2d-x,需要了解的有OpenGL坐标系、世界坐标系和节点坐标系。 1.UI坐标系 IOS/Android/Windows
    发表于 04-27 11:34 1097次阅读

    阿里研发全新3D AI算法,2D图片搜出3D模型

    2D走向更高难度的3D。12月3日,记者获悉,阿里技术团队研发了全新3D AI算法,可基于2D图片精准搜索出相应的3D模型,准确率大幅提升10%,可降低3D打印、VR看房、场景
    的头像 发表于 12-04 15:49 2984次阅读

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

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

    KITTI 3D检测数据集

    坐标系的,因此在训练时需要使用外参等将其转换到Lidar坐标系; 有时想要把3d bbox映射到图像2d bbox方便可视化,此时需要内参。
    的头像 发表于 05-31 10:49 1614次阅读

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

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