coco2dx shader内置变量和函数

Shader 常用函数总结 阅读详情

1、uint CreateShader(enum type) : 创建空的shader object;

   type: VERTEX_SHADER,

2、void ShaderSource(uint shader, sizeicount, const **string, const int *length):加载shader源码进shader object;可能多个字符串

3、void CompileShader(uint shader):编译shader object;

   shader object有状态 表示编译结果

4、void DeleteShader( uint shader ):删除 shader object;

5、void ShaderBinary( sizei count, const uint *shaders,
enum binaryformat, const void *binary, sizei length ): 加载预编译过的shader 二进制串;

6、uint CreateProgram( void ):创建空的program object, programe object组织多个shader object,成为executable;

7、void AttachShader( uint program, uint shader ):关联shader object和program object;

8、void DetachShader( uint program, uint shader ):解除关联;

9、void LinkProgram( uint program ):program object准备执行,其关联的shader object必须编译正确且符合限制条件;

10、void UseProgram( uint program ):执行program object;

11、void ProgramParameteri( uint program, enum pname,
int value ): 设置program object的参数;

12、void DeleteProgram( uint program ):删除program object;

13、shader 变量的qualifier:

    默认:无修饰符,普通变量读写, 与外界无连接;

    const:常量 const vec3 zAxis = vec3(0.0, 0.0, 1.0);

    attribute: 申明传给vertex shader的变量;只读;不能为array或struct;attribute vec4 position;

    uniform: 表明整个图元处理中值相同;只读; uniform vec4 lightPos;

    varying: 被差值;读写; varying vec3 normal;

    in, out, inout;

14、shader变量的精度:

    highp, mediump, lowp

 

15、shader内置变量:

    gl_Position: 用于vertex shader, 写顶点位置;被图元收集、裁剪等固定操作功能所使用;

                 其内部声明是:highp vec4 gl_Position;

    gl_PointSize: 用于vertex shader, 写光栅化后的点大小,像素个数;

                 其内部声明是:mediump float gl_Position;

    gl_FragColor: 用于Fragment shader,写fragment color;被后续的固定管线使用;

                  mediump vec4 gl_FragColor;

    gl_FragData: 用于Fragment shader,是个数组,写gl_FragData[n] 为data n;被后续的固定管线使用;

                  mediump vec4 gl_FragData[gl_MaxDrawBuffers];

    gl_FragColor和gl_FragData是互斥的,不会同时写入;

    gl_FragCoord: 用于Fragment shader,只读, Fragment相对于窗口的坐标位置 x,y,z,1/w; 这个是固定管线图元差值后产生的;z 是深度值; mediump vec4 gl_FragCoord;

    gl_FrontFacing: 用于判断 fragment是否属于 front-facing primitive;只读;

                    bool gl_FrontFacing;   

    gl_PointCoord: 仅用于 point primitive; mediump vec2 gl_PointCoord;

16、shader内置常量:

    const mediump int gl_MaxVertexAttribs = 8;

    const mediump int gl_MaxVertexUniformVectors = 128;

    const mediump int gl_MaxVaryingVectors = 8;

    const mediump int gl_MaxVertexTextureImageUnits = 0;

    const mediump int gl_MaxCombinedTextureImageUnits = 8;

    const mediump int gl_MaxTextureImageUnits = 8;

    const mediump int gl_MaxFragmentUnitformVectors = 16;

    const mediump int gl_MaxDrawBuffers = 1;

