第六课:冷战和消费主义、个人计算机革命、图形用户界面(GUI)及3D图形

第六课:冷战和消费主义、个人计算机革命、图形用户界面(GUI)及3D图形

  • 第二十四章:冷战和消费主义
    • 本课概括:政府和消费者推动了计算机的发展
  • 第二十五章:个人计算机革命
    • 本集概括:继续讲计算机发展史
  • 第二十六章:图形用户界面(GUI)
  • 第二十七章:3D 图形
    • 1、线框渲染 Wireframe Rendering
    • 2、网格 Mesh
    • 3、三角形更常用的原因
    • 4、扫描线渲染 Scanline Rendering——填充图形的经典算法
    • 5、遮挡 Occlusion
    • 6、深度缓冲 Z Buffering

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

第二十四章:冷战和消费主义

本课概括:政府和消费者推动了计算机的发展

早期靠政府资金,让技术发展到足够商用,然后消费者购买商用产品继续推动产品发展。

冷战导致美国往计算机领域投入大量资源。

范内瓦·布什预见了计算机的潜力,提出假想机器 Memex帮助建立国家科学基金会,给科学研究提供资金。

1950 年代消费者开始买晶体管设备,收音机大卖,日本取得晶体管授权后,索尼做了晶体管收音机,为日本半导体行业崛起埋下种子。

苏联 1961 年把宇航员加加林送上太空,导致美国提出登月 NASA 预算大大增加,用集成电路来制作登月计算机。

集成电路的发展实际上是由军事应用大大推进的,阿波罗登月毕竟只有 17 次美国造超级计算机进一步推进集成电路。

美国半导体行业一开始靠政府高利润合同活着,忽略消费者市场,1970 年代冷战渐消,行业开始衰败很多公司倒闭,英特尔转型处理器。

第二十五章:个人计算机革命

本集概括:继续讲计算机发展史

1970 年代初成本下降,个人计算机变得可行。
RAM:random-access memory 随机访问存储器。
ROM:read-only memory 只读存储器。

Altair 8800 第一台取得商业成功的个人计算机。
比尔·盖茨和保罗·艾伦写 BASIC 解释器,解释器和编译器类似,区别是解释器运行时转换,而编译器提前转换。
乔布斯提议卖组装好的计算机,Apple-I 诞生。

1977 年出现 3 款开箱即用计算机:“Apple-II”,“TRS-80 Model I”,“Commodore PET 2001”。

IBM 意识到个人计算机市场。
IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible(IBM 兼容)

生态系统产生雪球效应:
因为用户多,软硬件开发人员更愿意花精力在这个平台。
因为软硬件多,用户也更乐意买 “IBM 兼容” 的计算机。

苹果选封闭架构,一切都自己来,只有苹果在非 “IBM 兼容” 下保持了足够市场份额。

第二十六章:图形用户界面(GUI)

GUI是 “事件驱动编程”,代码可以在任意时间执行以响应事件,而不像传统代码一样自上而下。
图形界面先驱:道格拉斯·恩格尔巴特(Douglas Engelbart)——设想计算机成为未来知识性员工应对问题的工具,并发明了鼠标。

1970 年成立帕洛阿尔托研究中心(Palo Alto Research Center)。
1973 年完成 Xerox Alto(施乐奥托)计算机——创立了桌面,窗口等计算机概念。
1981 年的 Xerox Star system(施乐之星系统),创建了文档概念。
所见即所得 WYSIWYG——施乐打印出来的东西和计算机上一样,并发明了剪切、复制、黏贴等计算机概念。
史蒂夫·乔布斯去施乐参观。
1983 年推出 Apple Lisa。
1984 年推出 Macintosh 成功。
1985 年推出 Windows 1.0。
1995 年推出 Windows 95 提供新的图形界面,并有 Mac 没有的新功能,如多任务和受保护内存。
1995年微软做失败的 Microsoft Bob——类似于房子的设计。

第二十七章:3D 图形

1、线框渲染 Wireframe Rendering

有图形算法负责把 3D 坐标 “拍平” 显示到2D屏幕上,这叫 3D 投影(包括正交投影和透视投影),所有的点都从 3D 转成 2D 后,就可以用画 2D 线段的函数来连接这些点,这叫线框渲染。

2、网格 Mesh

如果我们需要画比立方体复杂的图形,三角形比线段更好,在3D图形学中我们叫三角形 “多边形”(Polygons),一堆多边形的集合叫网格,网格越密,表面越光滑,细节越多。

3、三角形更常用的原因

