UI学习之路(白话版)

蓝牙白话原理 一文讲清“白话”原理 阅读详情

计算机知识从职业发展的横向来分,可以分为:

UI

存储

网络

我们先论述UI之路的学习.这里的UI是广义的,包括,图形,图像,视频多媒体扥等。

UI是一种直接面对终端用户的一种用户体验(UX)。

广义UI知识适用于:

手机、平板电脑开发。

2D、3D游戏开发

视频,多媒体,浏览器开发

其他特殊行业,比如医学成像,遥感。

好,从现在开始我们开始我们的UI学习之旅。

开始之前,我先要做一点关于我文章风格简单的说明:

我的写作风格,比较松散,属于散打风格。这样有利于引出大量的知识点和概念。

有心的同学可以根据我提及的概念,和名词,使用google和维基百科去深入了解。

Start!

1)学习UI之前,我们要首先明确两个概念:

渲染

显示

这是UI流程的两道工序,他们的分界点就是显存中的帧缓冲(framebuffer)。

当然我们讨论的大部分主题都是涉及渲染的。

至于显示,则很大一部分都是由硬件去完成的,知识点不是很多,所以我会另外写文章介绍。

2)渲染之图形和图像。

渲染其实就相当于我们显示生活中,画师用画笔在画布上画画。

只是我们这里,画师换成了CPU和G PU

画布换成了FrameBuffer.

画画的过程就相当于CPU和GPU通过大量渲染算法,最终生成可供显示的帧缓冲的内容。

渲染算法又分为

2D算法和3D算法。

学习渲染算法之前,要区分好两个比较容易混淆的概念:

图形

图像

以上两个概念可以联想到:

矢量图

位图

2D图形渲染主要是一些点、线、圆、椭圆等几何图形的处理,计算机通过2D图形渲染算法通过CPU和GPU (一般说来是通过 CPU).

2D图像渲染(其实这里说图像处理更恰当一点,因为图形处理是从无到有的,而图像一般是先通过照相摄像等到了原始的素材,再在这些原始的素材上,进行处理),主要包括一些alpha混合,锐化,非线性变换、覆盖和带遮罩的覆盖等。

2D图形和图像共有的一些算法包括scaling时候的一些插值算法。所谓scaling就是放大缩小。还包括旋转。

其实2D游戏,更多的使用的是2d图像处理,因为其使用了大量的背景和精灵图片,程序知识按照一定的逻辑,对其进行组合和移动,从而表现出丰富的游戏效果。比如,俄罗斯方块、超级玛丽、也包括那些常见的2D网游。基于覆盖算法,和TILES组合。

3D渲染算法则复杂得多!

3D渲染一般分为实时和非实时的两种:

实时渲染强调速度,每秒种必需渲染多少帧,一般适用于游戏。其模型逼真度一般比较粗略。

而非实时渲染则强调渲染的效果和模型的精细度。一般适用于影视制作,CG设计等。其使用的渲染算法如光线追踪,则是计算机能力的黑洞,消耗大量的计算资源。

从渲染我们须论及CPU和GPU的所承担的工作。

CPU本身就具体有丰富的多媒体指令集。如SSE,MMX .

我们这里需要理解SIMD这个概念。

CPU的多媒指令擅长于:加权运算,如alpha混合;位运算,如遮罩,覆盖。

所以Cpu的处理能力用于图像处理软件如Photoshop

以及一些2D游戏,这些游戏中大量存在这overlay 运算,这里我们就要理解好sprite的概念,游戏精灵。

而GPU是一种并行计算架构,擅长于数据量敏感的大批量矢量运算。显卡不仅可用于实时游戏,和计算机图形设计,而且还可以作为一种并行架构用于大批量的计算敏感的科学和数学用途。比如CUDA和OPENCL等。

理解了GPU是一种并行计算架构,有助于帮助我们学习显卡编程的同时也学会并行计算的一些基本思想。比如说命令处理器和管线的概念。

现在的显卡都设计成可编程的,也就是说,我们可以从主存里把我们编译好的程序,载入到显存里面,然后通过命令处理器,让GPU的并行处理器(DPP)从显存里取回指令和数据,进行相关的运算。

3)软件架构

