1.Triangle

一、你好,三角形

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。

3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。

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

第一部分把你的3D坐标转换为2D坐标

第二部分是把2D坐标转变为实际的有颜色的像素

2D坐标和像素也是不同的,2D坐标精确表示一个点在2D空间中的位置,而2D像素是这个点的近似值,2D像素受到你的屏幕/窗口分辨率的限制。

 图形渲染管线接受一组3D坐标,然后把它们转变为你屏幕上的有色2D像素输出。

 图形渲染管线可以被划分为几个阶段,每个阶段将会把前一个阶段的输出作为输入。

所有这些阶段都是高度专门化的(它们都有一个特定的函数),并且很容易并行执行。

由于它们具有并行执行的特性,当今大多数显卡都有成千上万的小处理核心,它们在GPU上为每一个(渲染管线)阶段运行各自的小程序,从而在图形渲染管线中快速处理你的数据。这些小程序叫做着色器(Shader)。

有些着色器可以由开发者配置,因为允许用自己写的着色器来代替默认的,所以能够更细致地控制图形渲染管线中的特定部分。因为它们运行在GPU上,所以节省了宝贵的CPU时间。

OpenGL着色器是用OpenGL着色器语言(OpenGL Shading Language, GLSL)写成的

一个图形渲染管线的每个阶段的抽象展示

图形渲染管线包含很多部分,每个部分都将在转换顶点数据到最终像素这一过程中处理各自特定的阶段

首先,我们以数组的形式传递3个3D坐标作为图形渲染管线的输入,用来表示一个三角形,这个数组叫做顶点数据(Vertex Data);顶点数据是一系列顶点的集合。

一个顶点(Vertex)是一个3D坐标的数据的集合。而顶点数据是用顶点属性(Vertex Attribute)表示的,它可以包含任何我们想用的数据,但是简单起见,我们还是假定每个顶点只由一个3D位置和一些颜色值组成的吧。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

稳态与敏态业务阶段

稳态业务就是比如你登录学校的图书馆教务处这些业务系统 用户数量和数据基本上不会发生太大的变化 业务系统的更新也不是很频繁,比较方便资源的采购 敏态业务就是比如我开发一个应用上线了,我不知道有多少用户和数量,无法预估 这就没办法…

2小时极速入门 TypeScript-慕课网 笔记

TS文档:https://www.tslang.cn/docs/handbook/modules.html 一,什么是TS 注:Typescript无法在浏览器中运行 ,所以需要编译器,将TS转变为JS 问:TS运行这么麻烦,为什么还要有TS? 答:TS强类型 1,规…

LDO VS buck的优缺点对比:LDO(效率低但稳压);DCDC(降压buck,效率高但噪声大)

LDO: Low Dropout Regulator,低压差稳压器 低压差:输入电压与输出电压的差值低; 稳压:当输入电压VIN在正常范围内时,输出电压VOUT都稳定在一个我们需要的固定电压值; 举个栗子,输…

Opencv学习项目4——pyzbar

Pyzbar介绍 Pyzbar 是一个用于解码条形码和二维码的 Python 库。它是基于 ZBar 条形码扫描器库的 Python 绑定,支持多种条形码格式,包括 QR 码、EAN-13、UPC-A、Code 128 等。 Pyzbar 的主要功能 解码多种类型的条形码和二维码:支持包括 QR 码…

Python: HexBinDecOct

因为: f0b1001110# 十进制 int()a0*2**01*2**11*2**21*2**30*2**40*2**51*2**6print(a)# 八进制 oct()print(78/8,78%8)# 110 001 001 8 116print(1*2**00*2**10*2**2,1*2**00*2**10*2**2,0*2**01*2**11*2**2)#十六进制 hex()#0 100 1110 16 4Eprint(sixteenFoo(0*…

汉语拼音字母表 (声母表和韵母表)

汉语拼音字母表 [声母表和韵母表] 1. 汉语拼音声母表2. 汉语拼音韵母表References 1. 汉语拼音声母表 声母是韵母前的辅音,与韵母一起构成一个完整的音节。 辅音是发声时,气流在口腔中受到各种阻碍所产生的声音,发音的过程即是气流受阻和克…

2024年6月大众点评成都餐饮店铺POI分析22万家

