当前位置: 首页 > news >正文

【计算机图形学划重点】第一讲-Pipeline and Introduction

基础知识

Vertex(顶点)

define the location of primitives in space, and consists of vertex stream.

顶点用于定义空间中基本图形(primitives)的位置。它包含了一个顶点流(vertex stream),通常这个顶点流包含了多个顶点。每个顶点包括了定义其在三维空间中位置的坐标信息,以及可能包括颜色、纹理坐标和法线等其他属性。

Primitive

  1. the result of the interpretation of a vertex stream, as part of Primitive Assembly 作为图元装配(Primitive Assembly)的一部分,图元是顶点流解释的结果。简单地说,图元是由顶点通过特定的规则连接起来形成的基本图形,如点、线和三角形。

  2. 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

  1. VAO(顶点数组对象,Vertex Array Object):

    1. VAO是一个对象,它存储了所有的顶点属性状态(如顶点属性的布局)和与这些属性相关的VBO

    2. 使用VAO的目的是为了保存顶点属性的配置和数据源。当配置顶点属性指针时,这些配置会存储在当前绑定的VAO中。

    3. 在渲染时,只需绑定相应的VAO,就可以使用其中的顶点属性配置和数据。

  2. VBO(顶点缓冲对象,Vertex Buffer Object):

    1. VBO用于在GPU内存中存储大量顶点的数据,如顶点坐标、纹理坐标、法线、颜色等。

    2. VBO的使用可以大幅减少CPU到GPU的通信,提高渲染效率,因为顶点数据可以在渲染之前发送到GPU,然后在渲染时直接从GPU内存中获取。

    3. 在使用VBO时,顶点数据只需上传一次到GPU,之后可以多次用于渲染,这对于动画和复杂场景渲染非常有效。

  3. EBO(元素缓冲对象,Element Buffer Object):

    1. EBO也称为索引缓冲对象(Index Buffer Object),用于存储顶点索引

    2. 使用EBO可以重用顶点数据,定义哪些顶点会组成一个图元(如三角形)。这样,相同的顶点可以被多次引用,减少了内存的使用和数据传输。

    3. EBO通常与VBO一起使用,VBO存储顶点数据,EBO存储构成图元的顶点索引。

相关文章:

【计算机图形学划重点】第一讲-Pipeline and Introduction

基础知识 Vertex(顶点) define the location of primitives in space, and consists of vertex stream. 顶点用于定义空间中基本图形(primitives)的位置。它包含了一个顶点流(vertex stream)&#xff0c…...

面试题-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 核心概念(交换机、队列、路由键)&#xff0c;队列类型等介绍 RabbitMQ 是一个消息队列系统&#xff0c;它的核心概念包括交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;&#xff0c;它们一起…...

1001 害死人不偿命的(3n+1)猜想

卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公布了…...

七、HTML 文本格式化

一、HTML 文本格式化 加粗文本斜体文本电脑自动输出 这是 下标 和 上标 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>HTML文本格式化</title> </head><body><b>加粗文本</b><br>…...

OSI 模型和 TCP/IP 模型的异同

开放式系统互联模型&#xff08;OSI&#xff09;是一个参考标准&#xff0c;解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的&#xff0c;是让互联网成为了目前这个样子的标准之一 OSI&#xff1a;物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0…...

创新性文生视频模型,南洋理工开源FreeInit

文本领域的ChatGPT&#xff0c;画图领域的Midjourney都展现出了大模型强大的一面&#xff0c;虽然视频领域有Gen-2这样的领导者&#xff0c;但现有的视频扩散模型在生成的效果中仍然存在时间一致性不足和不自然的动态效果。 南洋理工大学S实验室的研究人员发现&#xff0c;扩散…...

linux的页缓存page cache

目录 如何查看系统的 Page Cache&#xff1f; 为什么 Linux 不把 Page Cache 称为 block cache&#xff1f; Page Cache 的优劣势 Page Cache 的优势 加快数据访问 减少 IO 次数&#xff0c;提高系统磁盘 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&#xff0c;具体信息如下所示。 Error Message **ERROR: (TA-152): A latency path from the ‘Fa…...

虹科方案丨从困境到突破:TigoLeap方案引领数据采集与优化变革

来源&#xff1a;虹科工业智能互联 虹科方案丨从困境到突破&#xff1a;TigoLeap方案引领数据采集与优化变革 原文链接&#xff1a;https://mp.weixin.qq.com/s/H3pd5G8coBvyTwASNS_CFA 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 导读 在数字化工厂和智能制造时…...

自检服务器,无需服务器、不用编程。

自检服务器&#xff0c;无需服务器、不用编程。 大家好&#xff0c;我是JavaPub. 这几年自媒体原来热&#xff0c;很多人都知道了个人 IP 的重要性。连一个搞中医的朋友都要要做一个自己的网站&#xff0c;而且不想学编程、还不想花 RMB 租云服务。 老读者都知道&#xff0c…...

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看&#xff0c;或者刚入门c的小白看&#xff0c;有的题会补充知识点&#xff0c;期末复习题的代码一般比较简单&#xff0c;所以语法上没那么严谨。本文所有题目要求全在代码块的最上面。 目录 1、设计复数类 2、设计Computer类 3、实现相加的函数模板 4、圆类…...

一种DevOpts的实现方式:基于gitlab的CICD(一)

写在之前 笔者最近准备开始入坑CNCF毕业的开源项目&#xff0c;看到其中有一组开源项目的分类就是DevOpts。这个领域内比较出名的项目是Argocd&#xff0c;Argo CD 是一个用于 Kubernetes 的持续交付 (Continuous Delivery) 工具&#xff0c;它以声明式的方式实现了应用程序的…...

nodejs和vuejs的区别

一、vue项目开发中&#xff0c;两个经常混合使用。 不同&#xff1a; 1、概念不同&#xff1a; 一个是前端框架&#xff0c;一个是服务端语言。 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型&#xff0c;使…...

16、Kubernetes核心技术 - 节点选择器、亲和和反亲和

目录 一、概述 二、节点名称 - nodeName 二、节点选择器 - nodeSelector 三、节点亲和性和反亲和性 3.1、亲和性和反亲和性 3.2、节点硬亲和性 3.3、节点软亲和性 3.4、节点反亲和性 3.5、注意点 四、Pod亲和性和反亲和性 4.1、亲和性和反亲和性 4.2、Pod亲和性/反…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...