自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (2)
  • 收藏
  • 关注

原创 ThreeJS离屏渲染介绍和运用

一.定义帧缓冲区对象 可以用来代替颜色缓冲区或深度缓冲区。绘制在帧缓冲区的对象并不会直接显示在canvas上,你可以先对帧缓冲区的内容进行一些处理再显示,或者直接用其中的内容作为纹理图像。在帧缓冲区中进行绘制的过程又称为离屏绘制 。(以上摘自<<WebGL编程指南>>)而ThreeJS中的WebGLRenderTarget就是对这个自定义帧缓冲区的封装,这一技术的经典应用就是我们常听到的"屏幕后处理"二.封装和简单用法来看一下WebGLRenderTarget的封装fun

2022-03-24 11:44:57 1834 1

原创 解析GitHub首页3D动画

一.前言GitHub是世界上最大的代码托管平台,超5千万开发者正在使用。GitHub中文社区,是国内领先的开源社区,是一个帮您发现GitHub上优质开源项目的地方。它的首页动画很有意思,如下:动画主要展示了世界各地都在用github,闪光点和发出的射线表达了各地的pull,merge,push等操作,比较生动并且科技感十足。这边我们将代码扒了下来,并去掉了多余不关心的部分,方便我们进行解析。本文主要对如下三点进行解析:1.地球的制作,世界地图的描点2.射线和冒尖闪光点的制作3.鼠标hove

2022-03-17 09:20:08 2526 2

原创 WebGL动画之如何变成狗

一.前言一如标题,如何变成狗?当然这里不是指的物种的变换或者是变成单身狗。看如下动画:二.分析与思考从上面的动画分析看,开头像液体球一样融合的动画很明显是前面文章中解析过的Metaball元球融合原理,不清楚的可以跳转去先看下解析。Metaball元球在视觉上的融合会给人一种多变,柔性转变的效果,所以这里用作变形恰到好处,但问题是如何变成狗呢?需要将元球摆放成狗的形状或是用像素拼成狗吗?如果是这样那就还需要狗的像素矩阵才行,未免太过于繁琐。再仔细观察动画,metaball液体分散消失时,像素并没有

2022-03-03 09:24:16 479

原创 图形学中的噪声

一.噪声定义大理石表面的花纹、流沙、水墨画、山脉起伏、光照的海面等,这些纹理不可预测性叫随机,但是这种随机又不同于我们常规程序中用到的随机。计算机中用机器来绘制这些图就会运用到噪声,噪声可以定义为一个随机数生成器 ;但是这种随机是有规律的随机,看似杂乱无章实则有序,因此可以构造一些丰富逼真的图片。二.噪声的生成一维使用noisefloat rand (in float _x) { return fract(sin(_x)*1e4);}float i = floor(x); /

2022-03-01 11:23:37 972

原创 图片水波效果

如上动画,类似动画中的水波效果在生活很常见,在计算机中这类视觉特效常用于海浪,水波,旗帜飘动等。本文这里对水波的简单实现做一下讲解,动画开始的水泡是用Metaball来实现的,之前文章有解析过这里不在讲解。一.分析从动画上来看,我们可以很清除的看到,这种水波的运动可以看作是像素的位移,但这种位移不同于日常中的位移,日常中或计算机中的位移属于整体位移即通常是平移,但该动画中明显每个像素的偏移都不一样或者说周期性的偏移,理解到这一点我们实现的原理就非常容易了。方法一.直接在顶点着色器中改变顶点位置方法.

2022-02-28 09:15:30 453

原创 雾效在自定义Shader中的运用

一.介绍Three.js中的Fog雾在生活场景中的使用其实非常广泛,比如我们去看秋天的晨雾,公路的尽头,远处的海面时,远处的景色总是要模糊一些不如近景那么清晰那么亮,这将在计算机中怎么表现呢?然后就衍生处了Fog这个类。Fog这个类包含定义线性雾的参数,也就是说,密度随着距离的增加呈线性增长构造器Fog(hex, near, far)这个hex参数被传递给 Color 构造函数来设置颜色属性。hex是一个十六进制整数或CSS样式的字符串属性cocol雾的颜色。比如:如何设置为黑色,远处的物体将

