计算机图形学入门11:图形管线与着色器

news2025/7/2 21:15:19

1.什么是图形管线

        把场景中的物体经过一系列的处理,最后一张图像的形式在屏幕上显示出来,这一系列过程就是图形管线(Graphics Pipeline),也叫实时渲染管线(Real-time Rendering Pipeline)。如下图所示,为整个渲染管线的过程。

        渲染管线从上到下依次完成以下步骤:
        1.获取到场景中三维空间中的一些顶点。
        2.经过投影变换,将这些点转换到屏幕坐标系下。
        3.将这些点拼装成不同的三角形。
        4.通过光栅化,将三角形离散成不同的着色点,也就是片元(Fragment)。
        5.着色计算,给不同片元进行光照计算等处理。
        6.输出到屏幕上。

        这些步骤都是在硬件GPU上写好的。

        着色(Shading)会同时发生在顶点处理阶段(Vertex Processing)片元处理阶段(Fragment Processing),这个是因为考虑不同的着色频率。如果使用的是顶点着色(Gouraud Shading),对每个顶点进行着色处理那就发生在顶点处理阶段,如果使用的片元着色(Phong Shading),对每个片元(像素)进行着色,那么就发生在片元处理阶段。在现代的GPU里,这套渲染管线允许有一部分是可编程的,这部分就叫做着色器(Shader),用来控制顶点和像素是如何进行着色的。

2.着色器

        在上述已经说明了,在现代的GPU里,渲染管线允许有一部分是可编程的,在顶点和片元处理阶段,对顶点和片元(像素)是进行如何着色,这就是着色器(Shader)

        Shader本质上是能够在硬件上执行的语言,举一个OpenGL上GLSL语言的例子,如下图所示,OpenGL是图形学中的一个API,可以写Shader。

        Shader中每一个顶点或像素执行一次,写一个函数都是通用的,每一个像素都会执行,只需要操作一个顶点或像素。GPU都是并行计算的,运输性能远超CPU。

        对顶点进行着色的叫做顶点着色器(Vertex Shader),对片元(像素)进行着色的叫做片元着色器(Fragment Shader)。随着现代GPU的发展,出现了几何着色器(Geometry Shader),可以动态产生更多的三角形,对几何的操作。还出现了Compute Shader,它不仅仅是图形学内部的计算,还可以做各式各样通用的GPU计算。

        练习Shader可以去Shadertoy BETA网站。以下图片是使用Shader实现的一个例子。

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

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

相关文章

Python:从头创建 Asyncio (2)

引言 现在,asyncio 已成为 Python 社区中的热门话题,并且名副其实——它提供了一种非常出色的处理 I/O 密集型程序的方法!在我探索 asyncio 的过程中,我起初并不太明白它的工作原理。但随着深入学习,我意识到 asyncio …

go interface

package mainimport "fmt"// 接口 interface func main() {c : Chinese{} //创建一个中国人实例u : American{} //创建一个美国人实例greet(c) //中国人打招呼greet(u) //美国人打招呼 }// 接收具备SayHello接口能力的变量 func greet(s SayHello) {…

sslh一键在一个端口上运行多个服务(KALI工具系列二十三)

目录 1、KALI LINUX 简介 2、sslh工具简介 3、信息收集 3.1 目标主机IP(win) 3.2 KALI的IP 4、操作示例 4.1 监听特定端口 4.2 配置SSH 4.3 配置apache 4.4 配置sshl 4.5 验证配置 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、…

腾讯云对象存储不绑定自定义备案域名不给下载应该如何处理?

从2024年1月1日起,腾讯云对象存储(COS)将实施新政策:新创建的存储桶不再支持使用path-style域名(即存储桶绝对路径)。此外,使用默认域名访问的新存储桶将不再支持任意类型文件的预览&#xff0c…

夏日炎炎 水域守护:北斗守护安全防线——为生命撑起智能保护伞

随着夏季的来临,炎热的天气让许多人纷纷寻求水的清凉。清凉的河流与广阔的海域成为了不少人消暑降温的向往之地。然而,私自下河、下海的行为却暗藏着巨大的安全隐患,每年夏季溺水事故频发,给无数家庭带来不可挽回的悲痛。为有效遏…

QT绘图项目 - 汽车表盘

目录 前言: 整体代码 widget.h widget.cpp 效果演示 实现刻度文字正确排版 优化代码 达到效果 封装整理代码结构: widget.h widget.cpp 指针样式美化 优化后的指针API 效果演示 设置高速刻度为红色 优化刻度API 效果演示 速度显示优化 给内圈画上黑色 优化速度…

【java计算机专业毕设】房屋租赁系统代码源码MySQL springboot vue html maven送文档ppt

1项目功能 【java计算机专业毕设】房屋租赁系统javaweb MySQL springboot vue html maven 送报告 2项目介绍 系统功能: 房屋租赁系统包括管理员和用户和房东三种角色。 该系统包含多个功能模块,分别为管理员、用户和房东提供服务。管理员功能包括个人中…

