-
10、OpenGLES GLKit 详讲
目录 GLKit 使用GLKit渲染图片GLKit一、简介GLKit 框架的设计⽬标是为了简化基于OpenGL / OpenGL ES 的应用开发.它的出现加快OpenGL ES或OpenGL应⽤程序开发。 使用数学库,背景纹理加载,预先创建的着⾊器效果,以及标准视图和视图控制器来实现渲染循环。GLKit框架提供了功能和类,可以减少创建新的基于着色器的应用程序所需的⼯作量,或者⽀持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或⽚段处理的现有应用程序.GLKView ...…
-
9、OpenGL ES初探
参考文章:OpenGL ES初探(上)目录 OpenGL ES简介 顶点着色器 图元装配与光栅化 片元着色器 逐片段操作(了解) EGL (Embedded Graphics Library )(了解)OpenGL ES简介OpenGL ES (OpenGL for Embedded Systems) 是以⼿持和嵌入式为目标的高级3D图形应用程序编程接口(API).OpenGL ES 是⽬前智能手机中占据统治地位的图形API.支持的平台: iOS, Andriod , Bl...…
-
8、3D数学
目录 向量与矩阵 矩阵的几何意义向量与矩阵关于向量与矩阵的概念就不多做介绍了,我们这里重点讨论向量与矩阵在OpenGL中的几何意义及应用。一、向量向量分为行向量与列向量1.等式中使用列向量形式更好2.线性代数书中使用列向量3.多本计算机图形学都是使用的列向量4.OpenGL 使⽤的是列向量二、矩阵1、是否能够相乘2、矩阵相乘计算矩阵的几何意义一、向量的位移向量 [1,-3 -4] 是如果实现位移?位移 [1,0,0], 随后位移[0,-3,0], 最后位移[0,0,4]二、向量的旋转和...…
-
7、OpenGL纹理(下)
目录 Mip贴图 各向异性过滤Mip贴图一、什么是Mip贴图?Mip贴图(多级渐远纹理)Mip贴图是一种功能强大的纹理技巧。他可以提高渲染性能同时可以改善场景的显示质量。想象一下,假设我们有一个包含着上千物体的大房间,每个物体上都有纹理。有些物体会很远,但其纹理会拥有与近处物体同样高的分辨率。由于远处的物体可能只产生很少的片段(远处的物体看起来很小,只需要很少的片段(像素)),OpenGL从高分辨率纹理中为这些片段获取正确的颜色值就很困难,因为它需要对一个跨过纹理很大部分的片段只拾取一...…
-
6、OpenGL纹理(上)
目录 纹理 纹理坐标纹理 参考文章:OpenGL 纹理 常用API 解析一、什么是纹理纹理只是一种能够应用到场景中的三角形上的图像数据。它经过过滤的纹理单元(texel,相当于基于纹理的像素)填充到实心区域简单说,你加载的图片,来到底层都会变成纹理处理.二、纹理常用API接口1、纹理对象纹理对象允许我们一次加载一个以上纹理状态(包含纹理图像)。以及在它们之间进行快速切换。纹理状态是由当前绑定的纹理对象维护的。而纹理对象是用一个无符号整数进行标识的。//使用函数分配纹理对象//指定纹理...…
-
5、OpenGL综合案例训练
目录 案例训练 重点说明案例训练案例代码如下/** cameraFrame 移动的公转自转 物体移动: 物体本身移动 物体坐标系移动 观察者移动 */#include "LCDay5.hpp"#include "GLTools.h"#include "GLShaderManager.h"#include "GLFrustum.h"#include "GLBatch.h"#include "GLMatrixStack.h"#include "GLGeometryTran...…
-
4、OpenGL基础变化
目录 平移、旋转、缩放 理解变换平移、旋转、缩放下面只贴出了关键代码,仅供参考static void SetupRC(){ //1.初始化 glClearColor(0.0f, 0.0f, 1.0f, 1.0f ); shaderManager.InitializeStockShaders(); //2.加载三角形 squareBatch.Begin(GL_TRIANGLE_FAN, 4); squareBatch.CopyVertexDat...…
-
3、OpenGL渲染技巧解析
目录 正背面剔除 深度测试 裁剪 颜色混合正背面剔除一、出现问题的原因在绘制3D场景的时候,我们需要决定哪些部分是对观察者可见的,或者哪些部分是对观察者不可见的.对于不可见的部分,应该及早丢弃.例如在⼀个不透明的墙壁后,就不应该渲染.这种情况叫做”隐藏⾯消除”(Hidden surface elimination).没有剔除背面导致显示出现问题二、如何解决如果我们能以某种⽅式去丢弃这部分数据就可以解决该问题,同时OpenGL渲染的性能也可提⾼超过50%。通过正背⾯面剔除(Face ...…
-
2、OpenGL图元解析
目录 图元 渲染管线流程解析 固定管线着色器介绍图元 参考文章:OpenGL 图元渲染管线流程解析 参考文章:OpenGL 渲染管线流程解析这张图对于想要掌握OpenGL的开发者非常重要.而且第一次看也许大家对于它的理解会比较薄. 希望大家能后期能够多看这个图. 因为我们在处理任何图形渲染,都是依据它. 基于OpenGL 封装的框架也都是遵循这个图的规则.一、客户端,服务端1、接下来,我们来了解2个非常重要的端.这里的客户端和服务端并不是我们常说的iOS/安卓并称为客户端,后台称...…
-
1、OpenGL初探
目录 图形API简介 OpenGL专业名词解析 坐标系统 图片的解压缩和渲染过程图形API简介一、图形APIOpenGL(Open Graphics Library) 是一个跨编程语言、跨平台的编程图形程序接口,它将计算机的资源抽象为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令OpenGL ES(OpenGL for Embedded Systems) 是OpenGL三维图形API的子集,针对手机、PAD、和游戏主机等嵌入式设备而设计,去除了许多不必要和...…
-
待整理
目录 待整理 待整理2 待整理3待整理一、在原生端实现H5页面长按下载图片的功能js注入实现: 注入一段js代码,这段代码监控长按事件 检测到长按的元素是IMG时,通过jsbridge调用原生回调将url传回原生 原生回调内下载图片并保存到本地- (void)addLongPressSaveImgForXiaoC:(WKWebViewConfiguration*)configuration {// NSString *scriptSource = @"\// ...…
-
待整理
目录 clashx配置 Github Token jekyll Oh my zsh Open terminal 组件化clashx配置 参考文章:https://free886.herokuapp.com/clash 参考文章:http://www.ddooo.com/softdown/202194.htmGithub Token 参考文章:https://cloud.tencent.com/developer/article/1861466 参考文章:https://...…
-
Mac中 Harmony 环境配置
目录 环境配置流程环境配置流程1、下载 去鸿蒙官网下载 Deveco Studio 解压后安装2、配置鸿蒙相关的环境变量# 配置环境变量 (SDK, node, ohpm, hvigor)export TOOL_HOME=/Applications/DevEco-Studio.app/Contents # mac环境export DEVECO_SDK_HOME=$TOOL_HOME/sdk # command-line-tools/sdkexport PATH=$TOOL_HOME/t...…
-
Mac中 Flutter 环境配置
目录 环境配置流程 遇到的问题环境配置流程在配置flutter环境之前,先配置好xcode环境 和 Android Studio环境,这两个配置好之后flutter的环境配置会顺利很多。下载flutter SDK//将仓库克隆到合适的目录下git clone https://github.com/flutter/flutter.git切分支切换分支到 stable,这是最新的稳定版本。 如果想使用特定版本,请将 stable 分支 reset 到指定的tag处即可。 注意:不...…
-
Mac中 Android 环境配置
目录 介绍 Android SDK 的安装 Configuration 的使用 关于Gradle Android Studio 使用技巧介绍Android SDK(Software Development Kit)Android SDK 是为开发 Android 应用所提供的一套工具和库。它包含了用于开发、构建、调试、测试和部署 Android 应用所需的所有工具和 API。SDK 提供了多种工具,包括命令行工具、模拟器、平台库等。主要作用: 构建和编译应用:包含构建工...…
-
Mac中 Java 环境配置
目录 什么是 Java 环境? 安装 Java 环境 ARM架构兼容Java8 关于Maven什么是java环境?Java 环境是指用于开发、编译、运行 Java 程序所需要的各个工具和库的集合。几个核心的概念: JVM、 JRE、 JDKJVM全称 Java Virtual Machine 叫做 Java 虚拟机。 用来 运行Java 字节码 (由 javac 编译器生成),并将其转换为特定操作系统和硬件平台上的机器代码。 它使得 Java 程序具有平台无关性。J...…
-
Mac中 Node 环境配置
目录 安装 配置安装一、介绍Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,使得开发者可以在服务器端运行 JavaScript,而不仅仅是在浏览器中。 它提供了许多用于构建快速和可扩展网络应用的功能,常用于开发 Web 服务器、API、命令行工具等。跨平台支持:Node.js 可以在 Windows、Linux 和 macOS 上运行 npm(Node Package Manager):Node.js 自带了 npm,这是一个包管理工具,可...…
-
Mac中 Homebrew 配置
目录 安装 配置安装Homebrew 是 macOS 上的包管理工具。安装命令:// 这个命令会通过 curl 下载并执行 Homebrew 的安装脚本/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"配置安装完成后,终端可能会显示一条消息,告诉你需要将 Homebrew 的路径添加到你的 shell 配置文件中(例如 .zshrc 或 .bash...…
-
Mac中 Chrom 使用
目录 ChromChrom谷歌首页快捷方式变为一行的解决办法 谷歌首页快捷方式变为一行的解决办法 首先在浏览器网址地方输入:chrome://flags/或chrome://flags/进入到实验性菜单 接着我们搜索 M129 flags,我们将它打开,这时候浏览器会提示重启,我们正常重启就好了。 重启后,我们再进入这个菜单,接着搜索NTP Modules Redesigned,再将它关闭,即可解决 行者常至,为者常成!…
-
Mac中 Instruments 使用
目录 InstrumentsInstruments 参考文章:Instruments工具介绍与使用 行者常至,为者常成!…