17、shader内置函数:

    一般默认都用弧度;

    radians(degree) : 角度变弧度;

    degrees(radian) : 弧度变角度;

    sin(angle), cos(angle), tan(angle)

    asin(x): arc sine, 返回弧度 [-PI/2, PI/2];

    acos(x): arc cosine,返回弧度 [0, PI];

    atan(y, x): arc tangent, 返回弧度 [-PI, PI];

    atan(y/x): arc tangent, 返回弧度 [-PI/2, PI/2];

   

    pow(x, y): x的y次方;

    exp(x): 指数, log(x):

    exp2(x): 2的x次方, log2(x):

    sqrt(x): x的根号; inversesqrt(x): x根号的倒数

   

    abs(x): 绝对值

    sign(x): 符号, 1, 0 或 -1

    floor(x): 底部取整

    ceil(x): 顶部取整

    fract(x): 取小数部分

    mod(x, y): 取模, x - y*floor(x/y)

    min(x, y): 取最小值

    max(x, y): 取最大值

    clamp(x, min, max):  min(max(x, min), max);

    mix(x, y, a): x, y的线性混叠, x(1-a) + y*a;

    step(edge, x): 如 x<edge 则0.0, 否则 1.0

    smoothstep(edge0, edge1, x): threshod  smooth transition时使用。 edge0<x<edge1时平滑差值,x<=edge0时为0.0, x>=edge1时为1.0

   

    length(x): 向量长度

    distance(p0, p1): 两点距离, length(p0-p1);

    dot(x, y): 点积,各分量分别相乘 后 相加

    cross(x, y): 差积,x[1]*y[2]-y[1]*x[2], x[2]*y[0] - y[2]*x[0], x[0]*y[1] - y[0]*x[1]

    normalize(x): 归一化, length(x)=1;

    faceforward(N, I, Nref): 如 dot(Nref, I)< 0则N, 否则 -N

    reflect(I, N): I的反射方向, I -2*dot(N, I)*N, N必须先归一化

    refract(I, N, eta): 折射,k=1.0-eta*eta*(1.0 - dot(N, I) * dot(N, I)); 如k<0.0 则0.0,否则 eta*I - (eta*dot(N, I)+sqrt(k))*N

   

    matrixCompMult(matX, matY): 矩阵相乘, 每个分量 自行相乘, 即 r[i][j] = x[i][j]*y[i][j];

                               矩阵线性相乘,直接用 *

    

    lessThan(vecX, vecY): 向量 每个分量比较 x < y

    lessThanEqual(vecX, vecY): 向量 每个分量比较 x<=y

    greaterThan(vecX, vecY): 向量 每个分量比较 x>y

    greaterThanEqual(vecX, vecY): 向量 每个分量比较 x>=y

    equal(vecX, vecY): 向量 每个分量比较 x==y

    notEqual(vecX, vexY): 向量 每个分量比较 x!=y

    any(bvecX): 只要有一个分量是true, 则true

    all(bvecX): 所有分量是true, 则true

    not(bvecX): 所有分量取反

   

    texture2D(sampler2D, coord): texture lookup

    texture2D(sampler2D, coord, bias): LOD bias, mip-mapped texture

    texture2DProj(sampler2D, coord):

    texture2DProj(sampler2D, coord, bias):

    texture2DLod(sampler2D, coord, lod):

    texture2DProjLod(sampler2D, coord, lod):

    textureCube(samplerCube, coord):

    textureCube(samplerCube, coord, bias):

    textureCubeLod(samplerCube, coord, lod):  

转自 http://blog.youkuaiyun.com/zj8792612/article/details/16116145

一文掌握OpenGL的shader内置函数 OpenGL ES有大量的GLSL内置函数,包括:三角函数、指数函数、通用函数、浮点函数、几何函数、矩阵函数、矢量关系函数、纹理函数、原子函数、图像函数、插值函数、着色器函数等。 阅读详情

相关推荐

GLSL内置变量和内置函数

shader内置变量: gl_Position: 用于vertex shader, 写顶点位置;被图元收集、裁剪等固定操作功能所使用;其内部声明是:highp vec4 gl_Position; gl_PointSize: 用于vertex shader, 写光栅化后的点大小,像素个数; 其内部声明是:mediump float gl_PointSize; gl_FragColor: 用于Fragment shader,写fragment

lqzer的博客 3724

GLSL中的各种接口变量总结

1、uint CreateShader(enum type) : 创建空的shader object;    type: VERTEX_SHADER, 2、void ShaderSource(uint shader, sizeicount, const **string, const int *length):加载shader源码进shader object;可能多个字符串 3、

GQB的专栏 5602

cocos2dx 2.1.4 shader解析2-CCGLProgram分析

首先分析:CCGLProgram

阿祖的博客 4570

Shader内置函数(方便自己看)

