自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 Fbx文件的加载与渲染:一个DirectX11小项目开源啦,主要用来演示fbx文件的加载与渲染

这个小项目最初是用来学习DirectX11的,后来尝试实现一个名为GGUI的UI库,后来尝试fbx文件的解析。我有个缺点,就是浅尝辄止。一件事,只要学会了一点皮毛,初步达到了目标,就搁置不做了。去年初步实现了fbx文件的加载与渲染,然后就热情骤减,裹足不前了。最近热情又来了,就把这个小项目鼓捣了一下,把代码放出来,给大家提供一些思路。源码托管在github上: 项目链接 https

2017-09-02 22:44:13 4904 6

原创 [Unity3D 版本5.X]实现一个跟随摄像机,聚焦到客户端主角身上

游戏中的摄像机,都是聚焦到客户端主角身上。为了实现这个功能,我写了两个脚本,第一个脚本用来控制客户端主角的位置和旋转,使用WSAD键控制主角的前后左右移动,使用鼠标右键控制主角的旋转。第二个脚本是根据客户端主角的transform,设置摄像机的transform,使得摄像机聚焦在主角身上。这两个脚本都是设置成客户端主角的组件。第一个脚本 FiMainPlayerMove

2017-05-29 23:35:17 1549

原创 [Unity3D 版本5.X]实现一个自由漫游的摄像机

我学习Unity3D一小段时间了,第一个制作目标就是实现一个自由漫游的摄像机。使用WSAD键控制摄像机的上下左右移动,使用鼠标右键控制摄像机的旋转。这个功能比较简单,代码也一目了然,不做过多解释了,直接上代码。//-----------------------------------------------------------------//1,把本类作为一个组件,包含在 Gam

2017-05-29 20:46:05 12914 3

转载 编程知识汇总--抓包工具Wireshark,Fiddler

Wireshark和Fiddler都是在Windows平台下的抓包工具。TCPDump是Linux平台下的抓包工具。Wireshark用来抓取TCP和DUP网络包;Fiddler用来抓取HTTP网络包。Wireshark相关的帖子:一站式学习Wireshark(一):Wireshark基本用法wireshark基本用法及过虑规则Fiddler相关的帖子:

2017-05-21 14:56:07 592

原创 编程知识汇总--捕获dump,生成dump

windows 应用程序崩溃时的内存转储及dump文件的分析  [传送门]http://blog.csdn.net/sp_daiyq/article/details/7965608vc++程序崩溃后不生成dump文件 [传送门]http://blog.csdn.net/lixiangminghate/article/details/50413924写

2016-11-01 12:12:22 501

原创 使用GPU计算骨骼动画(二)我的实践总结

DX11,创建动态贴图,贴图的最大分辨率是 8192*16384 (或者16384*8192),并且,宽高的最大值就是 16384 。创建贴图时,宽高的值不要求是2的整数幂。

2016-10-18 10:16:17 1307

原创 Unity3D 5.x 启动过程中 License Error 解决办法

新安装了Unity3D的最新版本5.4 ,启动过程中执行"Check License"步骤的时候报错,"License Error" ,说我没有License。Unity3D不是对普通用户免费吗?干嘛不让我用啊?这让我郁闷了好久。我是按照“注册帐号--下载--安装--启动”这样的步骤来做的,一般用户都会这样做,不应该有错才对。肯定是我遗漏了某个操作步骤,但Unity没有任何提示。这个新

2016-10-09 18:42:15 20153 5

转载 使用GPU计算骨骼动画(一)从网络上收集的资料

假设场景中有一个角色,带有骨骼动画,面数在3W左右。角色右上方有一个平行光源,光源会实时生成阴影贴图(shadow mapping)。1、使用GPU更新骨骼动画。GPU很快,但是如果场景中带有会生成阴影贴图的光源时GPU就不得不多次计算同一个数据。   也就是说从灯光方向看场景,生成depth map时需要把模型上的顶点更新到指定帧;   在实际把场景显示到屏幕时也需要把模型上的顶点更

2016-09-27 20:01:42 3076

原创 FbxSDK使用总结