因为能定义唯一的平面。

4、扫描线渲染 Scanline Rendering——填充图形的经典算法

填充的速度叫做填充速率
在这里插入图片描述

抗锯齿——边缘羽化,如果像素在多边形内部,就直接涂颜色,如果多边形划过像素,颜色就浅一些。
在这里插入图片描述

5、遮挡 Occlusion

用排序算法,从远到近排列,然后从远到近渲染,这叫画家算法

6、深度缓冲 Z Buffering

另一种画遮挡的方法,简而言之,Z-buffering 算法会记录场景中每个像素和摄像机的距离,在内存里存一个数字矩阵,首先,每个像素的距离被初始化为 “无限大”,然后 Z-buffering 从列表里第一个多边形开始处理,也就是A,它和扫描线算法逻辑相同,但不是给像素填充颜色,而是把多边形的距离和 Z-Buffer 里的距离进行对比,它总是记录更低的值,因为没对多边形排序,所以后处理的多边形并不总会覆盖前面的。

  1. Z Fighting 错误
    采用深度缓冲算法,哪个图形在前将会变化。
  2. 背面剔除 Back Face Culling
    由于游戏角色的头部或地面,只能看到朝外的一面,所以为了节省处理时间,会忽略多边形背面,这很好,但有个bug是 如果进入模型内部往外看,头部和地面会消失。
  3. 表面法线 Surface Normal
    在3D图形上任取一小个区域,它面对的方向叫 “表面法线”。
  4. 平面着色 Flat Shading
    基本的照明算法,缺点是使多边形边界明显,看上去不光滑。
  5. 高洛德着色 Gouraud shading, 冯氏着色 Phong Shading
    不只用一种颜色上色。
  6. 纹理映射 Texture Mapping
    纹理在图形学中指外观,纹理有多种算法来达到花哨效果,最经典的是纹理映射。纹理映射示意图如下:
    在这里插入图片描述
  7. 图形处理单元 GPU, Graphics Processing Unit
    方便并行处理多个图形,并把图形分成一个个小块来处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823943.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可. 数值函数 三角函数 指数与对数函数 进制间的转换函数 字符串函数 注:LPAD函数是右对齐,RPAD函数是左对齐 多表查询 注:如果为表起了别名,就…

JavaScript使用教程(二):类型、值和变量

计算机程序通过操作值(如数值3.14)或文本(如“Hello World”)来工作。编程语言中这些可以表示和操作的值被称为类型,而一门语言支持的类型集也是这门语言最基本的特征。程序在需要把某个值保存下来以便将来使用时&…

用CSS中的动画效果做一个转动的表

