【计算机图形学划重点】第一讲-Pipeline and Introduction
基础知识
Vertex(顶点)
define the location of primitives in space, and consists of vertex stream.
顶点用于定义空间中基本图形(primitives)的位置。它包含了一个顶点流(vertex stream),通常这个顶点流包含了多个顶点。每个顶点包括了定义其在三维空间中位置的坐标信息,以及可能包括颜色、纹理坐标和法线等其他属性。
Primitive
-
the result of the interpretation of a vertex stream, as part of Primitive Assembly 作为图元装配(Primitive Assembly)的一部分,图元是顶点流解释的结果。简单地说,图元是由顶点通过特定的规则连接起来形成的基本图形,如点、线和三角形。
-
the interpretation scheme used by opengl to determine what a stream of vertices represents when being rendered. 在OpenGL中,图元也指定了如何解释顶点流来渲染。OpenGL根据定义的图元类型(例如点、线段、三角形)来决定如何将一连串的顶点组合成图形。
Fragment
a fragment is a collection of values produced by the Rasterization. Each fragment represents a sample-sized segment of a rasterized primitive. 片元是光栅化(Rasterization)过程产生的值的集合。每个片元代表了光栅化图元的一个样本大小的部分。 片元包含了用于最终像素颜色计算的所有数据,比如颜色、深度以及其他可能的属性。在图形管线中,片元着色器(Fragment Shader)会处理这些片元,以生成最终在屏幕上显示的像素颜色。
Graphics Pipeline
There are three stages
• Application Stage
• Geometry Stage
• Rasterization Stage
Viewing process 视图处理过程
• Transform into camera coordinates.
• Perform projection into view volume.
• Clip geometry outside the view volume.
• Perform Perspective-division into NDC.
• Remove hidden surfaces
Local space -> world space -> camera space -> clipping space -> NDC -> viewport
1 Zooming
Adjusting the viewport can implement zooming 调整视口大小和位置可以实现缩放功能。缩放时,你实际上是改变了最终图像在屏幕上显示的尺寸。
Adjusting the clipping window can implement broadening or shrinking what we see 调整裁剪窗口(即在裁剪空间中决定哪些部分是可见的)可以实现对可见场景的扩大或缩小,从而改变用户看到的场景范围。
2 View Volume
术语“view volume”(视图体积)和“clipping volume”(裁剪体积)通常可以视为相同的概念,在某些情况下可以互换使用。
2.1 Orthographic view volume
• Preserves both distances and angles
• Shapes preserved
• Can be used for measurements
• Building plans
• Manuals
• Cannot see what object really looks like because many surfaces are hidden from view
• Often we add isometric
2.2 Perspective view volume
• Objects further from viewer are projected smaller than the same sized objects closer to the viewer (diminution) • Looks realistic
• Equal distances along a line are not projected into equal distances (nonuniform foreshortening)
• Angles preserved only in planes parallel to the projection plane
• More difficult to construct by hand than parallel projections (but not more difficult by computer)
3 Normalized Device coordinates (NDC)
4 Geometry vs Topology
geometry: locations of the vertices
topology: organization of the vertices and edges
Topology holds even if geometry changes.
Solid modeling
Surfaced based & volume based
1 Surface based
1.1 Mesh Based 边界表示(Boundary Representation, B-rep)
The size and shape is defined by the faces, edges and vertices which consists of its boundary.
(low-dimensional elements)
• Pros: flexible and computers can render them quickly. The vast majority of 3D models today are built as textured polygonal models
• Cons: polygons are planar and need approximate curved surfaces using many polygons, representation is not unique
很难闭合
1.2 Constructive solid geometry(CSG) 构造实体几何
A solid is defined as the result of a sequence of regularized Boolean operations.
• Pros: Computer-Aided Manufacturing: a brick with a hole drilled through it is represented as “just
that” and CSG can easily assure that objects are “solid” or water-tight
• Cons: Relationships between objects might be very complex (search the entire tree) Real world objects may get very complex
2 Volume based
Spatial decomposition: voxel octree BSP 体素(voxels)、八叉树(octree)和二叉空间分割(Binary Space Partitioning, BSP)等技术
2.1 Voxels: a volume element
Pros:
• Modelling continues phenomena: medicine, geology, body, etc.
• Regular data
• Easy to compute volume, make slices
Cons:
• Massive data for high resolution
• The surface is always somehow “rough”
3 Point based
3.1 Point cloud
• Easily accessed with laser scanning, range camera or
stereo image matching
• No connectivity
• Widely used!
GLSL
1 Vertex shader
• Transform vertices
• Model, View and projection transformations
• Custom transformation
• Morphing
• Wave motion
• Lighting
• Color
• Normal
• Other per-vertex properties
顶点着色器可以执行多种任务,比如变换顶点的位置、处理顶点的颜色和纹理坐标、计算光照等。
通常,它会将顶点从一个坐标系统转换到另一个坐标系统,例如从模型坐标转换到视图坐标。
2 Fragment shader
• Compute the color of a fragment/pixel
• The input data is from rasterization and textures and other values
确定每个片元的最终颜色和其他属性。这个过程可能包括纹理映射、光照和阴影计算、颜色混合等。
3 VAO VBO EBO
-
VAO(顶点数组对象,Vertex Array Object):
-
VAO是一个对象,它存储了所有的顶点属性状态(如顶点属性的布局)和与这些属性相关的VBO。
-
使用VAO的目的是为了保存顶点属性的配置和数据源。当配置顶点属性指针时,这些配置会存储在当前绑定的VAO中。
-
在渲染时,只需绑定相应的VAO,就可以使用其中的顶点属性配置和数据。
-
-
VBO(顶点缓冲对象,Vertex Buffer Object):
-
VBO用于在GPU内存中存储大量顶点的数据,如顶点坐标、纹理坐标、法线、颜色等。
-
VBO的使用可以大幅减少CPU到GPU的通信,提高渲染效率,因为顶点数据可以在渲染之前发送到GPU,然后在渲染时直接从GPU内存中获取。
-
在使用VBO时,顶点数据只需上传一次到GPU,之后可以多次用于渲染,这对于动画和复杂场景渲染非常有效。
-
-
EBO(元素缓冲对象,Element Buffer Object):
-
EBO也称为索引缓冲对象(Index Buffer Object),用于存储顶点索引。
-
使用EBO可以重用顶点数据,定义哪些顶点会组成一个图元(如三角形)。这样,相同的顶点可以被多次引用,减少了内存的使用和数据传输。
-
EBO通常与VBO一起使用,VBO存储顶点数据,EBO存储构成图元的顶点索引。
-
相关文章:
【计算机图形学划重点】第一讲-Pipeline and Introduction
基础知识 Vertex(顶点) define the location of primitives in space, and consists of vertex stream. 顶点用于定义空间中基本图形(primitives)的位置。它包含了一个顶点流(vertex stream),…...
面试题-DAG 有向无环图
有向无环图用于解决前后依赖问题,在Apollo中用于各个组件的依赖管理。 在算法面试中,有很多相关题目 比如排课问题,有先修课比如启动问题,需要先启动1,才能启动2 概念 顶点: 图中的一个点,比…...
vite + vue3引入ant design vue 报错
npm install ant-design-vue --save下载插件并在main.ts 全局引入 报错 解决办法一: main.ts注释掉全局引入 模块按需引入 解决办法二 将package.json中的ant-design-vue的版本^4.0.0-rc.4改为 ^3.2.15版本 同时将将package-lock.json中的ant-design-vue的版本…...
使用EasyPoi导入数据并返回失败xls
添加依赖 <!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi-base --> <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version> </dependency> 工…...
机械配件移动商城课程概述
项目介绍 开发准备 任务 开源库介绍 框架搭建 工具类...
prometheus-docker 快速安装
镜像加速 sudo mkdir -p /etc/docker sudo tee /ect/docker/daemon.json << "EOF" {"register-mirros": ["http://hub-mirror.c.163.com"] } EOF安装docker export DOWNLOAD_URL"http://mirrors.163.com/docker-ce" curl -fsSl…...
RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍
RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍 RabbitMQ 是一个消息队列系统,它的核心概念包括交换机(Exchange)、队列(Queue)和路由键(Routing Key),它们一起…...
1001 害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公布了…...
七、HTML 文本格式化
一、HTML 文本格式化 加粗文本斜体文本电脑自动输出 这是 下标 和 上标 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>HTML文本格式化</title> </head><body><b>加粗文本</b><br>…...
OSI 模型和 TCP/IP 模型的异同
开放式系统互联模型(OSI)是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一 OSI:物理层,数据链路层,网络层࿰…...
创新性文生视频模型,南洋理工开源FreeInit
文本领域的ChatGPT,画图领域的Midjourney都展现出了大模型强大的一面,虽然视频领域有Gen-2这样的领导者,但现有的视频扩散模型在生成的效果中仍然存在时间一致性不足和不自然的动态效果。 南洋理工大学S实验室的研究人员发现,扩散…...
linux的页缓存page cache
目录 如何查看系统的 Page Cache? 为什么 Linux 不把 Page Cache 称为 block cache? Page Cache 的优劣势 Page Cache 的优势 加快数据访问 减少 IO 次数,提高系统磁盘 I/O 吞吐量 Page Cache 的劣势 由于我们开发的程序要运行的话一般…...
数字IC后端实现之Innovus TA-152错误解析(分频generated clock定义错误)
**ERROR: (TA-152): A latency path from the ‘Fall’ edge of the master clock at source pin… Error Code TA-152 在数字IC后端实现innovus中我们经常会看到这类Error,具体信息如下所示。 Error Message **ERROR: (TA-152): A latency path from the ‘Fa…...
虹科方案丨从困境到突破:TigoLeap方案引领数据采集与优化变革
来源:虹科工业智能互联 虹科方案丨从困境到突破:TigoLeap方案引领数据采集与优化变革 原文链接:https://mp.weixin.qq.com/s/H3pd5G8coBvyTwASNS_CFA 欢迎关注虹科,为您提供最新资讯! 导读 在数字化工厂和智能制造时…...
自检服务器,无需服务器、不用编程。
自检服务器,无需服务器、不用编程。 大家好,我是JavaPub. 这几年自媒体原来热,很多人都知道了个人 IP 的重要性。连一个搞中医的朋友都要要做一个自己的网站,而且不想学编程、还不想花 RMB 租云服务。 老读者都知道,…...
Java并行流parallelStream()下InheritableThreadLocal引起的问题
Java并行流parallelStream()下InheritableThreadLocal引起的问题 引起问题的代码。 List orgs00 Arrays.asList(new Org("aaa"),new Org("bbb"),new Org("aa0"));List orgs orgs00.parallelStream() .map(org -> {// 模拟从数据库中获取 …...
【C++期末编程题题库】代码+详解18道
适合期末复习c看,或者刚入门c的小白看,有的题会补充知识点,期末复习题的代码一般比较简单,所以语法上没那么严谨。本文所有题目要求全在代码块的最上面。 目录 1、设计复数类 2、设计Computer类 3、实现相加的函数模板 4、圆类…...
一种DevOpts的实现方式:基于gitlab的CICD(一)
写在之前 笔者最近准备开始入坑CNCF毕业的开源项目,看到其中有一组开源项目的分类就是DevOpts。这个领域内比较出名的项目是Argocd,Argo CD 是一个用于 Kubernetes 的持续交付 (Continuous Delivery) 工具,它以声明式的方式实现了应用程序的…...
nodejs和vuejs的区别
一、vue项目开发中,两个经常混合使用。 不同: 1、概念不同: 一个是前端框架,一个是服务端语言。 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使…...
16、Kubernetes核心技术 - 节点选择器、亲和和反亲和
目录 一、概述 二、节点名称 - nodeName 二、节点选择器 - nodeSelector 三、节点亲和性和反亲和性 3.1、亲和性和反亲和性 3.2、节点硬亲和性 3.3、节点软亲和性 3.4、节点反亲和性 3.5、注意点 四、Pod亲和性和反亲和性 4.1、亲和性和反亲和性 4.2、Pod亲和性/反…...
面试算法96:字符串交织
题目 输入3个字符串s1、s2和s3,请判断字符串s3能不能由字符串s1和s2交织而成,即字符串s3的所有字符都是字符串s1或s2中的字符,字符串s1和s2中的字符都将出现在字符串s3中且相对位置不变。例如,字符串"aadbbcbcac"可以由…...
什么是Vue.js的响应式系统(reactivity system)?如何实现数据的双向绑定?
Vue.js的响应式系统是指一种能够跟踪数据变化并实时更新相关界面的机制。它是Vue.js框架的核心特性之一。 在Vue.js中,你可以使用数据绑定语法将数据绑定到DOM元素上。当绑定的数据发生变化时,Vue.js会自动监听这些变化并更新相关的DOM元素。 Vue.js实…...
力扣labuladong一刷day52天LRU算法
力扣labuladong一刷day52天LRU算法 文章目录 力扣labuladong一刷day52天LRU算法概念一、146. LRU 缓存思路一:使用双向链表加map来手动实现。思路二:使用LinkedHashMap 概念 LRU的全称为Least Recently Used,翻译出来就是最近最少使用的意思…...
CCNP课程实验-06-EIGRP-Trouble-Shooting
目录 实验条件网络拓朴 环境配置开始排错错误1:没有配置IP地址,IP地址宣告有误错误2:R3配置了与R1不同的K值报错了。错误3:R4上的AS号配置错,不是1234错误4:R2上配置的Key-chain的R4上配置的Key-chain不一致…...
判断完全数-第11届蓝桥杯省赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第27讲。 判断完全数&#…...
【Bootstrap5学习 day12】
Bootstrap5 导航 Bootstrap5提供了一种简单快捷的方法来创建基本导航,它提供了非常灵活和优雅的选项卡和Pills等组件。Bootstrap5的所有导航组件,包括选项卡和Pillss,都通过基本的.nav类共享相同的基本标记和样式。 创建基本导航 要创建简单…...
算法训练第五十九天|503. 下一个更大元素 II、42. 接雨水
503. 下一个更大元素 II: 题目链接 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之…...
mysql之数据类型、建表以及约束
目录 一. CRUD 1.1 什么是crud 1.2 select(查询) 1.3 INSERT(新增) 1.4 UPDATE(修改) 1.5 DELETE(删除) 二. 函数 2.1 常见函数 2.2 流程控制函数 2.3聚合函数 三. union与union all 3.1 union 3.2 union all 3.3 具体不同 3.4 结论 四、思维导图 一. CRUD 1.1…...
复试 || 就业day04(2024.01.05)项目一
文章目录 前言线性回归房价预测加载数据数据查看数据拆分数据建模模型的验证、应用模型的评估 总结 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容来自某机构网课,是我为复试准备的第一个项目 &#…...
华为机试真题实战应用【赛题代码篇】-最小传输时延(附python、C++和JAVA代码实现)
目录 问题描述 输入描述: 输出描述: 知识储备 解题思路 思路一...
icp备案查询站长工具/seo的作用
网络与通信 N e t w o r k&C o mmu n i c a t i o n计算机网络技术的发展模式研究文/李祥龙研究、探索、试验以及考证,也伴随着新兴技2计算机网络技术快速发展模式分析计算机技术的发展模式对一个国家、地区和社会的成长有着十分重要的影响,其制度、…...
大型网站制作流程/搜索网页内容
接着上篇《编写高效Excel VBA代码的最佳实践(一)》 尽可能少使用“.”,使用对象变量 在前面已经介绍过的对长对象引用使用对象变量以及使用With…End With等都是简化”.”的方法。因为在代码中的每个句点都表示至少一个(而且可能是多个)过程调用,而这些过…...
网站优化合同/南宁网站建设服务公司
在游戏中,我们都喜欢加一些描边效果,来凸显人物的边缘,提高识别度。美术一般都喜欢加。描边方式一般有两种,一种的模型边缘描边,一种的人物的转折点描边(这种需要用到卷轴) 在游戏中比较常用的…...
35公司做的网站漏洞/如何做好关键词的优化
基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型。java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。 1、基本类型及其封装器类 Java基本类型共有…...
盗版视频网站怎么做的/seo刷网站
HTTP 三次握手与四次挥手 HTTP 概述 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得w…...
徐州市水利工程建设有限公司网站/网络营销公司好不好
1.什么是分布式锁 线程锁主要用来给方法,代码加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行改方法或改代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,进程锁是为了控制…...