Fbx文件结构太复杂!FbxSDK太难理解!Fbx官网文档功能介绍太不清晰!FbxSDK中的示例程序太冷门,太不解决问题!网络上找不到能够解决我的痛点的方法。有相同烦恼的不只我一个人,一个叫 Tianyu Lang 的歪果仁也发出抱怨,并怒喊:I have searched almost all the corners on the Internet to clarify things

2016-09-19 16:01:31 17596 7

原创 FbxSDK官网文档阅读总结

FbxSDK官网文档地址 :传送门原文Normally, an FBX application needs only one SDK manager object.Most FBX applications need only one scene. But if, for example, you wish to load (i.e., import) several FBX fi

2016-09-09 21:12:55 4119

原创 dll工程中如何生成lib文件

新建了一个dll工程,除了生成dll文件外,你还想生成相应的lib文件,怎么搞?解决办法:为工程添加一个def文件即可。注意:添加def文件后,默认情况下,生成的lib文件的名字与工程名字相同;如果你想使用自定义的lib文件名,修改def的文件内容即可。

2016-08-23 19:58:13 1230

原创 “单例模式”文章收藏

《不简单的单例模式Singleton》《C++程序员们,快来写最简洁的单例模式吧》

2016-08-11 16:54:13 280

原创 3D编程知识--收集的帖子

FlagShipEngine,对多线程渲染讲的比较多。传送门http://www.cppblog.com/flagship/category/9250.html《The Complete Effect and HLSL Guide》翻译连载,传送门http://blog.csdn.net/soilwork/article/details/1402960修改E

2016-07-24 12:35:51 526

原创 3D编程知识--矩阵变换

为了对一个顶点进行变换(旋转、平移等),可以把它与一个4*4的的变换矩阵来相乘。变换思路如下:设置一个4*4的矩阵,使其表示某一具体的变换。然后将顶点的坐标或者向量的分量放入一个1*4的行向量v中。乘积vX就生成了经过变换的顶点或者向量v'。例如,如果X表示沿着x轴平移10个单位,v=[2,6,−3,1],则乘积vX=v'=[12,6,−3,1]。前面提到了将顶点的坐标或者向量的分量放入一

2016-07-22 15:15:59 826

原创 如何保护一个代码模块,使其只能在主线程中使用

开发过程中可能会遇到这样的情况,写了一个代码模块,它是非线程安全的,所以只能在某个线程(例如主线程)中使用。如何防止在其他线程中误用该模块呢?(例如,刚入职的同事可能不熟悉代码,很有可能会误用)有一个办法可以从底层把该代码模块保护起来,一旦在其他线程中被调用,就弾框报错。每个线程都有一个线程ID。在指定的线程中对“非线程安全的代码模块”做初始化操作,“非线程安全的代码模块”把当前线

2016-07-04 20:53:55 742

原创 “鼠标拖动游戏窗口,消息循环会卡住,导致游戏不能更新不能渲染”,解决办法在这里

开发端游的同学都知道,鼠标按在窗口标题栏上进行拖动,游戏就会卡住不能更新不能渲染。还有另外一种情况也会导致游戏卡住,就是弹出窗口的系统菜单时,例如下图:“弹出系统菜单导致游戏卡住”,这种情况比较容易解决,我先讨论这种情况。有两种操作会弹出系统菜单:1,鼠标左击标题栏左侧的图标2,鼠标右击标题栏当用户发生上面两种操作时,我们拦截掉Windows消息,不要通知给

2016-06-05 14:32:27 3171 3

原创 我要使用TcMalloc

TcMalloc(Thread-CachingMalloc)是google-perftools工具中的一个内存管理库。TcMalloc在内存分配的效率和速度上要高很多,而且支持多线程。1,介绍和初步使用的帖子推荐一个跨平台内存分配器tcmalloc用在3D游戏上Gperftools中tcmalloc的简介和使用TcMalloc的介绍以及Windows下安装使用2,当你的

2016-04-21 17:48:16 8755

原创 64位CPU,64位操作系统,和64位应用程序三者之间的关系

64位CPU目前市面上的CPU都是64位且兼容32位的CPU,既支持64位指令集,也支持32位指令集。在这样的CPU上面,既能安装64位操作系统,也能安装32位操作系统。64位操作系统目前主流操作系统都是64位操作系统。只有64位操作系统才能发挥CPU中的64位指令集的功效。如果是32位操作系统,它只能发挥CPU中的32位指令集的功效。目前的64位操作系统都做了兼容,既能运