2022-02-25 10:28:57 622

原创 圆形的绘制和随机变化

一.前言除了矩形,圆形在实际的图形运用中也比较广泛。例如水波或光圈效果;若是用最基础的webgl理论来讲,我们都知道圆属于多边形的绘制,可以通过绘制圆上的各点,再将其连接起来通过gl.drawArrays方法,传入gl.TRIANGLE_FAN来进行绘制。今天我们介绍Three.js的绘制方法。二.绘制原理其实在three.js中,是有CircleGeometry圆几何体类的,我们可以很轻松的new一个来创建一个圆形平面,然后填充材质即可得到圆形的图案。那我们为什么要自己来绘制呢,原因很简单,自定义的

2022-02-23 10:13:09 640

原创 Metaballs解析与运用(2D元球融合)

一.Metaball定义Metaball(元球)技术是由Blinn于1982年开发一种适用于建立可变形表面的技术。此技术利用Metaball建立能量场,然后通过标量域的等势面来建立3D模型来表现软体或者隐式曲面。简单的说,就是在空间里布置一些Metaball,每个Metaball都有一个能量场,通常用势函数来表示。设空间里均布着无数个点。在其中某一点,它的能量为每个Metaball对它的势的叠加。然后在空间的所有点找出势能相同的点,就得到一个由这些点组成的曲面。二.对Metaball的理解metaba

2022-02-21 10:12:09 1691

原创 3D星空隧道效果