智能创作引领潮流,抓住时机!TikTok矩阵源码带来自动定时发布的成功策略

智能创作是当今社交媒体平台发展的重要趋势,而TikTok作为最受欢迎的短视频平台之一,通过其独特的创作方式和大量的用户,已经成为广告主和内容创作者的首选平台。在这个竞争激烈的市场,抓住时机并实现成功的关键是自动定时发布&…

遗传算法求解车间调度问题(附python代码)

背景介绍 车间调度问题(Job Shop Scheduling Problem, JSSP)是一类经典的组合优化问题,它在制造业和生产管理中有着广泛的应用。JSSP 的目标是对车间中的一系列作业进行排程,以使得作业在不同机器上的加工顺序是最优的&#xff0…

03 Tricks

一:Auto-ML的一般形式 还可以支持这个CV啦lp啦,还有多模态啦,都还有很多很多任务啊,都可以支持啊 Auto-Sklearn Auto-Pytorch 结构搜所:神经网络搜所算法: AutoGluon 02 >自动特征工程 Tsfresh Boru…

分布式文件存储 - - - MinIO从入门到飞翔

MinIO从入门到飞翔 文章目录 MinIO从入门到飞翔0、前言1、分布式文件系统2、MinIO 介绍3、 MinIO安装(docker)4、基本概念5、通过代码上传文件到MinIO6、封装MinIO为starter7、在其他项目中集成封装好的模块 0、前言 对象存储是一种数据存储架构&#x…

Mybatis中#和$的区别

在MyBatis中,#{} 和 ${} 是两种用于参数替换的占位符,但它们在处理方式和安全性上有所不同 #{} 预编译处理:MyBatis在处理#{}时,会将其中的内容作为参数进行预编译处理。这意味着MyBatis会生成一个PreparedStatement对象&#x…

Python武器库开发-武器库篇之SSH服务暴力破解(五十四)

Python武器库开发-武器库篇之SSH服务暴力破解(五十四) SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上提供安全的远程登录和文件传输功能。SSH可以在客户端和服务器之间建立安全的通信连接,确保通信数据的机密性和…

Web应用安全测试-防护功能失效

Web应用安全测试-防护功能失效 1、账号弱锁定机制 漏洞描述:系统帐号锁定时间太短 测试方法:登录时多次输入错误密码,触发账户锁定机制,查看锁定时间是否低于3分钟。 风险分析:若账户锁定时间过短,攻击…

洋人道歉,「国产」出品,全球最强端侧多模态大模型!(懒人包)

最近,在AI圈发生了一件大事,那就是斯坦福AI团队因抄袭清华系开源大模型而引起了国际社交平台上的巨大争议。事件的核心围绕一款名为“Llama3-V”的斯坦福团队开发的多模态大模型,该模型一经发布,便以其低成本高效率的特性&#xf…

广州酒吧安全管理:蓝牙可燃气体报警器的实践与检定

随着现代都市生活的丰富多样,酒吧已成为人们休闲娱乐的重要场所。然而,酒吧内大量使用的燃气设备也带来了不小的安全隐患。 如何在确保顾客享受愉悦时光的同时,保障他们的生命财产安全,成为广州各大酒吧经营者亟待解决的问题。 …

数据结构 实验 2

题目一:遍历二叉树 一、实验目的 熟练掌握指针变量、链表的含义掌握二叉树的结构特性,以及二叉链表的存储方式的特点掌握用递归的方法处理二叉树的基本算法掌握二叉树的四种遍历方式(先序、中序、后序、按层次) 二、实验步骤 …

Unity资源 之 最受欢迎的三消游戏开发包 - Bubble Shooter Kit 【免费领取】

三消游戏开发包 - Bubble Shooter Kit 免费领取 前言资源包内容领取兑换码 前言 如果你是一名 Unity 游戏开发者,并且正在寻找一种快速、简单的方式来创建自己的三消游戏,那么 Bubble Shooter Kit 就是你所需要的。 资源包内容 Bubble Shooter Kit 是…

typora+Picgo使用Lsky pro搭建本地服务图床

typoraPicgo使用Lsky pro搭建本地服务图床 Picgo下载lankong插件lankong插件安装Auth token获取 Picgo测试typora测试问题说明 Picgo下载 Picgo下载:https://github.com/Molunerfinn/PicGo/releases,注意:请直接使用尝鲜版,正式版…

【kaggle量化交易第一名方案】Trading at the Close

2024 1st Place Solution Overview 最终模型(CV/Private LB为5.8117/5.4030)是CatBoost(5.8240/5.4165)、GRU(5.8481/5.4259)和Transformer(5.8619/5.4296)的组合,权重分别为0.5、0.3、0.2,从验证集中搜索得到。这些模型共享相同的300个特征。 此外,在线学习(On…