<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oilcode的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oilcode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oilcode]]></copyright><item><title><![CDATA[Fbx文件的加载与渲染：一个DirectX11小项目开源啦，主要用来演示fbx文件的加载与渲染]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/77804258</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/77804258</guid><author>oilcode</author><pubDate>Sat, 02 Sep 2017 22:44:13 +0800</pubDate><description><![CDATA[这个小项目最初是用来学习DirectX11的，后来尝试实现一个名为GGUI的UI库，后来尝试fbx文件的解析。
我有个缺点，就是浅尝辄止。一件事，只要学会了一点皮毛，初步达到了目标，就搁置不做了。
去年初步实现了fbx文件的加载与渲染，然后就热情骤减，裹足不前了。
最近热情又来了，就把这个小项目鼓捣了一下，把代码放出来，给大家提供一些思路。
源码托管在github上： 项目链接 https]]></description><category></category></item><item><title><![CDATA[[Unity3D 版本5.X]实现一个跟随摄像机，聚焦到客户端主角身上]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/72805805</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/72805805</guid><author>oilcode</author><pubDate>Mon, 29 May 2017 23:35:17 +0800</pubDate><description><![CDATA[游戏中的摄像机，都是聚焦到客户端主角身上。
为了实现这个功能，我写了两个脚本，第一个脚本用来控制客户端主角的位置和旋转，使用WSAD键控制主角的前后左右移动，使用鼠标右键控制主角的旋转。
第二个脚本是根据客户端主角的transform，设置摄像机的transform，使得摄像机聚焦在主角身上。

这两个脚本都是设置成客户端主角的组件。


第一个脚本 FiMainPlayerMove]]></description><category></category></item><item><title><![CDATA[[Unity3D 版本5.X]实现一个自由漫游的摄像机]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/72803837</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/72803837</guid><author>oilcode</author><pubDate>Mon, 29 May 2017 20:46:05 +0800</pubDate><description><![CDATA[我学习Unity3D一小段时间了，第一个制作目标就是实现一个自由漫游的摄像机。
使用WSAD键控制摄像机的上下左右移动，使用鼠标右键控制摄像机的旋转。
这个功能比较简单，代码也一目了然，不做过多解释了，直接上代码。
//-----------------------------------------------------------------
//1，把本类作为一个组件，包含在 Gam]]></description><category></category></item><item><title><![CDATA[编程知识汇总--抓包工具Wireshark，Fiddler]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/72598403</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/72598403</guid><author>oilcode</author><pubDate>Sun, 21 May 2017 14:56:07 +0800</pubDate><description><![CDATA[Wireshark和Fiddler都是在Windows平台下的抓包工具。TCPDump是Linux平台下的抓包工具。
Wireshark用来抓取TCP和DUP网络包；Fiddler用来抓取HTTP网络包。


Wireshark相关的帖子：
一站式学习Wireshark（一）：Wireshark基本用法

wireshark基本用法及过虑规则



Fiddler相关的帖子：]]></description><category></category></item><item><title><![CDATA[编程知识汇总--捕获dump，生成dump]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52994494</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52994494</guid><author>oilcode</author><pubDate>Tue, 01 Nov 2016 12:12:22 +0800</pubDate><description><![CDATA[windows 应用程序崩溃时的内存转储及dump文件的分析  [传送门]

http://blog.youkuaiyun.com/sp_daiyq/article/details/7965608



vc++程序崩溃后不生成dump文件 [传送门]

http://blog.youkuaiyun.com/lixiangminghate/article/details/50413924



写]]></description><category></category></item><item><title><![CDATA[使用GPU计算骨骼动画（二）我的实践总结]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52846448</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52846448</guid><author>oilcode</author><pubDate>Tue, 18 Oct 2016 10:16:17 +0800</pubDate><description><![CDATA[DX11，创建动态贴图，贴图的最大分辨率是 8192*16384 （或者16384*8192），
并且，宽高的最大值就是 16384 。
创建贴图时，宽高的值不要求是2的整数幂。]]></description><category></category></item><item><title><![CDATA[Unity3D 5.x 启动过程中 License Error 解决办法]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52769317</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52769317</guid><author>oilcode</author><pubDate>Sun, 09 Oct 2016 18:42:15 +0800</pubDate><description><![CDATA[新安装了Unity3D的最新版本5.4 ，启动过程中执行"Check License"步骤的时候报错，"License Error" ，说我没有License。
Unity3D不是对普通用户免费吗？干嘛不让我用啊？
这让我郁闷了好久。我是按照“注册帐号--下载--安装--启动”这样的步骤来做的，一般用户都会这样做，不应该有错才对。
肯定是我遗漏了某个操作步骤，但Unity没有任何提示。这个新]]></description><category></category></item><item><title><![CDATA[使用GPU计算骨骼动画（一）从网络上收集的资料]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52684183</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52684183</guid><author>oilcode</author><pubDate>Tue, 27 Sep 2016 20:01:42 +0800</pubDate><description><![CDATA[假设场景中有一个角色，带有骨骼动画，面数在3W左右。角色右上方有一个平行光源，光源会实时生成阴影贴图（shadow mapping）。
1、使用GPU更新骨骼动画。GPU很快，但是如果场景中带有会生成阴影贴图的光源时GPU就不得不多次计算同一个数据。
   也就是说从灯光方向看场景，生成depth map时需要把模型上的顶点更新到指定帧；
   在实际把场景显示到屏幕时也需要把模型上的顶点更]]></description><category></category></item><item><title><![CDATA[FbxSDK使用总结]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52586109</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52586109</guid><author>oilcode</author><pubDate>Mon, 19 Sep 2016 16:01:31 +0800</pubDate><description><![CDATA[Fbx文件结构太复杂！FbxSDK太难理解！Fbx官网文档功能介绍太不清晰！FbxSDK中的示例程序太冷门，太不解决问题！
网络上找不到能够解决我的痛点的方法。
有相同烦恼的不只我一个人，一个叫 Tianyu Lang 的歪果仁也发出抱怨，并怒喊：
I have searched almost all the corners on the Internet to clarify things]]></description><category></category></item><item><title><![CDATA[FbxSDK官网文档阅读总结]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52489835</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52489835</guid><author>oilcode</author><pubDate>Fri, 09 Sep 2016 21:12:55 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[dll工程中如何生成lib文件]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52293902</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52293902</guid><author>oilcode</author><pubDate>Tue, 23 Aug 2016 19:58:13 +0800</pubDate><description><![CDATA[新建了一个dll工程，除了生成dll文件外，你还想生成相应的lib文件，怎么搞？
解决办法：
为工程添加一个def文件即可。




注意：
添加def文件后，默认情况下，生成的lib文件的名字与工程名字相同；
如果你想使用自定义的lib文件名，修改def的文件内容即可。]]></description><category></category></item><item><title><![CDATA[“单例模式”文章收藏]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52184159</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52184159</guid><author>oilcode</author><pubDate>Thu, 11 Aug 2016 16:54:13 +0800</pubDate><description><![CDATA[《不简单的单例模式Singleton》



《C++程序员们，快来写最简洁的单例模式吧》]]></description><category></category></item><item><title><![CDATA[3D编程知识--收集的帖子]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/52013360</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/52013360</guid><author>oilcode</author><pubDate>Sun, 24 Jul 2016 12:35:51 +0800</pubDate><description><![CDATA[FlagShipEngine，对多线程渲染讲的比较多。传送门
http://www.cppblog.com/flagship/category/9250.html


《The Complete Effect and HLSL Guide》翻译连载，传送门

http://blog.youkuaiyun.com/soilwork/article/details/1402960



修改E]]></description><category></category></item><item><title><![CDATA[3D编程知识--矩阵变换]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51995040</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51995040</guid><author>oilcode</author><pubDate>Fri, 22 Jul 2016 15:15:59 +0800</pubDate><description><![CDATA[为了对一个顶点进行变换（旋转、平移等），可以把它与一个4*4的的变换矩阵来相乘。变换思路如下：设置一个4*4的矩阵，使其表示某一具体的变换。然后将顶点的坐标或者向量的分量放入一个1*4的行向量v中。乘积vX就生成了经过变换的顶点或者向量v'。例如，如果X表示沿着x轴平移10个单位，v=[2,6,−3,1]，则乘积vX=v'=[12,6,−3,1]。

前面提到了将顶点的坐标或者向量的分量放入一]]></description><category></category></item><item><title><![CDATA[如何保护一个代码模块，使其只能在主线程中使用]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51823507</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51823507</guid><author>oilcode</author><pubDate>Mon, 04 Jul 2016 20:53:55 +0800</pubDate><description><![CDATA[开发过程中可能会遇到这样的情况，写了一个代码模块，它是非线程安全的，所以只能在某个线程（例如主线程）中使用。
如何防止在其他线程中误用该模块呢？（例如，刚入职的同事可能不熟悉代码，很有可能会误用）
有一个办法可以从底层把该代码模块保护起来，一旦在其他线程中被调用，就弾框报错。
每个线程都有一个线程ID。
在指定的线程中对“非线程安全的代码模块”做初始化操作，“非线程安全的代码模块”把当前线]]></description><category></category></item><item><title><![CDATA[“鼠标拖动游戏窗口，消息循环会卡住，导致游戏不能更新不能渲染”，解决办法在这里]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51589158</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51589158</guid><author>oilcode</author><pubDate>Sun, 05 Jun 2016 14:32:27 +0800</pubDate><description><![CDATA[开发端游的同学都知道，鼠标按在窗口标题栏上进行拖动，游戏就会卡住不能更新不能渲染。
还有另外一种情况也会导致游戏卡住，就是弹出窗口的系统菜单时，例如下图：




“弹出系统菜单导致游戏卡住”，这种情况比较容易解决，我先讨论这种情况。
有两种操作会弹出系统菜单：
1，鼠标左击标题栏左侧的图标
2，鼠标右击标题栏
当用户发生上面两种操作时，我们拦截掉Windows消息，不要通知给]]></description><category></category></item><item><title><![CDATA[我要使用TcMalloc]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51211248</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51211248</guid><author>oilcode</author><pubDate>Thu, 21 Apr 2016 17:48:16 +0800</pubDate><description><![CDATA[TcMalloc（Thread-CachingMalloc）是google-perftools工具中的一个内存管理库。TcMalloc在内存分配的效率和速度上要高很多，而且支持多线程。

1，介绍和初步使用的帖子
推荐一个跨平台内存分配器tcmalloc用在3D游戏上
Gperftools中tcmalloc的简介和使用
TcMalloc的介绍以及Windows下安装使用

2，当你的]]></description><category></category></item><item><title><![CDATA[64位CPU，64位操作系统，和64位应用程序三者之间的关系]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51174656</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51174656</guid><author>oilcode</author><pubDate>Sun, 17 Apr 2016 19:30:47 +0800</pubDate><description><![CDATA[64位CPU
目前市面上的CPU都是64位且兼容32位的CPU，既支持64位指令集，也支持32位指令集。在这样的CPU上面，既能安装64位操作系统，也能安装32位操作系统。


64位操作系统
目前主流操作系统都是64位操作系统。只有64位操作系统才能发挥CPU中的64位指令集的功效。如果是32位操作系统，它只能发挥CPU中的32位指令集的功效。
目前的64位操作系统都做了兼容，既能运]]></description><category></category></item><item><title><![CDATA[编程知识汇总--3D模型文件的通用格式：FBX]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51132125</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51132125</guid><author>oilcode</author><pubDate>Tue, 12 Apr 2016 12:25:11 +0800</pubDate><description><![CDATA[1，FBX、DAE模型的格式、导入与骨骼动画
本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明
原文地址：http://www.zwqxin.com/archives/opengl/model-fbx-dae-format-import-animation.html



2，基于FBX SDK的FBX模型解析与加载

http://blog]]></description><category></category></item><item><title><![CDATA[云风的博文《Lua C API 的正确用法》读后总结]]></title><link>https://blog.youkuaiyun.com/oilcode/article/details/51086147</link><guid>https://blog.youkuaiyun.com/oilcode/article/details/51086147</guid><author>oilcode</author><pubDate>Thu, 07 Apr 2016 18:22:20 +0800</pubDate><description><![CDATA[云风的博文《Lua C API 的正确用法》（http://blog.codingnow.com/2015/05/lua_c_api.html）
该文章是一年前写的，不好意思在原文下面写心得体会了，就把想说的写在这里。


1，在你的程序中嵌入lua时，最好使用由你的编译器编译lua源代码得到的库文件（lua.lib）。
这是因为，在lua的异常处理机制里面会使用一些宏，在不同的编译环境]]></description><category></category></item></channel></rss>