一、内置包含文件   Unity中有类似于C++的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含进来 这样我们就可以使用Unity为我们提供的一些非常好用的函数、宏和变量。 例如:#include"UnityCG.cginc" 包含文件的位置:根目录\Editor\Data\CGIncludes 知识点1:以下是Unity中常用包含文件:   文件...

SnoopyNa2Co3的博客 3117

Cocos2d-x shader学习2: 模糊(Blur)

模糊效果在游戏中经常会用到,有的为了突出前景会把背景给模糊化,有的是因为一些技能需要模糊效果。模糊是shader中较为简单的一种应用。cocos2dx 3.x给的demo中,就有sprite的模糊的效果。 先说下这个模糊算法的大致思路,我们在片段着色器中可以得到当前像素点的颜色值,要想让这个颜色变得模糊,就要让它与它周围的像素点的颜色稍微接近一点,那么我们就需要拿到这个像素点周围的像素点的颜色值,我

皓月微风 7099

【cocos shader 002】开发如何使用GLProgram shader编程

先看效果 废话不多说,直接上代码,本篇做一个图片变灰的特效,打开cocos2dx-lua的helloWorld工程,在MainScene的onCreate函数里添加如下代码 --新建一张默认的图片 local img = display.newSprite("HelloWorld.png") :move(display.center) :addTo(s...

刀客 1433

cocos2dx的shader的工作流程

本篇文章旨在记录cocos2dx中的shader文件是如何组织和编译的,理清脉络后,更容易对shader进行扩展和自定义。 shader使用的文件包括GLProgram 、GLProgramState、GLProgramCache、GLProgramStateCache GLProgramCache文件中的reloadDefaultGLPrograms()函数会编译所有的cocos内置的shader cocos的shader文件定义在cocos/renderer下面,是用const char定义的全局变量,

jeepxbf的博客 680

ROS小车定位实战:如何用rf2o_laser_odometry和robot_localization实现精准里程计(附避坑指南)

本文详细介绍了如何利用rf2o_laser_odometry和robot_localization在ROS中实现高精度小车定位。通过激光里程计与状态估计的黄金组合,解决室内移动机器人的定位难题,包括环境搭建、算法配置、多传感器融合策略及实战避坑指南,帮助开发者快速部署稳定可靠的定位系统。

weixin_29081703的博客 287

Cocos2dx--使用Shader

Cocos2dx的Shader架构 Cocos2dx的Shader由GLProgram、GLProgramState、GLProgramCache、GLProgramStateCache组成。 GLProgram是Cocos2dx对Program的封装,一般提供一些静态方法,被多个节点复用。而GLProgramState是对GLProgram的封装,提供更加便捷的操作接口,内部记录了Unifo...

疯狂的程序员 7578

PT32F030与MT6826S SPI通讯实战:从硬件连接到数据交互全流程解析

本文详细解析了PT32F030与MT6826S通过SPI通讯的全流程,包括硬件连接、电路设计、SPI外设初始化配置以及数据交互协议实现。通过实战案例和代码示例,帮助开发者快速掌握PT32F030与MT6826S的SPI通讯技术,实现精准的角度和速度数据采集。

weixin_29189373的博客 420

使用【阿里云百炼】搭建自己的大模型

本文介绍阿里云百炼大模型平台,其为企业级服务平台,融合通义千问等模型,支持多模态能力,提供一站式工具降低开发门槛。重点讲解智能体应用及大模型搭建步骤,含进入创新应用界面、选模型配参数、输指令、导数据、加载知识库、获取API Key、加样例库、配置MCP,还提及模型调试与多平台发布,并附试用链接,助力企业与开发者快速搭建适配业务的AI模型。

Larry的博客 4738

Cocos2dx-OpenGL ES2.0教程:编写自己的shader(2)

在上篇文章中,我给大家介绍了如何在cocos2d-x里面绘制一个三角形,当时我们使用的是cocos2d-x引擎自带的shader和一些辅助函数。在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点缓冲区对象)和VAO(顶点数组对象)的基本用法。 在编写自己的shader之前,我觉得有必要提一下OpenGL渲染管线。 理解OpenGL渲染管线,对于学习OpenGL

人生如游戏,不如做游戏, 9351

基于STM32F103C8T6单片机设计CAN接口8路继电器控制板硬件(原理图+PCB)+软件源码