扯了这么多渲染的话题。其实渲染特别是3D渲染是一个很博大的知识领域。我会在其他文章里详细叙述。现在我简单介绍和有关于UI的软件栈。

软件技术本来就是基于“栈”思想的,也就是纵向上的分层思想来让复杂的问题简单化。解决软件复杂度的问题。

我在这里建议大家,学习一个领域,一定要弄清楚这个领域的知识链,最好从最源头的地方去理解是一种非常科学的学习方法,在UI这个地方,包括网络和存储,我都简单大家采取子底向上的方法。也就是说:

UI最重要的一个设备是显示器,其地位相当于网卡之于网络,硬盘之于存储。

从显示器和显示卡了解起,能让你“无疑惑的”掌握UI的相关知识点,就相当于自底向上的打通知识链的每个知识环节,不留疑问,这样也能让你学习到的知识更加牢固。

a.最低层的是显示器的知识,现在一般都是针对液晶显示器的知识。包括显示器件、显示驱动器、显示控制器(这个一般做到显卡上)等有关于硬件的知识。

b.次之底层的就是显卡的知识,这部分知识一般通过显示编程,也就是显卡驱动得到体现。

c.X server的知识: 现在的手机系统一般不采用x Server.但是需要提供相关的窗口管理,和底层事件分发的功能。包括对多客户端的并发控制和资源互斥。

d. 图形库,这包括很多3d方面的图形库,比如OPENGL,  以及一些2D的图形库。

e.众多的Toolkit,也就是UI框架包括QT, GTK,WxWidget, 也包括基于JAVA的一些UI框架库

聊到这里,下面就是一些具体知识点的学习了,我会另外用文章详细的介绍各个软件层面的知识点,包括显卡编程,图形库,和UI框架,X server和窗口管理器的知识。

资料 | 白话深度学习与TensorFlow 下载地址:资料 | 白话深度学习与TensorFlow 内容简介 · · · · · · 本书基本独立成册,适用于零基础的初学者。 基础篇(第1~3章),讲解了机器学习、深度学习与实践的上下文知识,如基本的机器学习与深度学习算法,TensorFlow框架的安全与配置,简单的深度学习实践。该篇是阅读和实践的基石。 原理与实践篇(第4~8章),介绍“老牌”的深度学习网络的数学原理和工程实现原理,尤其是第4章,如果能基本读懂,后面的网络实现层面的问题基本都可以迎刃而解。涵盖BP网络、CNN、RNN的结构、思路 阅读详情

相关推荐

白话讲解三元组triplet损失函数及源码(FaceNet)

白话讲解三元组triplet损失函数(FaceNet) 对于Facenet进行人脸特征提取,算法内容较为核心和比较难以理解的地方在于三元损失函数Triplet-loss。此损失函数原理比较简单,但是如何实施及操作就有点难以理解,本篇博客希望能够以大白话讲解此损失函数,使得刚接触此损失函数的人能够更好的理解。 首先我们需要明确一下几点: (1)在深度学习训练中,我们需要尽可能的学习训练难样本,...

期待黎明的博客 1万+

Android开发学习之路--UI之初体验

之前都是学习Activity,对于布局都没有做过学习,这里就简单学习下吧。下面看下Android Studio下有哪些控件: 这里分为Widgets,Text Fields,Containers,Date & Time和Expert。 其中Widgets微件主要是一些简单地单一的功能,像TextView用来显示一些文字信息,Button用来触发按...

weixin_30781433的博客 266

[转帖]白话SAP HR

别名: SAP HCM(Human Capital Management) 国内典型用户: 三资部分: SAP, Volkswagen, Microsoft, Bosch, Siemens, AMD, AMECO, AT&S, Metro, Samsung, Basf, Shell, Tyco, 某些HRO供应商, ------内资部分: 联想, 万科, 招商银行, 浦发银行, 中石化,

老刘的SAP部落格 1430

浅谈我的UI设计之路

时光匆匆,进入UI学习已经快两个月了,这段时间过得很充实,因为有压力才有收获。 还记的刚刚学习手绘的时候,对于这个行业只有一个初步的认识,知道自己喜欢,但是真正学习的时候才发现,我要学习的东西还有很多很多,转行并非易事,但是既然决定,就要坚持。 学过了PS之后,感觉这款软件最主要的是要做到细心,灵感,耐心。 所谓细心是因为很多处理都是要很小心的,有的地方很小,有难进行处理,只有细心的人才能做的更...

