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

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

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++中,模板是实现泛型编程