2016-04-17 19:30:47 1856

原创 编程知识汇总--3D模型文件的通用格式:FBX

1,FBX、DAE模型的格式、导入与骨骼动画本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明原文地址:http://www.zwqxin.com/archives/opengl/model-fbx-dae-format-import-animation.html2,基于FBX SDK的FBX模型解析与加载http://blog

2016-04-12 12:25:11 11251 1

原创 云风的博文《Lua C API 的正确用法》读后总结

云风的博文《Lua C API 的正确用法》(http://blog.codingnow.com/2015/05/lua_c_api.html)该文章是一年前写的,不好意思在原文下面写心得体会了,就把想说的写在这里。1,在你的程序中嵌入lua时,最好使用由你的编译器编译lua源代码得到的库文件(lua.lib)。这是因为,在lua的异常处理机制里面会使用一些宏,在不同的编译环境

2016-04-07 18:22:20 1851

原创 C语言知识点回顾

1,C99标准是指1999年诞生的C语言标准;C11标准是指2011年诞生的C语言标准。2,常见的标准类型有:    int8_t  int16_t  int32_t  int64_t    uint8_t  uint16_t  uint32_t  uint64_t    float  double3,尽量不要使用int。虽然大部分情况下int等同于int32_

2016-03-23 23:39:07 743

转载 编程知识汇总--转载

知识库网址:http://lib.csdn.net/base/14

2016-02-27 21:45:16 351

原创 编程知识汇总--OpenAL

1,OpenAL源码编译 (http://blog.csdn.net/oilcode/article/details/50748568)2,声音衰减,以及alDistanceModel函数使用详解 (http://blog.csdn.net/jianingshow/article/details/50609365)3,OpenAL同时播放的声音数目,有一个上限。(换而言之,最大的sourc

2016-02-26 22:07:00 1425

原创 OpenAL源码编译

OpenAL源码下载网站是 http://kcat.strangesoft.net/openal.htmlOpenAL官网是 https://www.openal.org/ ,在官网上可以下载用户手册等文档。

2016-02-26 11:39:18 5084

原创 使用LoadLibrary函数装载一个DLL文件,没有指定文件路径,那么操作系统搜索DLL文件的策略如下

程序中调用LoadLibrary函数装载一个DLL文件,没有指定文件路径,那么Windows操作系统搜索DLL文件的顺序如下:MSDN中说得很明白:1.The directory where the executable module for the current process is located.   进程的所在目录2.The current directory. 

2016-02-17 15:36:47 2141

转载 从国外网站找到的 DirectX XAudio2 编程教程

从国外网站找到的 DirectX XAudio2 编程教程http://www.win32developer.com/tutorial/xaudio/xaudio_tutorial_1.shtm

2016-01-22 21:46:15 537

转载 3D编程知识-看图学知识

环境光,反射光,高光

2015-12-23 17:17:22 750

原创 使用nvDXT.exe把图片转换成dds图片

从nvidia官网下载工具包DDS Utilities 【https://developer.nvidia.com/legacy-texture-tools】转换图片格式需要的工具是 nvdxt.exe ,使用说明见文档 nvDXT.pdf 。为了方便在cmd命令行中使用这个工具,我把 nvdxt.exe 放在了C盘根目录下。把 D:\bg.jpg 文件转换成dds格式文件,转换后的文

2015-12-16 12:51:56 6291 1

原创 在c++代码中执行bat文件

我想在c++代码中执行磁盘上的一个bat文件。这个bat文件的完整路径是:E:\\7z\\my7z.bat。方法一:system("E:\\7z\\my7z.bat");system是C标准库中的函数。方法二:WinExec("E:\\7z\\my7z.bat", SW_HIDE);WinExec是 Windows.h 中的函数。方法三: P

2015-12-15 20:28:55 24796 3

原创 用命令行的方式来执行7z压缩和解压缩

我在研究怎样使用7z,以及7z的极限压缩(把文件压缩到最小size)。7z官网是 http://www.7-zip.org/从官网下载软件安装包。安装完毕后,安装目录里面有一个 7-zip.chm 帮助文件,可以了解7z的详细的使用说明。用命令行来执行7z的极限压缩,就是如下的命令:C:\01_MyApp\7-Zip\7z.exe a -t7znewPack.7z"

2015-11-26 23:55:51 50582 4

原创 [cocos2d-x 3.6]如何实现“侦听触摸事件和侦听按键事件”,触摸回调函数分别在什么情况下执行

在以往的版本中,侦听触摸事件是这样写代码的:class A : public CCLayer{ virtual bool init(); virtual bool onTouchBegan(Touch *touch, Event *unused_event); virtual void onTouchMoved(Touch *touch, Event *unused_

2015-09-21 00:02:26 1268

原创 NodeJS 常用函数

var object = JSON.parse(string)把一句符合JSON格式规范的字符串转换成object对象。var string = JSON.stringify(object)把一个object对象转换成一句JSON字符串。Math.random()返回0和1之间的伪随机数。可能为0,但总是小于1,取值范围[0, 1)获取属于[n, m)范围内

2015-09-16 20:13:34 880

原创 自己生成keystore文件,用于打包release版本的APK

使用java自带的keytool工具,生成keystore文件。

2015-09-01 23:00:52 6437

原创 CocosStudio v2.3 把工程打包成Release版本的APK

控制debug和release打包选项的是下面这个设置页面

2015-09-01 22:20:10 1455

原创 在项目中使用libcurl,解决编译链接错误

从官网下载libcurl之后,它内部已经包含了各个VC版本的工程文件(sln文件和vcproj文件)。我们能够很方便的编译出静态库和动态库。 在使用动态库的时候,一路顺风,没遇到编译问题;在使用静态库时,却遇到了编译链接错误:1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_i

2015-04-20 20:34:12 3797

转载 自己编译lua源码

对于一个开源工程,开始学习它的第一步自然是编译工程。使用vc编译lua,在网上已有许多介绍,但“纸上得来终觉浅”,自己走一遍还是有必要的。步骤如下:1.下载源代码,从lua.org下载最新源代码包lua-5.2.2,解压到本地2.打开vc建立一个solution,就叫lua.sln3.创建一个名为liblua的project(lua库),添加除lua.c和luac.c以外的所有

2015-02-03 15:58:24 3565

转载 lua userdata 汇总

========================================================================================原网址:Lua中的userdata (http://www.jellythink.com/archives/587)轻量级userdata怎么又有了一个轻量级userdata了?这货又是什么?专业点,叫做“l

2015-02-02 19:22:46 3223

转载 Lua的function、closure和upvalue

Lua的function、closure和upvalueLua 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌

2015-02-02 14:39:42 1844

原创 ENet特性简介

国庆假期了,翻译了ENet官网对ENet特性的简介。翻译的不好,能看懂大概意思。/************************************Features and Architecture************************************/ENet evolved specifically as a UDP networking layer

2013-10-06 16:29:35 2709

原创 控制台程序输入CTRL+C后弹出异常的原因

今天在写一个控制台程序。按照以前的经验,输入CTRL+C后,程序应该正常结束,但是今天却每次都弹出一个异常提示框,“0x40010005: Control-C”。排查了很长时间,终于找到原因了。实际上这不是什么错误,只要在Debug模式下,输入CTRL+C或者CTRL+BREAK等命令都会导致系统内部抛出一个异常;在非Debug模式下,系统内部不会抛出这个异常。参考资料在这里:

2013-05-05 14:50:23 6722 3

VisualAssist_10.9.2048(内含破解 完美支持VS2013)

VA插件,内含安装说明,内含破解文件,完美支持VisualStudio2013。

2015-10-27

多线程输出log到磁盘

多线程输出log到磁盘,包括示例程序,经过本人的详细测试;没有经过大规模测试和压力测试。 压缩包内包含以下文件: GGUILogAsyn.cpp GGUILogAsyn.h GGUIStringHelp.cpp GGUIStringHelp.h Main.cpp 如果你需要这个示例代码但是资源分不够,可以留言向我索要。

2013-04-27

多线程把log写入磁盘文件源码

在项目开发过程中,用异步方式把log日志写入到磁盘文件。多线程版,C++实现,Windows平台。 如果你需要这份源码但是资源分不够,可以给我留言索要。

2013-04-20

空空如也

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

TA关注的人

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