weixin_34001430的博客 202

MVVM的理解(白话文本)

今天突然被问到 MVVM,大脑突然短路了,对啊,MVVM是什么设计理念来着,所以就有了这篇文章,从白话文的角度去理解 MVVM 加深印象(有错的地方欢迎指正)是一种软件架构设计模式,它结合了和的优点,并特别适用于构建用户界面(UI),尤其是在前端开发中。MVVM的核心思想是将界面逻辑与业务逻辑分离,通过数据绑定和事件驱动的方式实现视图(View)和模型(Model)之间的自动同步。

weixin_54198987的博客 958

Android四大组件详解(大白话

 1. Activity:负责展示用户界面,就像App的一个个“页面”,用户通过它与应用交互。   2. Service:在后台默默干活的打工人,比如播放音乐或下载文件,没有界面但能长时间运行。   3. BroadcastReceiver:像“收音机”一样接收系统或应用发出的广播消息,比如电量低或网络变化,然后做出响应。   4. ContentProvider:是“数据管家”,管理应用的数据并提供统一接口,让其他应用也能访问这些数据。  

m0_73804764的博客 1万+

用 Seed Evolving 模型,我把两千年的《庄子》做成了白话+漫画数字书院

【摘要】"华粹新学"项目利用字节跳动Doubao-Seed-Evolving大模型,将《庄子》等古籍转化为白话文+漫画的数字化阅读体验。该项目通过AI实现古籍分类、白话翻译、插画创作及网站开发,打造具有古典美学的数字书院界面。开发者采用分阶段实施策略,先从《庄子·逍遥游》单篇切入,逐步扩展至诸子百家思想体系。该模型凭借长文本处理、多模态输出及工程化协作能力,在UI设计、内容翻译和图文一致性上表现突出。项目采用GitHub+Vercel实现快速部署,未来计划开源并扩展更多古籍内容,旨在降低

阿信AI实验室 208

数据集下载-《白话机器学习算法》参考资料

这资料均部分来自书中提供 k均值聚类:Facebook用户性格特征 Stillwell, D., & Kosinski, M. (2012). myPersonality Project: http://dataminingtutorial.com. Kosinski, M., Matz, S., Gosling, S., Popov, V., & Stillwell,...

m0_37605792的博客 1057

白话机器学习

机器学习是什么 一段程序可以看作一连串从输入到输出的过程,无论是工程师还是程序员,我们都想通过设计来完成某种功能。以做一个网页为例,要画视觉图、UI 图,以及前端后端交互图等,我们要给计算机设计一套解决具体问题的流程。 而机器学习呢?机器学习是你不去设计,而是让计算机自己去解决,如同用一套模子去打磨出能够解决特定问题的武器。机器学习做的正是“自发能够产生解决问题的程序”的程序。一些机器学习的经...

博文视点(北京)官方博客 1425

白话SAP HR

转自http://www.itpub.net/viewthread.php?tid=795903&extra=page%3D2%26amp%3Bfilter%3Ddigest 白话SAP HRSAP HR别名: SAP HCM(Human Capital Management)国内典型用户:  三资部分: SAP, Volkswagen, Microsoft, Bosch, Siem

zhujjcn的专栏 2349

[SAP - HCM] 白话SAP HR

国内典型用户: 三资部分: SAP, Volkswagen, Microsoft, Bosch, Siemens, AMD, AMECO, AT&S, Metro, Samsung, Basf, Shell, Tyco, 某些HRO供应商, ------ 内资部分: 联想, 万科, 招商银行, 浦发银行, 中石化, 中石油, 中国电信(网通被Oracle抢了), 中海油, 养生堂, 同洲电子, 上海电力, 邯郸钢铁------ 子模块: PA (Personnel Administration) OM (O

M786924974的博客 1542

AsyncTask异步任务的“白话”介绍

与Handler相比,AsyncTask显得更简单粗暴一些。看到大神们对异步任务的说明都很详细,但是对于小白来说就有点难把握了。所以作为小白的代表,就来用“白话”简单说明一下AsyncTask的使用。 1.创建AsyncTask的子类,并指定参数(Params,Progress,Result)分别是:启动时的**输入参数类型**、后台**进度值的类型**、完成任务后**返回结果...

weixin_30332705的博客 137

Unity UGUI 为何无法裁剪特效?深度解析与解决方案(大白话生动有趣

你把一个ParticleSystem放在Canvas下,哪怕它在Mask/RectMask2D内部,粒子依然会“溢出”到裁剪区域外。你用TrailRenderer、LineRenderer画线,线条也不会被UI Mask裁剪。只有Image、Text等UI原生控件会被裁剪。UGUI的裁剪只对UI元素有效,因为它们走CanvasRenderer和Stencil机制。特效是3D对象,不走UI管线,也没有Stencil支持,所以无法被UI裁剪。解决办法。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 520

基于HarmonyOS的AI古文白话对照解读——从对齐到评估的全流程技术实践

本文介绍了基于HarmonyOS的AI古文白话对照解读系统全流程技术实践。系统采用Model-Service-Page三层架构,通过结构化提示词设计引导AI生成包含原文、白话翻译、重点注释和典故的JSON格式结果。关键创新点包括:1)精准的场景痛点分析;2)古籍竖排风UI设计;3)温度参数控制生成稳定性;4)数据驱动的前端展示。系统显著提升了古文解读效率,解决了传统方法效率低、个性化不足等问题。未来将优化模型性能、扩展多端适配和社交分享功能。该实践为AI技术在传统文化领域的应用提供了示范案例。

