计算机图形的简单概念了解(目的是了解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

相关文章

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::