2024年6月大众点评成都餐饮店铺POI共有221002家 店铺POI点位示例: 店铺id CACuqlcUQApLA7Ki 店铺名称 峨眉山豆腐脑(百吉街店) 十分制服务评分 7.3 十分制环境评分 7.5 十分制划算评分 7.1 人均价格 18 评价数量 38 店铺地址 百吉街86号1层 大类 美食 中类…

关于edge浏览器注册Kaggle不显示验证部分的问题

使用edge注册kaggle没有显示验证的部分导致无法完成注册 法一 谷歌大法好,使用谷歌注册就么有问题,然鹅需要魔法上网。 法二 使用 edge的Header Editor的插件 收到邮件后填写即可 参考博客: Kaggle平台注册弹不出验证码怎么办&#…

聊聊Vue中的Router(路由)

Vue构造的是一个单页面应用 在 Vue 中,router(路由)用于定义应用的不同页面路径和组件之间的映射关系,通过路由从而实现页面的切换和导航功能 vue中所有的xxx.vue文件,都是路由组件,这些组件都会被vue读取…

【物联网】NB-IoT

目录 一、什么是NBIOT 二、NB-IoT的特点 三、NBIOT的工作状态 四、移远NB-IoT模块及AT指令 一、什么是NBIOT NB-IoT(Narrow Band Internet of Things)窄带物联网,构建于蜂窝网络,所占用的带宽很窄,只需约180KHz&am…

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述 基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS&#xf…

史上最强面试题,拿大厂京东,阿里offer全靠它。程序员必看。

答:对于short s1 1; s1 s1 1;由于1是int类型,因此s11运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 1; s1 1;可以正确编译,因为s1 1;相当于s1 (short)(s1 1);其中有隐含的强制类型转换。 #6、Java 有…

Java学习 (二)关键字、标识符、数组

一、关键字 我们第一章案例中有很多关键字,比如class、public、static、void等,这些关键字依旧被java定义好了,可以拿来用,不需要死记硬背,按照官方文档查询即可 #官方文档 https://docs.oracle.com/javase/tutorial/j…

瑞吉外卖问题(待更新...

文章目录 一、session注册时二、用户增加时三、RequestBody3.1 Long问题3.2 RequestBody3.3 UpdataById 一、session注册时 刚开始使用的是该代码 httpServletRequest.setAttribute("employee",emp.getId());导致我点击登录后,还是一直在登录页面&#x…

1970-2022年中国碳排放1KM栅格数据

【数据简介】 数据名称:1970-2022年中国碳排放栅格数据(1KM) 区域范围:全国 数据格式:tif文件 数据大小:800M 数据来源:欧盟委员会全球大气排放数据库(EDGAR) 部分数据预览: 原文链接http…

InfoMasker :新型反窃听系统,保护语音隐私

随着智能手机、智能音箱等设备的普及,人们越来越担心自己的谈话内容被窃听。由于这些设备通常是黑盒的,攻击者可能利用、篡改或配置这些设备进行窃听。借助自动语音识别 (ASR) 系统,攻击者可以从窃听的录音中提取受害者的个人信息&#xff0c…

技术师增强版,系统级别的工具!【不能用】

数据安全是每位计算机用户都关心的重要问题。在日常使用中,我们经常面临文件丢失、系统崩溃或病毒感染等风险。为了解决这些问题,我们需要可靠且高效的数据备份与恢复工具。本文将介绍一款优秀的备份软件:傲梅轻松备份技术师增强版&#xff0…

RAG | (ACL24规划-检索增强)PlanRAG:一种用于生成大型语言模型作为决策者的规划检索增强生成方法

原文:PlanRAG: A Plan-then-Retrieval Augmented Generation for Generative Large Language Models as Decision Makers 地址:https://arxiv.org/abs/2406.12430 代码:https://github.com/myeon9h/PlanRAG 出版:ACL 24 机构: 韩国…

HTML(19)——Flex

Flex布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。 Flex模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活。 Flex-组成 设置方式:给父元素设置display:fle…

字节跳动最终面,面试官抛出一个“Flutter”我居然懵了

由于在业务开发过程中,开发者大部分的时间都专研于一种编程语言,如果想要掌握多端开发能力,则又稍显力不从心,因此大前端的概念应运而生。 大前端概念对于编程开发者来说早已耳熟能详,从我的角度来理解这个概念的话&a…