- 博客(75)
- 资源 (4)
- 收藏
- 关注
原创 Vulkan 总结
1、VKInstance 这个对象是我们 Vulkan api 的一个对象,用于通过 Instance 我们与 Vulkan 底层进行交互。2、VkPhysicalDevice 对应我们当前设备(PC、手机)的一个显卡硬件(GPU ),有的设备有多个显卡那么我们就能获得多个 VkPhysicalDevice 对象,这时候我们需要按自己的需求去选择最适合我们渲染需要的 GPU 了。3、VKDevice 我们称之为 逻辑设备,是用来和 VkPhysicalDevice GPU硬件交互的一个对象。
2023-05-07 21:46:13 1090
原创 OpenGL 之Texture
一、Texture 存在的原因。我们绘制物体是通过顶点组成图元然后转换成像素片段然后着色绘制而成的。如果我们由顶点上指定的颜色来绘制物体,那么一个颜色丰富的物体需要大量的顶点才能表达。这时候Texture就出来了。Texture 是一个2D的图片,通过他我们能用少量的顶点绘制更加颜色丰富的图元了。使用Texture我们需要在顶点数据中同时指定顶点对应的纹理坐标(x,y 的2D坐标值)。在OpenGL绘制时在片段着色器中通过对Texture采样赋予片段颜色。在实际应用中,Texture...
2022-04-12 11:35:09 2130
原创 OpenGL 渲染流程
1、OpenGL是什么 OpenGL 是由 Khronos 组织制定并维护的一套图形渲染API规范合集,具体的功能实现是由各个显卡的开发厂商根据规范实现对应的功能。由于OpenGL 是运行在 GPU(显卡)上的,而我们编写的程序都是运行在CPU上的,所以OpenGL的绘制过程就是在CPU操作GPU提供的API控制显卡这个状态机绘制图形的过程。2、OpenGL 渲染流程OpenGL 渲染的原理是将输入的3d坐标的顶点数据绘制成屏幕上的2D像素片段的过程。通过这句话...
2022-04-11 19:11:47 4313 2
原创 cocos creator 项目总结六(战斗性能优化2)
本来项目是计划上原生平台,但是中途决定还是先上小游戏平台,然后发现性能惨不忍睹。为此就只能继续开始漫漫优化之路。1、优化不必要的ui操作前面文章cocos creator 项目总结二(战斗帧同步解析)_xzben‘blog-CSDN博客提到过的战斗设计是逻辑和ui解耦的设计方式,也就是界面层不能通过直接拿到数据层的对象去更新位置,而是通过逻辑层每个逻辑帧 dispatchMessage 给ui层去 创建/删除/更新 显示节点。一开始的设计时候觉得更新节点位置信息这些操作应该是基本...
2021-09-28 19:41:33 1426
原创 cocos creator 项目总结五(战斗性能优化)
前面cocos creator 项目总结二(战斗帧同步解析)已经讲到过帧同步过程卡顿的优化问题,本片主要针对3d 对战过程性能优化的一些点。 其实我们优化的方向其实是很直接的两个方面 1、降 drawcall 2、减少复杂的运算逻辑,尽量将性能中能用内存换速度的都用缓存提升运算速度。其它的就是一些细节问题了1、ui drawcall 的优化,这个点其实cocos 论坛很多朋友都分享过,主要是通过合图降低drawcall,label 开启cache 模式,bitm...
2021-09-01 16:05:36 1441
原创 cocos creator 项目总结四(游戏启动流程设计)
由于creator是针对 android、ios、web、小游戏等平台的引擎,所以游戏的加载过程肯定是要能适应各个环境的启动的。对于web和小游戏这种需要远程下载资源的肯定是要做好启动流程的设计这对于游戏的启动速度效果是有很重要效果的。 在指定启动流程的时候首先要提到的是creator bundle模式的一个特点,就是bundle如果选择了小游戏的 subpackage 模式就不能让资源是 remoteassets 了,如果设置成了 remoteasset 那你的代码就只能...
2021-09-01 15:36:47 1796
原创 cocos creator 项目总结三(资源管理方案)
一、引言针对资源的管理,很多人项目可能都不会自己单独再封装一层管理。简单粗暴的使用引擎提供的接口直接releaseunUse。这样当然也是没问题,能很大程度上解决资源清理的问题。但是我经历过这么多项目以来,由衷的感觉一个好的资源管理会为你以后性能优化提供很大的帮助,特别是那些大型项目到后期因为场景多界面多导致资源管理复杂,而最终导致没管理好导致游戏内存效果高又没好的办法去降低(因为前期没规划好后期只能修修补补)。二、方案的抉择 在此项目之前我一直都是用的...
2021-09-01 15:18:08 3908
原创 cocos creator 项目总结二(战斗帧同步解析)
一、帧同步原理: 帧同步,指的是将游戏过程中关键的操作帧数据同步给各个客户端实现游戏同步的方案。这个原理看上去一句话很简单,但是其实内部涉及的细节却很多,影响到游戏的卡顿,同步是否完全同步等问题,接下来我一一列举我制作过程中遇到的问题和解决方案。二、客户端同步一致性问题1、逻辑驱动归一管理,这个主要是要将战斗过程的所有逻辑运算update驱动要统一管理,而不是简单的通过UI 层的update分散驱动,这样做的话你的update是不确定的,这里的确定分两部分1)执行时间上的确定性,2...
2021-09-01 14:45:46 4576
原创 cocos creator 项目总结一(框架概括)
1、开发背景 以前一直从cocos2dx+lua开发。creator 一直只是关注和简单测试使用,所以本地项目是第一次正式的用creator 开发游戏,3D类游戏也是第一次尝试开发。所以可能有些地方的设计不一定是最优,如有更好方案欢迎留言角落。2、项目基础框架设计 2.1 项目目录结构 1、word 整个游戏的加载入口,游戏中的代码和资源都以bundle方式管理,world 负责将游戏核心某块加载。 ...
2021-09-01 12:02:33 3513 2
原创 smartsvn.license
Name=csdn Address=1337 iNViSiBLE Str. Email=admin@csdn.net FreeUpdatesUntil=2099-09-26 LicenseCount=1337 Addon-xMerge=true Addon-API=true Enterprise=true Key=4kl-<Zqcm-iUF7I-IVmYG-XAyvv-KYRoC-xlgsv-sSBds-VAnP6
2021-03-11 12:42:56 909
原创 windows 多开微信
start "" "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"start "" "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"新建bat文件,输入上面代码,这是开两个,如果要多个自己复制对应行数,后面的 微信exe,路径自己根据自己的微信安装目录获取即可...
2020-11-24 10:47:23 228
原创 protoc-gen-lua message 嵌套 message 报错 message_type 为nil
这个问题主要是由于 嵌套message 没有在使用message 之前定义,导致生成 pb 文件的时候识别嵌套message时候不认识被嵌套message导致生成的message_type 为 未定义的值,只要注意将要使用的message先定义就行了。这个坑不注意是很难发现的。...
2020-11-16 11:37:53 314
转载 git 指定文件不提交但是不从版本库移除
转载自:https://www.cnblogs.com/hanxianlong/p/5908945.html执行指令: 1 2 [Sun@webserver2 demo]$ git update-index --assume-unchanged config.conf [Sun@webserver2 demo]$ git status 此时忽略config.conf文件跟踪之后再查看状态,发现已经没有显示config.conf的状态了。附取
2020-11-15 15:31:26 344
原创 skynet 源码阅读笔记
前言:这已经不是我第一次阅读skynet的源码了,以前每次都是走马观花的看了自己关心的部分内容。对其内部的结构和流程只是有个大概的了解。最近又开始研究使用skynet这次我下定决定系统化的阅读一遍源码,将源码的大部分的内容加上方便理解和查看的注释(我拉了一个分支专门写注释:https://github.com/xzben/skynet.git),另外也计划将整理框架的流程细节总结下。方便使用中...
2020-05-06 14:44:10 587
原创 Go 编程入门
一、程序结构1、第一行非注释行用 package xxx 定义包名。2、import 用于导入程序使用的包3、文件中的 首字母大写的标识符是对外暴露导出的,首字母小写的标识符为只对内有效的。4、变量的声明格式为1、var identifier1, identifier1, ... type2、var identifier = 1 根据值决定类型3、identifie...
2020-02-28 17:56:39 435
原创 IOS 企业签名
企业签名步骤:1、首先得有一个企业级的账号,然后 生成证书,注册App ID,然后生产描述文件2、生成一个 entitlements.plist 内容如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.a...
2018-12-06 15:55:42 5385 1
原创 多个jar包合并成 dex
1、将需要合并的jar放到同一个目录2、编写一个 index.xml文件写入如下内容<!--?xml version="1.0" encoding="utf-8"?--><project basedir="F:\jar" default="makeSuperJar" name="base"> <target descri
2018-08-20 15:05:05 2862
原创 spine 动态换皮功能
前言:cocos2dx 中spine 的换皮功能是一种静态的方法,也就是在创建 spine 动画的时候就必须将所有的皮肤全部加载,然后在代码中直接换皮,并且这种换皮是整体的切换,对于我们实际开发中这种方式是相当的不理想的。注意:本代码本人还只是简单的测试,如果还存在其它问题可以留言。原理介绍:对于spine动画而言动画的构成由 1、bone(骨骼)2、slot (槽)3、at
2016-07-04 20:11:14 20026 11
原创 Spine Slot 增加 绑定 节点且能保持 与slot的zoder一致
1、typedef struct spSlot { void* node; spSlotData* const data; spBone* const bone; float r, g, b, a; spAttachment* const attachment; int attachmentVerticesCapacity; int attachmentVerticesCount;
2016-07-04 10:28:17 3133 2
转载 Android NDK 编译 引用第三方 so 文件
Android NDK编译本地文件以及引用第三方so文件,有需要的朋友可以参考下。引用第三方的so文件很简单,在工程目录的libs文件夹下新建文件夹armeabi,以及armeabi-v7a,然后将要引用的so文件分别复制到这两个文件夹下就行了。但是有时候我们会使用第三方开源算法,或者本地的底层代码,那么在调用这些代码的接口时就需要将这些代码编译成so文件,如果你使用的是c
2016-06-14 14:50:39 1220
原创 如何优雅进行 cocos2dx + lua 开发
本人使用的是 Cocos2dx 3.4 + Visual studio 2013一、IDE 的选择 visual studio 2013 + Bebalua (visual studio 的插件),优势:BebaLua 不仅有完善的代码提示功能,还能够完美调试lua安装方法:1、2、使用方法:http://blog.csdn.net/bab
2016-04-14 15:47:47 3282
转载 给 spine slot 绑定node
原文链接:http://blog.csdn.net/n5/article/details/21795265spine的cocos2d-x runtime不是专门为cocos2d-x写的,核心部分是一个通用的spine c runtime,所以对于cocos2d-x的支持不是很好。当然如果只是播个动画啥的也足够了,但是真实使用场景中会有各种需求。比如我们现在需要在spine动画的某个骨骼
2016-01-31 13:36:40 2884
原创 java 基础总结
一、注释1、 /* 多行注释 */2、// 单行注释二、数据类型1、基本数据类型 :字节型(byte 1字节)、短整型(short 2字节)、整型(int 4 字节)、长整型(long 8 字节)、字符型(char 2 字节)、浮点型(float 4 字节)、双精度型(double 8字节)、布尔型(boolean 1字节)注意:与 c++ 不
2015-07-15 21:21:51 432
原创 让Git 更好的配置
一、树状结构的loggit config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit"定义一个别名 lg 以后用 git lg 就以树状结构查看lo
2015-06-10 11:47:33 515
转载 wxLua 如何打包生成可执行文件
到 http://wxlua.sourceforge.net/ 下载最新的win32 binary 包, 目前最新版为 2.8.7.0, 对应的包为: wxLua-2.8.7.0-MSW-bin.zip解压到某目录(如: C:\), 方便起见, 将 C:\wxLua\bin 添加到系统环境变量 %path%, 这样做能延长键盘寿命.在 C:\wxLua\bin\ 下建立一个批处理文件 cl
2015-05-31 23:10:22 3191
转载 转载 C++ 的“反射”技术
原址: http://www.cppblog.com/tx7do/archive/2006/09/05/12034.htmlLit Window Library来自http://sourceforge.net/projects/litwindow 大概看了一下,使用了宏建立了一个比较复杂的数据结构,用来提供成员反查以及成员访问。 tinybind来自http://s
2015-05-28 14:58:59 1203
原创 Object-c 学习总结
一、语言基础1、注释Object-C 中的注释 和 c++ 一样为 // 单行注释, /**/ 多行注释2、包含头文件 用 #import #import "自己的头文件"3、类3.1 类的申明@interface 类名: 父类名 {@public@private@protected 数据成员}-(返回类型) 实例函数名 :(参数一类型) 参数名;+(
2015-05-25 21:21:34 624
转载 物理运动学公式汇总
一、 直线运动,自由落体运动 二、 曲线运动、万有引力三、 力(常见的力、力的合成与分解)四、 动力学(运动和力)五、振动和波(机械振动与机械振动的传播)六、冲量与动量(物体的受力与动量的变化)一、质点的运动(1)------直线运动1)匀变速直线运动1.平均速度V=s/t(定义式)2.有用推论Vt*Vt-Vo*Vo=2as3.中间时刻速度Vt/2=V平=(
2015-03-02 17:11:39 2918
原创 游戏中的 AI 学习笔记(数学基础--矢量)
一、概念1、矢量起源于对运动和力的研究。力和速度等物理量需要用其大小和方向来表示。2、长度为1的矢量叫单位矢量,记 e,单位矢量用来表示空间的方向。3、大小相等、方向相反的矢量互为负矢量。二、矢量的加法和乘数规则1、加法 a + b = c a - b = a + (-b)2、数乘 x = 0 xa = 0
2015-03-02 16:35:48 1015
原创 cocos2dx 我所不知的技巧
1、实现图片的平铺复制local visibleSize = VisibleRect:getVisibleSize()local texture = cc.Director:getInstance():getTextureCache():addImage("repeat.jpg")texture:setTexParameters(gl.LINEAR, gl.LINEAR, gl.REPEA
2015-02-05 14:37:23 1982
转载 牛人写的设计游戏服务器
有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。 另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料的整理合集。在平时的开发中我也搜索过相关的中文网页,很少有讲游戏服务器
2015-01-27 17:39:50 2089
转载 常见验证码的弱点与验证码识别
0x00 简介验证码作为一种辅助安全手段在Web安全中有着特殊的地位,验证码安全和web应用中的众多漏洞相比似乎微不足道,但是千里之堤毁于蚁穴,有些时候如果能绕过验证码,则可以把手动变为自动,对于Web安全检测有很大的帮助。全自动区分计算机和人类的图灵测试(英语:Completely Automated Public Turing test to tell Computers
2015-01-23 16:31:41 582
原创 我的游戏框架基础构建篇(A* 寻路算法实现 )
一、控件功能描述 本控件主要是实现游戏地图中寻路算法的一个助手,帮助寻找二维地图上从一个点到另一个点的最优路线0二、实现策略 实现的策略我主要是参考的 http://www.cnblogs.com/technology/archive/2011/05/26/2058842.html 算法理解如下:
2015-01-09 11:59:20 744
xzben网络框架v1.0版本
2013-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人