- 《OpenGL ES Android 应用开发实践》,以及 Demo
- 其他相关文章:https://learnopengl-cn.github.io/
相关推荐
OpenGL学习记录4
Exercise 4:材质 要求: 1. 在练习3的基础中为每个茶壶加入不同的材质; 2. 将练习3中的点光源改为不同的颜色; 考察目的: 1. OpenGL中的材质的使用; 2. 理解光源和材质如何综合影响最终的光照结果; by/scu xx #include #include #define GLUT_DISA
我的OpenGL学习记录
第一天 今天学习OpenGL的第一天,记录下自己的感悟 首先,我是跟着台湾老四
opengl学习记录1
知识点导航:1绘制简单2D图形→2给图形上色→3使2D图形旋转→4绘制3D图形并使其旋转 准备工作:在visual studio中绘制图形,首先需要下载OpenGL里的glut函数库。 基础知识:在OpenGL绘制图形会用到坐标轴,从左到右是x轴,从下到上是y轴,从内到外是z轴。每条坐标轴取值范围是-1至1,单位是f。 具体实现及解说(这里只介绍绘制图形的主要代码部分): 1绘制简单2D图形 2给图形上色(两种方式:单一色调/颜色有改变) ps:在1的基础上继..
OPENGL ES学习记录
OPENGL ES学习记录
Netron显示自定义属性,按属性设置不同节点的颜色
本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系
ArcGIS Pro实战:用时空立方体分析共享单车轨迹数据(含3D可视化技巧)
本文详细介绍了在ArcGIS Pro中利用时空立方体技术分析共享单车轨迹数据的全流程。从数据预处理、构建时空立方体,到执行新兴时空热点分析,并最终实现动态3D可视化,手把手教你挖掘城市骑行活动的时空规律。文章重点解析了工具参数设置、常见报错解决方案,并提供了可复用的Python脚本,助力城市规划与交通研究者高效完成时空模式挖掘。
OpenGL学习记录01
(开放图形库)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程(API)。OpenGL的高效实现(利用了图形加速硬件)存在于,部分平台和。这些实现一般由提供,而且非常依赖于该厂商提供的硬件。本文接下来将使用GLFW库进行代码的编写。
华为MA5626 ONU开局配置实战:从零到业务就绪的完整命令手册
本文详细介绍了华为MA5626 ONU设备的开局配置全流程,包括物理连接、命令行初始化、业务VLAN划分、PoE功能配置及故障排查。通过实战命令手册,帮助网络工程师快速完成从设备上电到业务就绪的完整配置,特别适合FTTB场景部署。
openGL学习记录(其一)
首先,感谢傅老师的视频教程,下面给出地址 https://www.bilibili.com/video/av24353839 里面有着详细的搭建环境的内容,主要使用的是glfw和glew 第一课 根据视频学会了搭建环境,以及最简单的创建窗口 #define GLEW_STATIC//根据 glew32s.lib glew32.lib 链接库不同 ,可以选择是否打开这个宏 #include <...
echarts实现3D地图——map3D
【代码】echarts实现3D地图——map3D。
Vue3实战:从零构建ElementPlus后台管理系统全流程
本文详细介绍了从零开始使用Vue3和ElementPlus构建后台管理系统的全流程。内容涵盖环境准备、项目初始化、Vite配置、SCSS样式体系搭建、ElementPlus组件库引入与配置,以及封装可复用的SvgIcon组件进行图标管理,旨在帮助开发者快速搭建现代化、可维护的中后台应用。
记录最近图形和OpenGL 学习的进度
年初的时候写了一个光栅化的软件渲染器,能够绘制立方体、能够做颜色插值。纹理映射还没实现,基于NDC 坐标系的剪裁也没有做。虽然完成度没有那么高,但是让自己对线性代数和渲染管线的理解一下提升到了一个全新的高度。这里贴一个 github 仓库地址吧。 https://github.com/yunyou730/spinning.git 最近一段时间,开始重新学习 OpenGL. 学习的网站是 Learn OpenGL. 主要看的是中文版。https://learnopengl-cn.github.io/每个章节
详解电路设计中的RC电路
一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..
Android OpenGL 学习记录
一、Android中的OpenGL ES(v2.0) 1、java层实现 2、java + C++实现 3、C++层实现 ES 其实应该算是封装了,不然怎么有一个libEGL.so ,再有libGLESv2.so 这些库呢? 二、EGL和OpenGL的关系 注:上面的关系不仅限于Android平台,IOS、Windows等其他平台也是一样的! 如上图 EGL 就是 surface 和 openGL的桥梁。 三、创建C++项目并导入OpenGL库 1、可以使用NDK 2、在CM
在 SAP BTP Cloud Foundry 环境中开发 SAP HANA 的完整实战路线图
SAP HANA Cloud迁移路径解析:从本地到云原生的数据库现代化 本文梳理了SAP HANA在Cloud Foundry环境中的架构定位和实施路径,针对不同起点的项目提供迁移建议。核心内容包括: SAP HANA Cloud在Cloud Foundry中的双重角色:既作为平台服务提供数据库实例,又通过HDI容器管理MTA应用中的数据库工件。 针对四类典型项目起点的迁移策略: 绿地项目:直接采用CAP+SAP HANA Cloud组合 已有HANA service或XS advanced项目:需对照兼容
PyTorch生成式人工智能——VQ-VAE详解与实现
VQ-VAE (Vector Quantised-Variational AutoEncoder) 的核心思想就是将 VAE 的连续潜变量离散化。它通过学习一个码本 (Codebook) 来实现这一点,码本是一个包含有限个嵌入向量的字典。模型不是直接输出一个连续的潜在向量,而是从码本中找出与编码器输出最接近的嵌入向量来代替它。本节首先详细讲解 VQ-VAE 的技术原理,然后使用 PyTorch 从零开始实现 VQ-VAE 模型。
记录 OpenGL 学习网站
LearnOpenGL CNhttp://learnopengl.com 系列教程的简体中文翻译https://learnopengl-cn.github.io/ 待续。。。
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
openGl学习记录001
1、渲染:在电脑绘图中是指用软件从模型生成图像的过程,模型是用严格定义的语言或者数据结构对三维物体的描述,它包括几何、视点、纹理以及照明信息。将三维场景中的模型,按照设定好的环境、灯光、材质以及渲染参数。 2、openGL上下文(Context):指openGl 的状态 3、openGGL自身是一个巨大的状态机(state Machine):一系列的变量描述openGl此刻应当如何运行。 假设当我们想告诉openGL去画线段而不是三角形的时候,我们通过改变一些上下文变量来改变openGL 状态,从而告诉op
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
OpenGL学习问题记录
最近要用MFC框架及OpenGL制作一个简单的三维应用程序,于是买了本红宝书并参考Nehe教程源码实现其中的功能。由于本人水平很菜,在实际应用中还是遇到了许多细节性的问题。现在将遇到的问题及其解决方法总结如下,方便今后查阅并且可能或许会帮助那些遇到此类问题的菜鸟。 1. MFC窗口开启多重采样抗锯齿 至于如何判断窗口是否支持多重采样以及如何开启多重采样这里
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
OpenGL学习记录6
Exercise 6:放大镜功能 要求: 1. 在练习5的基础上,实现放大镜功能,放大场景中的任意部分; 2. 放大镜可以通过鼠标键盘进行控制; 考察目的: 1. 对OpenGL坐标系变换的理解;
OpenGL学习入门使用记录
OpenGL学习之路1----打开一个窗口 新建main.cpp #include<gl/freeglut.h> void render() { glClear(GL_COLOR_BUFFER_BIT); glutSwapBuffers(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitW
OpenGL学习记录1
Exercise 1:基本图元的绘制 要求: 1. 使用glBegin()/glEnd()方法绘制如下图元: a) 点 (点要有不同大小) b) 线段(线段要有不同宽度) c) 三角形(要分别以list, fans, stripes三种方式进行绘制) d) 矩形 2. 可以使用鼠标来对绘制图元进行旋转; 3.
OpenGL API学习记录 glBlitFramebuffer
glBlitFramebuffer 将FBO中指定的东西copy到指定地方去 配合bind函数使用 下面例子拷贝的颜色缓存 glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, intermediateFBO); glBlitFramebuffer(0, 0, S...
566



被折叠的 条评论
为什么被折叠?



