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

本文主要是介绍第六课:冷战和消费主义、个人计算机革命、图形用户界面(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
    方便并行处理多个图形,并把图形分成一个个小块来处理。

这篇关于第六课:冷战和消费主义、个人计算机革命、图形用户界面(GUI)及3D图形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

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

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

读书摘录《控糖革命》

又到了每周推荐时间,这周末给大家推荐一本书《控糖革命》。身体是革命的本钱,只有保持健康的身体,才能保证持久的生产力,希望我的读者都可以身体健康,青春永驻。 推荐前,首先申明在《控糖革命》一书中,作者提出了一些颇具争议的观点,这些观点并没有经过系统的科学论证,但这并不妨碍我们从中获取一些有益的控糖建议。作者通过分享作者的个人经验和研究,为我们提供了一种全新的饮食理念,帮助我们更好地控制血糖峰值

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

分布式系统的个人理解小结

分布式系统:分的微小服务,以小而独立的业务为单位,形成子系统。 然后分布式系统中需要有统一的调用,形成大的聚合服务。 同时,微服务群,需要有交流(通讯,注册中心,同步,异步),有管理(监控,调度)。 对外服务,需要有控制的对外开发,安全网关。

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字