- 博客(54)
- 资源 (9)
- 收藏
- 关注
转载 [gdc17]《守望先锋》的EntityComponent架构
https://zhuanlan.zhihu.com/p/27555356gdc17上面由暴雪的Tim Ford带来。由于原文是gdcvault上面的付费内容,贴下腾讯的gad上的翻译:《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录本文可以说是对于entity/component系统(entity component system简称ECS了)有
2017-09-10 21:16:50
558
转载 《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录
http://www.gad.qq.com/article/detail/28682《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录安凯文 2017-06-14 3.44w浏览游戏开发Unity暴雪渲染角色轮询想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯GAD游戏开发行业精英群156225479《守望先
2017-09-10 21:15:37
929
原创 Unity3D离屏渲染指定UGUI窗口的
目前项目中,需要增加截图分享的功能,unity3d中截图的方式有两种,直接截屏和截取摄像机。但是需要是,只需要截取某个ugui界面中的一部分,然后和背景logo图做叠加。就是做到,看到的效果图和实际分享出去的图片是有一些不一样的。如果直接才用截屏的方式,然后从中扣取需要的部分,然后叠加在背景图上。这样方式也是可以的。但是如果扣取部分是半透明的话,就会有下面的效果。这样的效果
2016-09-30 15:25:13
3170
2
原创 U3D 数学--Transform 分析
反编译的U3D 的Transform 的源码,研究了下里面的关于数学的一些借口,发现有两个函数的实现有 性能问题。如图当relativeTo=Space.Self 的时候,其实直接改成this.localPosition += translation; 接可以了。其实底层存的应该都是localPosition. 即使算出了worldposition最终底层还是需要转换为loca...
2016-09-21 10:28:59
1005
原创 Unity3D 神奇的GetGPUProjectionMatrix函数
UnityEngine.GL 中有一个函数GetGPUProjectionMatrix 具体可以参考官方说明文档。这函数的作用,是用来处理DX 和OpenGL的坐标差异性的。DX是以左上角为(0,0) OpenGL是以右下角为(0,0) 。DX的Z范围是(0,1) GL是(-1,1)。所以,unity3d引擎渲染的时候,根据使用的不同渲染器,通过该函数处理,即可,统一DX 和GL
2016-09-13 11:31:46
7181
1
原创 U3D着色器源码分析
最近在看u3d 5.3.3着色器的源码,这里先简单的分析下UnityShaderVariables.cginc 中 UnityLighting的_WorldSpaceLightPos0的值是怎么获取的。CBUFFER_START(UnityLighting) //光照的参数 //_WorldSpaceLightPos0.w可以表明该光源的类型,如果为0表示是平行光,为1表示是点光源或者聚光
2016-09-13 11:13:25
1147
原创 UGUI 实现引导
实现ui的引导有很多种方式,一般都是在再外层盖上一个 掩码层。 然后把需要引导的区域镂空出来。镂空的区域可以用很多ui的拼接,个人感觉这种方式比较麻烦。下面给出一种解决方案,直接在着色器中实现镂空的区域。直接把镂空的区域传给着色器,然后再着色器中把这个区域透明掉即可。1. 根据ui控件,得到镂空区域 代码如下: Vector3
2016-09-08 11:18:11
1962
1
原创 builtin_shaders-5.3.5f1 代码注释
准备慢慢的对unity3d自带的着色器进行注释。 git地址:https://github.com/wumiliu/builtin_shaders-5.3.5f1
2016-09-08 10:55:19
1931
原创 UGUI灰度处理
好友在线的时候,头像是正常显示,离线的情况下,显示灰色的。可以直接提供两种状态下的图片。但是这样比较浪费资源。直接通过修改着色器,实现是比较好的一个方式。解决方案:复制一份 Shader "UI/Default". 然后直接修改,这样可以保持ui原来的着色情况。然后直接使用内置的函数Luminance 进行灰度处理Shader "Unlit/UIGrayScale"{ Proper
2016-09-08 10:51:18
3741
原创 FXAA 移植
简单的移植FXAA。代码 https://github.com/wumiliu/D3D11Sample/tree/master/D3D11EngineFXAASample具体实现具体效果如下。
2015-11-12 17:50:04
740
原创 D3D11天空盒的实现
具体代码参考 https://github.com/wumiliu/D3D11Sample 中的SkyBox类可以参考DirectX 10 3D游戏编程入门.pdf创建一个球形,或者立方体 都可以。然后进行立方体贴图即可。现在详细解释写shader.cbuffer MatrixBuffer: register(b0){ matrix MVP;
2015-11-10 15:39:40
4304
1
原创 pvr查看工具 windows 下预览
1. 在ios 和安卓那边,纹理图片经常会转换为pvr格式。 pvr 格式需要特定的显卡支持才行。所以在windows 下查看需要借用工具 然后自己顺便用C#写了一个。下载地址csdn:
2014-06-05 23:51:42
4484
2
原创 ID3DXMesh接口 创建自己的立方体网格
D3DXCreateMeshFVF首先创建一个ID3DXMesh接口。ID3DXMesh接口的说明可以参数龙书。这里主要是用代码来讲解:#define VERTEX_FVF (D3DFVF_XYZ | D3DFVF_TEX1) hr = D3DXCreateMeshFVF( 12, 24, D3DXMESH_MANAGED, VERTEX_FVF
2013-11-14 16:44:43
2663
原创 3 CLuaScriptMgr单例设计
首先定义一个模板类 Singleton在Singleton.h中#define DEFINE_SINGLETON2(class_name); \public: \ friend class Singleton;\private: \ class_name(const class_name&){} \ class_name& operator=(const class_name&)
2013-06-30 09:18:19
2105
原创 Lua学习2 Lua小框架的搭建
看了上一篇Lua环境搭建具体http://blog.youkuaiyun.com/liuwumiyuhuiping/article/details/9196435为了方便学习。 具体新开始搭建一下学习的小框架.lib存放是 lua编译出来的动态库。Bin存放的是 应用程序 。test存放的就是lua 的测试文件。LuaSrc就是我们的源码了。LuaSrc 里面包含了两个工程一个是Luasrc 和L
2013-06-29 13:03:50
2248
原创 Lua环境配置VS2010
新建的 lua 交流群: 321077931环境搭建:首先从 http://www.lua.org/ftp/下载lua 源码, 我选择的是lua-5.1.5.tar.gz我的开发环境是Win7+ VS2010打开VS2010新建一个工程LuaSrc。 把下载的源码解压到相应的目录下。 然后编译可以选择 编译成动态链接库 或者静态链接库。需要注意的是 lua.c 和luac.c 不
2013-06-28 14:00:51
9320
原创 函数指针(回调函数)
今天看 到了一个问题:c和c++中的struct有什么不同?c++中struct和class的主要区别?答案是:c和c++中struct的主要区别是:c中的struct不可以含有成员函数,而c++中的struct可以。声明结构体变量时,c中的struct不可以省略,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默
2013-01-27 20:38:31
4229
原创 类成员函数调用的细节
class Concrete{public: int a; void Print() { printf("******** Hello World***************\n"); } void PrintError() { val = 10; }private: int val;};void main(){ int i =100; Concrete
2013-01-25 22:54:01
822
原创 C++引用与指针的区别
今天看了一篇模块, 里面讲到了引用和指针。http://blog.youkuaiyun.com/wangqiulin123456/article/details/8464418这里我谈下自己的感受吧。.引用与指针有什么区别?1)引用必须初始化,指针不必。2)引用初始化之后,就不能改变了。 指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。指针指向一块
2013-01-25 22:39:41
774
原创 void * 的使用以及作用
最近在学习 windows api 编程, 在学习过程中用到了很多 HWND ,HANDLE 等。查看了定义才发现其实就是 void*在头文件中 有一个宏 #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name这个到底是什么意思呢?其实可以把 ## 看成是
2013-01-22 17:27:53
1721
转载 深入分析MFC文档视图结构(项目实践)
http://www.cnblogs.com/k-eckel/articles/188489.html今天看了这篇博客, 感觉很不错。 转载了深入分析MFC文档视图结构(项目实践) k_eckel:http://www.mscenter.edu.cn/blog/k_eckel文档视图结构(Document/View Architecture)是MFC的精髓,也是Obse
2012-12-26 10:47:45
1417
原创 C# 打开网络文件(UNC)
比如一个 UNC 路径为 string path = @"\\WUMI_LIU_PC1\Users\1.pdf"; string[] readText = File.ReadAllLines(path, Encoding.UTF8); //这样就可以读取到 path 路径下的文件了。这是在C# 中的使用。 按照这个思路, 在 htm 中 也这么使用这个路径。发
2012-12-14 16:18:03
4177
原创 Windows 下 绘制位图
考:http://blog.youkuaiyun.com/zhmxy555/article/details/7335103将位图从文件加载带绘图窗口中必须经过一下几个步骤。从文件中加载位图对象建立一个与窗口DC兼容的内存DC内存DC只用步骤1中所建立的位图对象将内存DC的内容粘贴到窗口DC中,完成显像操作要从文件加载位图,常常使用LoadImage()函数。HANDLE LoadI
2012-12-11 13:11:30
2549
原创 Windows API 概要
前面已经熟悉了 简单的API 应用程序的编写了。今天要掌握的是,Windows数据类型 。 Windows API 使用了很多 Windows 自己定义的数据类型。读者可能较为熟悉 C 语言或 C++语言的数据类型。要熟练使用 Windows API 必须要熟悉 Windows 数据类型。这些数据类型是Windows 特有的。在 SDK 的相关头文件中有定义。在众多的Wi
2012-12-02 15:29:37
1362
原创 Windows API 第一个实例程序
由于工作,需要,准备开始 学习一下 Windows API 编程。 主要是从 精通 WinowsAPI 这个书籍入手的, 很多东西,都是参考或者借鉴原文的。首先需要添加 #include 这个头文件#pragma comment(lib,"User32.lib"); 引入库。 如果是用vc6 的工程,默认是添加了这个库了。 所有的函数的入口都是 从main 开始的。WinMa
2012-12-02 15:11:14
3177
转载 VC6.0 error LNK2001: unresolved external symbol _main解决办法
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unre
2012-11-28 10:02:50
1007
原创 多线程的使用
在UI 界面中,会遇到 假死的问题。 用多线程 ,就可解决这种问题。首先引入命名空间:using System.Threading; private void button2_Click(object sender, EventArgs e) { MessageBox.Show("Popou this Box"); }
2012-11-07 23:38:02
900
转载 UNF-8 和Unicode 编码
https://github.com/cocos2d-x/cocos2dx-win8/blob/master/cocos2dx/platform/CCCommon.cpp std::wstringCCUtf8ToUnicode(constchar* pszUtf8Str,unsignedlen/* = -1*/){ std::wstringret; do
2012-09-24 21:40:37
1695
转载 GDI编程基础(转贴)
http://www.cnblogs.com/SunJavaLiu/articles/251463.html http://blog.youkuaiyun.com/byxdaz/article/details/5949590 http://aiyzda.blog.163.com/blog/static/1755381822011619848992/GDI(Graphics Device Int
2012-09-16 23:33:56
810
转载 C#字符串与unicode互相转换
/// /// 普通字符串与UniCode字符串间转换 /// public static class StringToUniCode { /// /// 字符串转为UniCode码字符串 /// /// /// public static string St
2012-08-20 11:14:53
21936
转载 Direct3D11代码画一个三角形
http://blog.youkuaiyun.com/zhmxy555/article/details/7774929
2012-07-25 23:18:22
850
原创 如何在C#中调用C++或者VB中的命名空间
如果想使用不同语言的命名空间,using 之后,还必须通过设置引用资源。还有就是在工程里面设置目标框架: Target framework
2012-07-22 22:18:01
905
原创 VS2010 中C++ 和C# 颜色转化
在.net 中,用C++开发时候用到了COLORREF 而在C# 中没有这个只要Color,所以需要进行转化 COLORREF类型颜色的值COLORREF cr=RGB(123,200,12); 其中的R、G、B三个分量的排列顺序是BGR。.NET中通过数据类型Color表示颜色,该类有一个函数FromArgb(int,int,int),可以通过输入RGB三个值得到一个Color类型的
2012-07-18 09:57:24
1925
转载 WP7 ,画板
http://blog.youkuaiyun.com/tcjiaan/article/details/7392179# http://www.oschina.net/wp7
2012-05-27 02:45:43
656
原创 同步和异步调用
1Metro读写文件Metro不是在随便位置都可以读写文件的,只开放了相应的读写位置。我只介绍在文档库读写文件的方法。最重要的是必须在package manifest中事先声明。每个项目管理器中都有一个manifest文件,双击打开,点击功能按钮,在功能列表中列出了你的程序需要提供的功能,也隐含着你需要被提供访问权限的位置,勾选你需要的权限很重要,否则在访问你不具备权限的位置时将引
2012-05-10 11:08:52
1594
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人