tyqtyq22的博客 193

白话理解什么是 CyclicBarrier

CyclicBarrier 就是一个“集合点”,所有线程都必须跑到这个点上,等大家都到齐了,才能一起继续往前走。问题回答什么是 CyclicBarrier?就是让多个线程在某个点上互相等待,等大家都到了,再一起继续执行。有什么用?协调多个线程同时进行下一步操作。比如并行任务、阶段式处理等。为什么叫“循环”?因为它可以反复使用,不是用一次就废了。适合什么场景?需要多线程协作完成阶段性任务的情况,比如并发计算、游戏同步开局等。

Java的专栏 422

Android Activity/View/Window/Dialog/Fragment 深层次关联(白话解析)

前言 很早就想就这几个UI 组件关系梳理一篇博客,但由于之前一些基础博客没梳理好,因此耽搁了。这些UI 组件不论对于初学者还是有一定开发经验的同学来说都是经常用到的,但是可能没有深究其中差异,而网上也没有统一梳理这方面知识的文章。 本篇文章尝试用简单的语言精确描述个中关联与差异,通过本篇文章你将了解到: 1、Window 与 Window.java/PhoneWindow.java 有啥关系? 2、Window 与 View 是如何关联上的? 3、View 与 ViewGroup 父与子嵌套交错? 4、A

3835

男的学UI好还是Java好_2020年了,男生适合学UI吗?男生学UI是否有有出路呢?

timg.jpg很多人都听说过UI设计,但是UI设计究竟是干什么的?其实UI设计师用专业话来讲就是用户界面设计师,用大白话来说就是手机上所有可以操作的程序都属于UI设计,其实UI设计到底难不难,那小编用自己的体会来给大家做一个最中肯的总结。大概可以这样来归类,对于在计算机行业和艺术行业的人来说,难度一般,对于没接触过计算机和艺术这方面的人来说是难的,为什么这样说?其实有一定的道理,首先先笼统的介绍...

weixin_39785524的博客 602

试读2-《白话C++ 练功篇》目录

先看一眼章节占比图: 由图可知: 本书(上册,即练功篇)最大一块的学习内容是第7章“语言”,即C++语言的语法、语义、逻辑表达等。它让你从什么都不会到会写程序解决绝大多数问题。 第2是第8章“面向对象”。它让你在面对更复杂、庞大的问题,并且往往存在多人共同合作编程时,有一个更好的的代码组织团队分工。 第3是第3章“感受(一)”。这是一个让你以快速的、高效地全面了解C...

第2学堂-专栏 2829
上一篇: 关于智能手机的背景知识
下一篇: 我的程序员之路
frommymind
博客等级 码龄15年 0粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值