- 博客(158)
- 资源 (3)
- 收藏
- 关注
原创 OpenGL 坐标变换
将物体从自身的局部坐标系(如建模时的坐标)转换到世界坐标系。:将3D相机坐标压缩到2D投影平面(模拟人眼透视或正交投影):将世界坐标转换为以相机为原点的坐标系。(因为移动相机等价于反向移动整个世界):物体自身变换(移动/旋转/缩放)如果一个立方体的中心局部坐标是。(Clip Space),范围。视图矩阵实际上是相机变换的。后,它的世界坐标变为。
2025-08-01 16:16:27
305
原创 OpenGL Camera
矩阵是相机位置和旋转的逆矩阵(因为移动相机等价于反向移动整个世界)所有物体都会根据这个视角被重新计算坐标。它的本质是一个"相机坐标系变换矩阵"矩阵决定了你站在哪里(假设相机是你的眼睛,
2025-08-01 15:57:23
232
原创 OpenGL 深度测试/背面剔除
想象你有一个不透明的篮球,你只能看到它朝外的一面(外表面),看不到内壁。给每个像素发一个"身份证号"(深度值,也叫Z值),记录它离屏幕的远近。默认情况下,三角形的正面(朝外的面)和背面(朝内的面)都会被渲染。→ 如果新像素比原来的更近(Z值更小),就覆盖它(显示新的)。想象你在画一幅风景画,画里有远处的山、中景的树和近处的一只猫。→ 丢掉所有"看不见"的背面三角形(比如立方体的内侧面)。→ 如果更远(Z值更大),就丢掉它(不显示)。→ 解决"别画没用的"问题(像偷懒的裁缝)。
2025-07-30 16:29:38
215
原创 OpenGL 绘制流程
生成(glGen***)> 绑定(glBind***)> 填充(glBufferData)VAO 管理(记录)VBO 的配置。
2025-07-30 13:42:17
271
原创 OpenGL为什么要用4X4矩阵
让计算机能统一处理移动、旋转、缩放和透视。让平移失效(方向向量不受位置影响)。:3×3矩阵的平移项会乘以。齐次坐标是给普通3D坐标。代表“方向”,比如光线)代表“这是一个点”,
2025-07-28 09:28:44
191
转载 终于弄懂「报文、数据包、数据报和帧」的区别了!
报文由应用层产生,被称作报文(Message)/数据(Data),经过传输层的封装形成报文段(Segment)/数据报(Datagram),再经过网络层的封装形成分组/数据包(Packet),然后经过数据链路层的封装形成帧(Frame),最后在物理层以二进制比特流的方式完成数据传输。二是UDP(User Datagram Protocol)协议,即用户数据包协议,它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。将上层传输的数据添加一个头部和尾部,组成了帧。
2024-07-01 11:29:06
5840
1
转载 OSI模型
数据报是面向无连接的数据传输,采用数据报方式传输时,被传输的分组称为数据报。如传输层TCP的分组叫做数据段,UDP的叫做数据报。还有一种说法是数据报是网络层的传输基本单位,数据包是IP协议中完整的数据单元,由一个或多个数据报组成(待确认)数据包是网络层传输的数据单元。帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧,帧根据MAC地址寻址。还有一种说法是数据报是数据包的分组,一个完整的数据包由一个或多个数据报组成(待确认)报文包含了应用层的完整的数据信息。数据段是传输层的信息单元。
2024-05-30 10:08:59
127
原创 ServiceManager,SystemServer,SystemService,SystemServiceManager
SystemServer是Zygote调用forkSystemServer启动的第一个进程,system_server进程承载着整个framework的核心服务,例如: ActivityManagerService,PowerManagerService,DisplayManagerService,PackageManagerService,WindowManagerService,LauncherAppsService等80多个核心系统服务。除此之外,它还支持系统服务启动状态的通知及处理。
2024-05-15 09:45:45
487
转载 《道德经》全文和译文
第一章道可道(可以语言交流的道),非常道(非真正意义上的道);名可名(可以明确定义的名),非常名(非真正意义上的名)。无名天地之始(天地在开始时并无名称),有名万物之母(名只是为了万物的归属)。故常无欲以观其妙(因此常用无意识以发现其奥妙),常有欲以观其徼(常用有意识以归属其范围)。两者同出异名(两种思维模式同出自一个地方但概念却不相同),同谓玄之又玄(这就是玄之又玄的玄关窍)。众妙之门(它是打开一切奥妙的不二法门)。第二章天下皆知美之为美(天下皆知美...
2021-12-08 14:32:45
1848
原创 NLP的12个信条
没有两个人是一样的:每一个人都有自己的性格、能力、特点,你们在不同的环境里长大,经历了不同的人生,形成了不同的价值观和信念系统,因此对待同一个问题,你们会有不同的看法,你要学会接受和欣赏。你只有尊重别人的不同之处,别人才会尊重你独特的地方。 一个人不能控制另外一个人:每个人的信念、价值观、行为习惯等,只对自己有效,不应该强加给另外一个人。己所不欲勿施于人,己所欲也不能施于人。一个人不能改变另外一个人,一个人只能改变自己,影响别人。我们能推动的,只能是我们自己。当你想要改变另一个人的时候,你的悲惨命运就此开
2021-10-12 14:11:28
726
转载 无线电工作原理
看不见的无线电波通常跨越数百万公里的距离在空中传送音乐、谈话、图片和数据——这种无线电波每天都以成千上万种不同的方式进行! 虽然无线电波对人而言是看不见且完全不被察觉的,但它们却完全改变了整个社会。 无论是我们谈论的手机、婴儿监护器、无绳电话,还是成千上万种其他无线技术中的任何一种,它们都是通过无线电波进行通信的。下面是基于无线电波的一些常见技术:AM和FM无线电广播 无绳电话 车库门遥控器 无线网络 遥控玩具 电视广播 手机 GPS接收器 业余无线电 卫星通信...
2021-08-04 09:44:05
3746
原创 记事本_2021
Android 操作系统架构开篇http://gityuan.com/android/
2021-07-07 09:24:05
652
转载 Linux 源码编译详解
前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include<stdio.h>intmain(void){ fputs("Hello,world!\n",stdout); return0;}要先用编译器处理一下,才能运行。$gcctest.c$./a.outHello,world!对于复杂的项目,编译过程还必须分成三步。$./configure$make...
2021-02-05 14:35:51
3363
转载 Android Framework,HAL,Kernel调用关系
1 . JNI技术:1)JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)2)动态链接库(.so文件)是由NDK编译C/C++文件而成的。2 . HAL层开发:1)HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。2)硬件访问服务是在Framework层实现的。3)硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。4)硬件抽象层调用Linux Ker.
2021-01-22 11:44:03
3009
原创 Linux 学习(作者:Vamei 向大佬致敬)
走进Linux01.Linux的架构02.Linux文件管理03.Linux文件管理相关命令04.Linux文本流05.Linux进程基础06.Linux信号基础07.Linux进程关系08.Linux用户09.快速学习Bash深入Linux01.Linux开机启动02.Linux从程序到进程03.Linux进程间通信04.Linux并发与同步05.Linux的调度器06.Linux的内存管理07.Li...
2021-01-21 08:38:24
217
转载 半导体元件,芯片,处理器,CPU,MCU的区别
1、半导体元件与芯片的区别按照国际标准分类方式,在国际半导体的统计中,半导体产业只分成四种类型:集成电路,分立器件,传感器和光电子。所有的国际半导体贸易中都是分成这四类。上面说的这四类可以统称为半导体元件。其中集成电路(Integrated Circuit, 简称IC),又叫做芯片(chip),所以说集成电路,IC,芯片,chip这四个名字都是指一个东西。但是,在我们通常的新闻中,没有分的这么清楚,他们会把半导体元件统统叫做集成电路(比如也会把分立器件也叫做IC,芯片),所以大家要根据前后文的意
2021-01-13 13:25:27
15882
转载 CPU,GPU,TPU,NPU都是什么?
什么是CPU?中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速及实现它们缓冲处理器之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单
2021-01-13 13:14:20
1303
转载 Shell中的内建命令,函数,外部命令
Shell识别三种基本命令:内建命令、Shell函数以及外部命令:1)内建命令就是由Shell本身所执行的命令。一种是由于其必要性才内建的,例如cd用来改变目录。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.2)Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。3)外部命令就是由Shell副本(新的进程)所执行的命令,基本的过程如下: a. 建立一个新的进程。此进程即为..
2021-01-08 09:30:21
260
转载 Linux交换空间(swap space)
每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识。下面的所有例子都在ubuntu-server-x86_64 16.04下执行通过什么是swap?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进.
2021-01-08 08:50:03
2060
转载 C语言 函数后面加const作用
void function() const{}通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误// test1107.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class a{ int num;public: a(){ in
2020-12-30 10:26:22
1388
转载 前端框架库汇总
VueVue2.0:Vue2.0 文档 Vue3.0:Vue3.0 文档 Vue-Router:Vue.js 官方的路由管理器。 Vuex:Vue.js 应用程序开发的状态管理模式。 Element-UI:饿了么UI组件库 View UI:一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。 Vuetify:用于构建功能丰富、快速的应用程序。 Buefy-UI: 简单且轻量的UI库。 Quasar: 编写代码一次并同时将其部署为网站、移动应用和/或Elect
2020-12-09 08:54:34
1139
原创 C语言 ‘\0‘的含义
'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了'\0'转义字符,则其在输出时可能会出现乱码问题。'\0'转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码为48,'\0'转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义。'\0'是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一
2020-12-04 10:00:32
17974
转载 C语言 结构体四种初始化方法
定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};需要注意对应的顺序,不能错位。方法二:定义后逐个赋值struct InitMember test;test.first = -10;test.sec..
2020-12-04 09:42:44
1011
转载 Linux 内核空间与用户空间
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)1 . 内核空间和用户空间对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间.
2020-12-03 13:57:47
245
转载 多CPU,多核,多进程,多线程
当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发。首先,要先了解几个概念:进程是程序的一次执行。 进程是资源分配的基本单位(调度单位)。 一个进程可以包括多个线程。 在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度
2020-12-02 10:12:50
660
转载 寄存器用途和英文全称
寄存器类别和用途基本程序执行寄存器(basic program execution registers)。8 个通用寄存器,6 个段寄存器,一个处理器状态标志寄存器(EFLAGS),和一 个指令指针寄存器(EIP)。EAX、AX、AH和AL一些寄存器的组成部分可以处理 8 位的值。例如,AX 寄存器的高 8 位被称为 AH,而低 8 位被称为 AL。同样的重叠关系也存在于 EAX、EBX、ECX 和 EDX 寄存器中:32 位 16 位 8 位(高) 8 位(低)
2020-12-01 13:12:57
4838
1
转载 计算机是如何执行程序的
转载自一位大神的文章:http://blog.chinaunix.net/uid-28032128-id-3953048.html我最近在写一本关于操作系统的书,下面的章节原本是放在本书的开始,后我感觉不好就扔了,今天把它帖到这里吧。你或许已经卷起了衣袖,或许在摩拳擦掌,正准备大干一场,打一场硬仗。年轻人嘛,行事总是风风火火的。但不是笔者扫你的兴,泼你冷水,在我们写代码之前还有很长一段路要走,要静下心来。如果写操作系统是一次旅行的话,那么千万不要错过沿途的风景……我们先来看看本章节都有些什么,.
2020-11-30 14:57:57
2044
转载 CPU如何执行代码
CPU的内部结构 我们都知道CPU是一台电脑的核心部件,所有的程序都是通过它运行的,那么CPU是如何让一个程序跑起来的呢?我们今天就来一起简单的做个了解,首先看下CPU的基本结构程序流程假如现在我们有个两个数相加的程序,当你点击运行这个程序时,系统会将这个程序复制到内存中。程序中的这些数据和指令会被存储在一个一个小的“内存空间”,并给每个空间一个“门牌号”,也就是内存中的地址。系统将程序复制到内存中后,会将程序计数器设定到程序运行的开始位置(假设这个程序的开始位...
2020-11-30 10:30:38
2052
转载 汇编语言各“标志位”含义
一、运算结果标志位1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇
2020-11-27 15:33:55
5456
转载 嵌入式与单片机区别
如果可以按照面向对象的思想理解的话:可以说嵌入式是父类,嵌入式系统是抽象继承类,银行自助取款机是具体子类,郑州轻院正门口旁工行自助1号取款机是对象。如果这样,这个概念还不清楚的话!就来个生活中的比方:大猩猩吃香蕉,一个大猩猩要吃一棵大树上的香蕉,自己使劲跳就是够不着,于是找来了几个箱子,垫下脚就能够在树上摘下可口的香蕉了。为了做到吃香蕉这件事,大猩猩做了这么一件事,找来几个箱子,摞起来,然后摘到了香蕉,那么大猩猩和箱子是否就构成了摘香蕉的这么一个系统。如果大猩猩找来的是梯子的话,那是不是能够摘到更多好吃
2020-11-27 15:27:49
454
转载 /system/app 和 /system/priv-app 有什么区别?
关于目录/system/priv-app中包括 Launcher,SystemUI,SettingsProvider 等,均是系统的核心应用,这些应用能使用系统级的权限,4.4 之前的所有/system/app下的软件都能使用系统级的权限,Google 这样做是把内置到系统的应用也做个级别的区别。放到/system/priv-app下的应用比放到/system/app下的应用可以声明获得更多的权限。在Android中每个应用都有自己的权限声明,比如要使用系统限制的权限(例如andro...
2020-11-18 15:04:38
16474
2
原创 SystemUI中全局弹窗SystemUIDialog
/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http:/.
2020-11-16 11:26:34
1578
转载 Android Build系统要点总结
在之前的公司参与项目开发的时候,虽然不负责系统固件编译脚本的维护,但为了工作的过程中更加的顺利,便学习了一下Android的Build系统。本文就是对之前的学习做个总结。系统版本:AOSP 5.1.11. Android Build 系统核心Android Build系统的核心位于源码目录的build/core,该目录下有几十个mk文件以及若干个shell脚本。通常是使用下面的命令来编译Android系统:$ . build/envsetup.sh$ lunch$ makeen
2020-11-12 09:36:24
1103
原创 Android Dialog去边距透明
AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.show();WindowManager.LayoutParams params = dialog.getWindow().getAttributes();params.width = 180;params.height = 180;Window dialogWindow = dialog.getWindow();// 必须使用这个方法,不能使用dialog.s.
2020-11-11 10:36:13
746
pingtools.apk
2020-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人