主要运用TubeGeometry来制作自定义的隧道效果1.初始化场景function init(){ //创建 WebGL renderer var canvas = document.querySelector("canvas"); renderer = new THREE.WebGLRenderer({ canvas: canvas, antialias: true, shadowMapEnabled: true, shadowMapType: THRE.

2022-02-18 09:12:46 622

原创 WEBGL Learning(四) 遮罩之模板测试

什么是模板测试我是这样理解的,可以把他看作月饼模具。模具压下去,模具以内的留了下来,其他部分被舍弃。再看下专业一点的简单解释:Stencil test是per-fragment operations的一种,这就意味着它处于fragment shader (片段着色器)之后,stencil test的主要作用就是根据stencil buffer的内容,来丢弃不需要的fragments。先来看下使用步骤:1.开启模板测试2.设置模板参数(针对模板)3.渲染物体(模板), 更新模板缓冲的内容4.

2021-06-21 11:50:24 1023 1

原创 Python 将jpg批量转换为png

新建文件transform_pic.pyimport osdef transform(input_path, output_path): for root, dirs, files in os.walk(input_path): for name in files: file = os.path.join(root, name) print('transform' + name) im = cv2.imre

2021-06-03 16:37:28 3998 5

原创 WebGL Learning(三)绘制纹理

使用WebGL 将纹理绘制到窗口基本流程根据前面的学习,我们对WebGL有一个基础的了解。但绘制纹理还是有区别的,其中使用到了一些WebGL常用的API。这里我们先讲一下绘制流程WebGL与Canvas的区别Canvas只是浏览器的画布,当然它也有自己的绘制文字图形的API接口。WebGL是以 OpenGL ES 2.0 为基础的一套 浏览器 3D图形API (HTML5),在编程概念上与OpenGL ES 2.0 几乎是完全通用的,同样采用可编程渲染管线,也就是每个顶点的处理受到一小段Vert

2021-05-28 16:03:45 270

原创 Unity 游戏退到后台和返回前台的处理

private void OnApplicationPause(bool focus) { if (focus) { Debug.Log("进入后台"); } else { Debug.Log("进入前台"); } ...

2019-05-23 09:53:12 7393

原创 IOS wkWebview底部黑边问题

IOS wkWebview 底部黑边问题问题描述如下:我用Unity打开一个新的wkWebView,内容显示是正常的,但是大概过了10S左右,webview变小了(底部变成了黑边,像是被裁剪了一样)爬了一下楼,webview的scrollview自动计算滚动边距的问题解决方法如下:if (@available(iOS 11.0, *)) { (your wkwebv...

2019-04-16 11:42:32 1421

原创 Unity Spine 2DUI笔记一(SkeletonGraphic 上添加跟随的GameObject)

需求阐述:现有一个Spine的动画,动画中有个球在上下运动,其他有的Bone是不运动的。想在球上面添加一个Text(例如1~10000表示次数),该Text可以动态修改,也要随着球来移动。这种需求1.以前次数不会很大的时候,让动画做了100个Animation(Text为0~99,其他Bone不变),这样的话用setAnimation就能显示不同的“Text”。(超过了100就没辙了)2...

2019-01-17 11:00:30 8165

原创 Unity tolua遍历 C#中的Dictionary

用lua访问C#中的Dictionary: local iter = bones:GetEnumerator() --bones为Dictionary while iter:MoveNext() do local v = iter.Current.Value print("key = "..iter.Current.Key); ...

2019-01-15 14:20:12 987 1

原创 Unity “Shaders necessary for masking don't seem to be present in the project”问题

最近用 Unity的Alpha Masking这个插件时PC上跑没有问题,打包到安卓遇到这个错误。解决方法:参考Shader.Find即在ProjectSettings-&gt;Graphics里的always included shaders添加Alpha Making的两个shader就OK了...

2019-01-12 16:04:51 211

原创 Lua for循环误区

function f() local i; for i = 1, 10,1 do print(&quot;Before Add i = &quot; .. i); i = i + i; print(&quot;after Add i = &quot; .. i); endendf();如上代码, i打印的结果为1,2,2,3,3,4,4,5,5,6,6,...

2018-11-08 15:54:26 1316

原创 Unity 将Scene上预制体还原成普通节点

1.选中要还原的GameObject2.Unity菜单栏-&gt;GameObject-&gt;Break Prefab Instance

2018-11-08 11:55:20 3628 1

原创 从AssetBundle中获取图片,给Image 组件替换Sprite

从AssetBundle中获取图片并给Image 组件替换Sprite直接bundle.LoadAsset有问题,返回为空,具体原因还不清楚。怀疑要将图片做成prefab才能LoadAsset?改用Texture2D做过渡C#Texture2D tex = bundle.LoadAsset&amp;lt;Texture2D&amp;gt;(&quot;test.png&quot;); Sprite mySprite...

2018-11-08 10:08:18 3766

原创 对APK进行解包和二次打包(Android)

某些情况下,在我们只需修改APK的一个配置或者是一张图片,又或者是有许多分包的情况。使用命令行逐个去编译打包耗时长,效率慢!毫无疑问,对已有的APK进行二次打包是一种高效的解决方式。这里推荐个人觉得比较方便的反编译工具AndroidKiller,网盘链接为 https://pan.baidu.com/s/1FL4jmWefY1PUCI8OM3C7WQ使用的基本方法: 1.如图,将apk...

2018-03-07 11:11:43 79235 10

原创 cocos2d 3.11获取机型和系统版本号

原生游戏无论是提供给后端统计玩家机型信息、或者是方便给测试提供信息都会在游戏注册或者登录时统计设备型号以及系统型号。 由于这一需求并不是所有用户都需要,cocos并未提供相关API去获取信息。 这里分别针对IOS和Android去获取机型和系统版本号。这里使用的是引擎是3.11.1版本、js语言 使用JSB分别调用OC和Java的方法来实现。1.首先在platfo

2018-02-07 17:49:38 3483

原创 cocos2d 3.11.1使用粒子效果引起的EXC_BAD_ACCESS问题

最近准备构建IOS的包,在运行时进入游戏场景之前直接crash掉了。在CCEAGLView-ios.mm文件中抛出了一个EXC_BAD_ACCESS的错误。 错位定位的代码位置是#endif // __IPHONE_4_0 if(![context_ presentRenderbuffer:GL_RENDERBUFFER]) {// CCLOG(@"coc

2017-08-24 16:45:34 2082

原创 cocos2d 3.11.1 关于Android包第一次打开按Home键挂起再进入的问题 too much recursion

问题描述,打好安卓包点开包,用手机系统自带程序安装器安装后,会有一个“完成”和“打开”按钮,点击打开程序后,再按Home键退出程序,回到手机桌面再点击应用图标进入,程序直接卡死,点游戏界面上的任何按钮都无反应!!!eclipse上报出一连串“too much recursion”,此时的我一脸懵逼。 经过反复测试,只有第一次这样做会出问题,且如果不点击那个“打开”按钮,而是安装完程序后,回主界面使

2017-08-21 12:09:32 541

原创 cocos2dx 3.x TableView多行多列的使用

前言:当学会使用之后,你会爱上这个控件,无法自拔! 一直使用cc.ScrollView会遇到一个瓶颈,就是数量过多时,滑动肯定会卡。因为它是一开始就创建了所有需要滑动的节点。 而cc.TableView则不一样,它仿造了IOS的UITableView的方式,只创建界面上所看到的TableViewCell,滑动的时候,消失的Cell放入空闲数组,需要显示的Cell就从空闲数组取,直到空闲数

2017-08-18 18:36:36 3461

原创 cocos2dx 3.x VS下运行调节音量无效的问题

最近VS下跑自己的游戏,发现音乐的开关一直有问题,就是无论设置音量是1还是0,音乐和音效一直可以播放。我用的版本是cocos2dx 3.11.1,首先以为是自己的业务逻辑有问题,然后去仔细检查,发现没问题,而且VS下也没报任何错误。关键是打出来的Android和IOS包都没问题,内心OS:到底TM发生了什么?然后就很容易想到了可能针对win32的处理不一样吧,就找到了项目路径下的framewor

2017-08-18 14:58:52 1221

原创 cc.TableView之 TableViewCell带有点击事件时 滑不动的问题

造成点不动的原因是,TableViewCell里的button,或者是cc.Widget有触碰事件。 事件是默认吞噬的,且优先级较高。会吞噬掉TableView的滑动事件解决方法: 将有触碰事件的节点或者是button调用button.setSwallowTouches(false)

2017-08-09 11:57:48 2583

原创 JavaScript 字符串和json对象相互装换

一、JSON字符串转换为JSON对象 //由JSON字符串转换为JSON对象var obj = eval('(' + str + ')');或者var obj = str.parseJSON(); //由JSON字符串转换为JSON对象或者var obj = JSON.parse(str); //由JSON字符串转换为JSON对象特别注意:如果obj本来就是一个JSON对象,那么使用eval()函

2017-07-26 15:43:52 317

原创 cocos2d 游戏运行时保持常亮即让手机不自动锁屏

游戏运行时,默认情况下的打出来的包,若长时间不操作,手机就会自动锁屏。 因产品需求,这里加一下配置,让游戏在运行时保持常亮状态。针对IOS: 1.找到工程下\frameworks\runtime-src\proj.ios_mac\iOS路径下的AppController.mm这个文件2.在didFinishLaunchingWithOptions方法中添加[[UIApplication shar

2017-07-17 16:17:08 1518

原创 Cocos2d 3.X将JS转成JSC文件

在项目下,按住shift键,然后鼠标右键-“在此处打开命令窗口”(或者你自己输入绝对路径) 使用cocos命令//JSC保存到同级目录cocos jscompile -s frameworks\js-bindings\bindings\script -d frameworks\js-bindings\bindings\script//JSC保存到新目录cocos jscompile -s x

2017-07-11 11:19:49 3857

原创 C++ MoveFileA Error code is 0x2

仔细检查下,这个错误是需要被改的source文件路径不存在 详细可以查一下MSDN

2017-07-04 16:46:34 1075

原创 GLSL 基础量定义

GLSL语法跟C语言非常相似: 1.数据类型: GLSL包含下面几种简单的数据类型 float bool :false or ture int 向量: vec {2,3,4} 长度为2, 3, 4的float向量 bvec {2,3,4} 长度为2, 3, 4的bool向量 ivec {2,3,4} 长度为2, 3, 4的int向量 矩阵: ma

2017-06-16 11:44:49 1064

原创 Cocos2dx 使用Shader使精灵变灰

使用方法:auto program = CCGLProgram::createWithFilenames("gray.vsh", "gray.fsh"); //装配一个shader文件program->link();program->updateUniforms();spr->setShaderProgram(program);this->addChild(spr);gray.vsh:attri

2017-06-16 11:21:53 1408

原创 Javascript 判断数据的类型

判断一个数据是什么类型,有的会基于鸭子类型的概念来判断,例如该数据有没有length,有没有sort或者是slice方法。 但更好的方式是用Object.prototype.toString来判断。 如下:var isString = function(obj){ return Object.prototype.toString.call(obj) === '[object String

2017-06-14 17:26:59 437

原创 VS 之error MSB8020: The builds tools for v110_xp......

VS错误如下 error MSB8020: The builds tools for v110_xp (Platform Toolset = ‘v110_xp’) cannot be found. To build using the v110_xp build tools, either click the Project menu or right-click the solution, a

2017-06-13 16:10:41 7139

原创 cocos2d-js 3.11的运行黑屏错误 之No file found at script/jsb_prepare.js Possible missing file.

简单记录下3.11.1的JSB版本的运行错误。用命令行创建了3.11.1的test空项目,然后用命令 cocos run -p win32去运行,出来是黑屏的。 先打包成Android然后再在模拟器中运行也是一样的,此时的我一脸懵逼!然后只能去VS中看调试信息,就看到了 No file found at script/jsb_prepare.js Possible missing file.

2017-06-12 17:27:41 4227 1

原创 cocos2d H5加载时崩溃问题

最近手头上一个cocos H5游戏,需求是根据后端传来的数据进行模拟角色打斗。角色不多,但是有很多全屏的技能动画,关键这些人物动作和技能全部是用帧动画来实现的。全部动作加起来应该有近两千的精灵帧吧。如果全部加载的的话,内存肯定会爆掉导致浏览器崩溃。首先能想到的肯定是动态加载,即主场景只加载主场景的资源。这样试过之后,在浏览器上仍然是在loading的时候就崩溃,起初我以为是调用cc.loader

2017-06-02 17:08:43 1940 1

原创 正则表达式匹配 协议、域名、端口号

先看需求,url = “http://192.168.0.61:8080/touch/index.html?game=AB01“要获取其”http://192.168.0.61:8080“这一部分。先看答案,这里用的javascriptvar url = "http://192.168.0.61:8080/touch/index.html?game=AB01";var reg = new RegE

2017-05-26 18:26:26 17178 3

原创 Cocos2dx 3.X Label的换行

很多项目中都会有Label换行的需求,之前自己还手动写了个换行的处理。但才发现3.X引擎已经帮我们做了这件事。而且用法很简单针对LabelTTF(如果你用的ccui.Text,调用getVirtualRenderer(),返回值就是labelTTF)再对LabelTTF调用setDimensions方法即可,来看下源码/** * Set Dimensions of cc.LabelT

2017-05-25 11:07:34 1873

原创 Android SDK Android NDK Android Studio 官方下载地址

2016.12 Android Studio 2.2.3 Windows Includes Android SDK https://dl.google.com/dl/android/studio/install/2.2.3.0/android-studio-bundle-145.3537739-windows.exe No Android SDK https://dl.google.co

2017-02-09 11:21:13 2720

WebGL Learning ExternalLib

WebGL Learning 引用类

2017-01-13

WebGL Learning Lib

WebGL Learning Lib

2017-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除