<!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title></title><style>*{margin:0;padding:0;} /*制作表的样式*/.clock{width: 500px;height: 500px;margin:0 auto;margin-top:100px;border-rad…

Post-hoc Concept Bottleneck Models (PCBM)

ICLR 2023 spotlight 文章链接&#xff1a;https://arxiv.org/abs/2205.15480 代码链接&#xff1a;https://github.com/mertyg/post-hoc-cbm 一、概述 Post-hoc CBM&#xff08;PCBM&#xff09;也是CBM大家族中的一员&#xff0c;因此它的基本逻辑与CBM一致&#xff0c;就是…

uniapp微信小程序接入友盟

一、登录友盟官网&#xff0c;按照引导注册友盟账号 二、在友盟平台新建小程序应用&#xff08;建好之后会得到appkey&#xff09; 进入小程序统计后台创建Appkey&#xff0c;按要求填写小程序名称及类型&#xff1a; 三、在微信小程序中接入SDK ---- 以下是npm 配置 1. 安装…

【docker实战】01 Linux上docker的安装

Docker CE是免费的Docker产品的新名称&#xff0c;Docker CE包含了完整的Docker平台&#xff0c;非常适合开发人员和运维团队构建容器APP。 Ubuntu 14.04/16.04&#xff08;使用 apt-get 进行安装&#xff09; # step 1: 安装必要的一些系统工具 sudo apt-get update sudo ap…

Vue中的默认插槽详解

Vue中的默认插槽详解 在 Vue 中&#xff0c;插槽&#xff08;Slot&#xff09;是一种非常强大且灵活的机制&#xff0c;用于在组件中插入内容。Vue 提供了两种类型的插槽&#xff1a;默认插槽&#xff08;Default Slot&#xff09;和具名插槽&#xff08;Named Slot&#xff09…

解决Windows11安装Docker 一直starting 的办法

Starting the Docker Engine... Docker Engine is the underlying technology that runs containers 关闭docker 管理员身份执行wsl --update后在启动。 另外&#xff0c;docker desktop-unexpected wsl error问题跟标题问题好像是同一个问题&#xff0c;我的是一直让其star…

阿里开源大模型 Qwen-72B 私有化部署

近期大家都知道阿里推出了自己的开源的大模型千问72B&#xff0c;据说对于中文非常友好&#xff0c;在开源模型里面&#xff0c;可谓是名列前茅。 千问拥有有强大的基础语言模型&#xff0c;已经针对多达 3 万亿个 token 的多语言数据进行了稳定的预训练&#xff0c;覆盖领域、…

网络运行状况监控工具

网络运行状况是网络在其操作和环境约束范围内按预期运行的能力&#xff0c;但是&#xff0c;随着云和人工智能等技术的出现&#xff0c;网络变得越来越复杂&#xff0c;维护其 IT 基础设施是一项越来越繁琐的任务。为了确保网络可靠性&#xff0c;组织需要了解每个端点的运行状…

乒乓球廉价底板及套胶评测4

球拍找到适应自己的不容易&#xff0c;因为初学者或者说业余爱好者无法确定是按打法特点选拍还是按拍子练打法特点&#xff0c;所以有时候就要孤注一掷&#xff0c;想想练球的初衷&#xff0c;不用被打的好的对手所左右。我和朋友打球的时候发现大家借力的能力越来越强&#xf…

神经网络 —— 模拟人脑的计算方式

神经网络能够反映人类大脑的行为&#xff0c;允许计算机程序识别模式&#xff0c;以及解决人工智能、机器学习和深度学习领域的常见问题。 人类发明的灵感来源有很多都是来自大自然&#xff0c;神经网络同样如此。人工神经网络是一种类似于人类神经网络的信息处理技术。但事实上…

Grafana监控数据可视化

Grafana 是一个可视化面板&#xff0c;有着非常漂亮的图表和布局展示&#xff0c;功能齐全的度量仪表盘和图形编辑器&#xff0c;支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源&#xff0c;比 Prometheus 自带的图表展示功能强大太多&am…

Kubernetes技术与架构-集群管理

Kubernetes技术与架构提供支撑工具支持集群的规划、安装、创建以及管理。 数字证书 用户可以使用easyrsa、openssl、cfssl工具生成数字证书&#xff0c;在kubernetes集群的api server中部署数字证书用于访问鉴权 资源管理 如上所示&#xff0c;定义一个服务类service用于负…

jQuery显示,切换,隐藏的使用练习

<!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>标题</title><style>div {width: 200px;height: 200px;background-color: red;display: none;}</style> </head> <body>…

PulseGAN

研究背景 远程光电容积描记术 (rPPG) 是一种非接触式技术&#xff0c;用于测量面部视频中的心脏信号。健康监测和情绪识别等许多领域都迫切需要高质量的 rPPG 脉冲信号。然而&#xff0c;由于脉搏信号不准确的限制&#xff0c;现有的大多数rPPG方法只能用于获取平均心率&#…

算法训练营Day26

#Java #全排列 #回溯 开源学习资料 Feeling and experiences&#xff1a; 递增子序列&#xff1a;力扣题目链接 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组…

Java学习:多线程编程

一、概念 进程&#xff1a;它是运行中的程序。有的程序启动后可能有多个进程。Java程序的执行时&#xff0c;首先启动一个独立的JVM进程。该进程任务是解析并执行Java字节码。进程各有独立地址空间&#xff0c;JVM进程间不能访问对方所拥有内存空间。 线程&#xff1a;一个进程…

安装ps提示msvcr71.dll丢失的解决方法,全面解析dll问题

当您在安装PS软件时遇到msvcr71.dll丢失的问题&#xff0c;这是因为该文件是某些程序运行必需的。msvcr71.dll主要包含了C运行时库的函数&#xff0c;这些函数主要用于处理字符串、数学运算、内存管理等基本操作。例如&#xff0c;我们在编写程序时&#xff0c;需要对字符串进行…

【PyQt】(自定义类)QIcon派生,更易用的纯色Icon

嫌Qt自带的icon太丑&#xff0c;自己写了一个&#xff0c;主要用于纯色图标的自由改色。 当然&#xff0c;图标素材得网上找。 Qt原生图标与现代图标对比&#xff1a; 没有对比就没有伤害 Qt图标 网络素材图标 自定义类XJQ_Icon&#xff1a; from PyQt5.QtGui import QIc…