计算机图形的简单概念了解(目的是了解GPU相关feature含义)

2024-06-16 08:48

本文主要是介绍计算机图形的简单概念了解(目的是了解GPU相关feature含义),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Table of Contents

  • 1. 引言
  • 2. 导论
    • 2.1. 图形概念
    • 2.2. 图形的表示方法
    • 2.3. 图形的操作
    • 2.4. 什么是光栅?
    • 2.5. 锯齿
    • 2.6. 帧和位平面
    • 2.7. 最低刷新率是30帧/s。否则会有卡顿。
    • 2.8. 扫描转换?
    • 2.9. 视频和图形?
    • 2.10. 图形处理流程简介
  • 3. 光栅扫描图形学
    • 3.1. 画直线
    • 3.2. 画圆
    • 3.3. 椭圆
    • 3.4. N次多项式的一般函数,曲线画法
    • 3.5. 多边形的填充
    • 3.6. 字符
  • 4. 裁剪
  • 5. 可见面
  • 6. 绘制
    • 6.1. 纹理

1 引言

当前工程正在熟悉gpu IP的feature。乍看有很多模糊的名词,参考《计算机图形学的算法基础》这本书,做一些简单了解。相关算法,完全忽略了。

2 导论

2.1 图形概念

点、线、文本的集合,都可称为图形。

2.2 图形的表示方法

线、多边形,都可以用点来描述。
二维、三维,可以用点来描述。
曲线,用短直线逼近表示。
纹理比较复杂,但仍然属于点和曲线的范畴。

2.3 图形的操作

旋转、平移、缩放、投影。
生成阴影、透明效果、加贴纹理、颜色处理。
裁剪。

2.4 什么是光栅?

主要是说的光栅图形显示器。基于离散点的显示设备。
光栅图,就是像素图;对应的是矢量图,放大不失真,但是要实时显示的话,需要实时运算。
光栅化,就是根据图形决定每个像素的数据内容,比如颜色等;其实就是确定逼近直线的像素过程。依赖的是光栅化算法。

2.5 锯齿

因为基于点,所以画线,会有锯齿问题。

2.6 帧和位平面

一帧表示画面的像素信息量。比如1980*1080显示设备的黑白像素,一帧需要1980*1080bits。帧不是显示设备,只是存储数据。
多帧,可以实现灰度或者彩色画面;每一帧的像素信息叠加在一起,从而可以决定画面的像素灰度或色彩能力(不同深浅的颜色)。具体,是额外增加一个查色表来实现的。
个人暂时理解一帧可以由N个位平面构成。

2.7 最低刷新率是30帧/s。否则会有卡顿。

现在一般是30帧/s,或者60帧/s的需求。
电影视频要求50帧/s以上,我暂时认为是60帧/s是基本要求。
电视采用隔行扫描,所以30帧/s也够了。

2.8 扫描转换?

光栅化过程,以及按扫描线顺序(从上到下,从左到右)绘制图片的过程(图形显示),结合在一起就是扫描转换。
方法分为实时(例如车辆仿真)、行程编码(例如图片存储)、帧缓冲存储器(计算机上的图形界面)三种。

2.9 视频和图形?

视频是通过对光栅化的图形,进行扫描转换而形成的。

2.10 图形处理流程简介

  • 帧缓冲当做一个绘图平面;第一步需要把帧缓冲清零。
  • 光栅化,确定图形显示的算法;
  • 像素写入帧缓冲存储器;
  • 当一帧图形完成时,按照扫描顺序读出帧缓冲存储器的结果,并传送到显示器上。


3 光栅扫描图形学

其实就是各种算法介绍

3.1 画直线

3.2 画圆

3.3 椭圆

3.4 N次多项式的一般函数,曲线画法

3.5 多边形的填充

3.6 字符

4 裁剪

5 可见面

隐藏不可见的点线面。

6 绘制

绘制可以简单理解为生成真实感图像或图形的过程。绘制过程,涉及物理学及心理学两方面。例如光照(透明度、阴影等)、凹凸等。

6.1 纹理

纹理是一种技术,描述物体的表面细节。
需要考虑:

  • 纹理加到光环的物体表面后,曲面仍然看起来是光滑的。
  • 如何使表面粗糙化。
  • 如何模拟环境,表现阴影和光照程度等。



Author: qilei

Created: 2017-06-17 周六 15:58

Validate

这篇关于计算机图形的简单概念了解(目的是了解GPU相关feature含义)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065993

相关文章

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06