基于STM32F103C8T6单片机设计CAN接口8路继电器控制板硬件(原理图+PCB)+软件源码,仅供学习及设计参考。

GJZGRB的博客 1417

cocos中如何让背景模糊_Cocos2d-x shader学习2: 模糊(Blur)

模糊效果在游戏中经常会用到,有的为了突出前景会把背景给模糊化,有的是因为一些技能需要模糊效果。模糊是shader中较为简单的一种应用。cocos2dx 3.x给的demo中,就有sprite的模糊的效果。先说下这个模糊算法的大致思路,我们在片段着色器中可以得到当前像素点的颜色值,要想让这个颜色变得模糊,就要让它与它周围的像素点的颜色稍微接近一点,那么我们就需要拿到这个像素点周围的像素点的颜色值,我...

weixin_39738667的博客 692

康耐视 VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

zhihuishuxia__的博客 2065

新手必看:用Simulink搭建飞跨电容三电平逆变器的完整流程(附SPWM配置技巧)

本文详细介绍了使用Simulink搭建飞跨电容三电平逆变器(FCNPC)的完整流程,特别聚焦于SPWM调制策略的配置技巧。通过模块拆解、参数设置和波形优化的三步法,配合实操截图和典型参数表,帮助新手快速掌握多电平逆变器的建模与仿真技能,适用于电力电子学习和项目开发。

weixin_30664051的博客 287

OpenGLES: uniform变量传参

uniform是shader里面的一种变量,它是由外部程序设置进来的,除非你显式地调用函数来修改这个uniform的值,否则它的值恒定不变。 quick是通过GLProgramState类提供的接口来传值的,下面列出相关方法: -------------------------------- -- @overload self, int, vec2_table         -- @ov

Katichar 2711

AI算力网络与通信领域QoS保障的测试方法

在当今数字化时代,AI技术蓬勃发展,AI算力网络应运而生。它将分布在不同地理位置的算力资源进行整合,以高效地支持各种AI应用,如深度学习训练、智能图像识别等。而通信领域则是信息传输的基石,确保数据能够准确、快速地在不同节点之间传递。QoS保障在通信领域至关重要,它可以确保不同类型的业务(如语音通话、视频会议、在线游戏等)获得与其需求相匹配的服务质量。在AI算力网络中,QoS保障同样不可或缺,因为AI任务对网络的带宽、延迟、可靠性等指标有严格要求。

AI算力网络与通信的博客 529

Cocos2d-lua 初识shader之五:定时器

在GLProgram::setUniformsForBuiltins函数中有下面代码: if(_flags.usesTime) { // This doesn't give the most accurate global time value. // Cocos2D doesn't store a high precision time va

哎!小本本上八卦羞答答,人生太复杂... 2664

203.华为组网实例:VLAN间互通DHCP中继实验

SW核心交换机上配置DHCP中继。

迷逝 8432

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

cocos2dx3.2版本利用shader实现sprite灰态图的正确方法

关于cocos2dx生成灰图的方法网上可以搜到不少文章,但不得不吐槽一下都是抄来抄去,其实3.2版本的灰度shader非常简单。 首先是vert和frag两个文件,这里用2dx的风格实现。 //ccShader_PositionTextureGray_.vert const char* ccPositionTextureGray_vert = STRINGIFY( attribute ve

liuxiaoyi135的专栏 1578

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cocos2dx shader

在测试过程中,发现shader如果有错误,那么在material创建的时候就会报错。这是检查shader的一个好方法,但是不会告诉具体哪个条出错。         在cocos2dx中,u_color要用,但是什么作用不太清楚,以后要弄明白。所以现在的shader中,我只是把它乘给某个变量。

一个字 644

深度学习工具包 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');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Cocos2d-x shader学习1: 灰度shader

灰度shader最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下。#ifdef GL_ES precision mediump float; // ES版本的精度限定符,精度变低后可以提高效率 #endifvarying vec4 v_fragmentColor; varying vec2 v_texCoord;void main(void

皓月微风 1960
上一篇: cocos2dx 内存管理
下一篇: cocos2dx 2.1.4 shader解析3 - cocos2dx自带的shader分析
FoxGameY
博客等级 码龄13年 81粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值