- 博客(89)
- 资源 (5)
- 问答 (4)
- 收藏
- 关注

原创 c++ typename用法
先看这两篇文章。https://blog.youkuaiyun.com/vanturman/article/details/80269081https://blog.youkuaiyun.com/pizzq/article/details/1487004使用typename的规则最后这个规则看起来有些复杂,可以参考MSDN:typename在下面情况下禁止使用: 模板定义之外,即typename只...
2019-09-27 11:41:43
1726

原创 协变与逆变的简要说明
在看C#的时候看到了协变与逆变,百度一下发现原来C++, java里早就有了协变与逆变.首先说明协变与逆变的含义:逆变与协变用来描述类型转换(type transformation)后的继承关系,其定义:如果A、B表示类型,f(⋅)表示类型转换,≤表示继承关系(比如,A≤B表示A是由B派生出来的子类)f(⋅)是逆变(contravariant)的,当A≤B时有f(B)≤f(A)成立;f(⋅...
2019-03-31 14:52:27
5030
1

原创 简单图解有限状态机与状态模式
限状态机将一个对象的行为分解为容易处理的“块”或者状态,对象执行了某些变换对象将从一个状态变成了另一种状态,说的简单点就是状态流程图,然后这些状态的数量是有限的。毛星云的博客里举了一个很好的例子说明我们为什么要使用有限状态机。http://blog.youkuaiyun.com/poem_qianmo/article/details/52824776就拿他举的例子说明吧:假如我们现在正在开发一...
2018-12-03 01:39:04
12442
1
原创 Mecanim动画系统的Animation Loop
假定某一动画为right控制上图球体水平移动由于正方体没有选中Loop Time,在A 状态第一次结束后再次进入A状态,正方体的位置并没有变化而如果正方体选中Loop Time,在A 状态第一次结束后再次进入A状态,动画会再次播放,正方体会回到原位置,再播放。只有在A状态使用的动画选为 Loop 时,融合结束时间超过 A使用的动画结束时间 A状态才会重复否则如下:...
2020-07-23 22:13:03
729
原创 unity 动画混合总结(一)
动画混合总结:1D: 运动阈值,看横轴,下图是-1到1.当处于某个金字塔顶峰时,表示该动画权重为1,其它动画权重为0.注意横轴,横轴表示动画的影响值,对于某一位置的参数所有动画影响值之和为100%,上图如果红色标记处于中间,那么2nd motion影响值为100%,其余为0.虽然1D混合可以添加很多动画剪辑,但是,最终参与混合的只有两个。如何判断混合动画权重:直接判断当前混合参数在所有动画阈值中的位置。假设当前所有动画阈值为1,2,3,4,5,6...
2020-06-28 00:33:42
3267
转载 c++对象模型
原文:https://www.cnblogs.com/HelloGreen/p/12641645.html简单对象模型:为所有成员建立一个Slot,也就是一个指针,让这个指针指向数据在简单对象模型下,因为类的函数成员,数据成员都没有直接放到对象模型中(放入的是指向成员的指针),因此可以解决“因menbers不同因而需要不同的存储空间”(没明白书上这句话的意思)的问题。优点:简单缺点:每增加一个成员,对象模型就得增加一个指针,内存与成员数量成线性关系每次访问member,都需要
2020-06-14 16:57:46
219
原创 windows游戏编程(三) 创建菜单资源
windows游戏编程大师技巧第二版也是很老的书了,内容有些变化。使用vs2019创建菜单资源:资源名称修改为MainMenu.rc,查看菜单ID:方法一:双击进入:菜单ID为IDR_MENU1双击打开resource.h文件这里的ID_FILE_OPEN,ID_FILE_CLOSE就是菜单栏按钮的id,后面代码中还需要使用。代码记得#include "resource.h"#define WIN32_LEAN_AND_ME...
2020-05-24 17:25:31
399
1
原创 Window游戏编程 (二) 创建两个窗口
#define WIN32_LEAN_AND_MEAN //预编译指令 指示编译器不要包含MFC的内容#include <Windows.h>#include <windowsx.h>//我们创建的窗口和其他应用程序窗口都会产生事件和消息,所有消息都进入一个队列,并且我们的窗口消息发送到我们的窗口专用队列中,//然后,主事件循环检索这些消息,并且把他们我们的窗口WindowProc中处理/*hwnd:窗口句柄,当我们使用同一个类建立多个窗口时才会用到,hwnd是表明.
2020-05-24 17:14:29
818
原创 windows游戏编程 (一) 了解WinMain函数,创建一个信息框
参考《Windows游戏编程大师技巧》1.创建工程对于Vs2019, VS20171)桌面向导2)选择桌面应用程序,空项目2.代码如下:#define WIN32_LEAN_AND_MEAN //预编译指令 指示编译器不要包含MFC的内容#include <Windows.h>#include <windowsx.h>/*#define WINAPI __stdcall#define CALLBACK __stdcall__st..
2020-05-17 20:58:32
462
2
原创 c++类型转换 简单实例
// 类型转换.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;class A {public: int i; //构造函数使用explicit修饰,显式转换 explicit A(int _i):i(_i) { cout ...
2020-05-05 11:16:34
175
原创 使用struct完成一个可变长数组
《c++深度探索对象模型》 P20:c++中凡是处于同一个access section(访问区段,也就是private,public这些)中的数据,必定保证以声明顺序出现在内存布局当中。但是多个access section中的各笔数据,排列顺序就不一定了。对于从c发展来的结构体,除了与类在默认访问权限上不同,内存布局上也存在区别。对于struct,是按照声明顺序来存放数据的。可以利用这...
2020-04-19 23:19:27
834
原创 通过高度图求法线
参考:https://catlikecoding.com/unity/tutorials/rendering/part-6/只对参考https://catlikecoding.com/unity/tutorials/rendering/part-6/求法线部分说明。对于高度图,它存储的是高度数据。我们的目的是求顶点的法线,也就是空间曲面上任意点的法线。对于一般的平面如果已知平面方程可以...
2019-11-10 17:17:59
2613
原创 镜面反射
参考:https://catlikecoding.com/unity/tutorials/rendering/part-8/https://blog.youkuaiyun.com/puppet_master/article/details/80808486
2019-11-06 18:24:27
370
原创 Unity Shader在多个Pass中使用自定义的函数
直接参考这篇文章吧:https://blog.youkuaiyun.com/huahuakucha/article/details/89476732就是利用CGINCLUDE 与 ENDCG把要用到的包一下就行,如果在Pass中没有使用#pragma编译指定的函数,那么也是可以直接使用的....
2019-10-19 21:53:18
966
原创 c ++ 虚表
参考:https://www.jianshu.com/p/93f37ce285d4// 虚表.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;class Base {public: virtual void f() { cout << "父...
2019-10-15 21:07:38
377
转载 Direct12 3D游戏开发实战 “Callback”: 模板 从属名称的使用必须以“模板”为前缀”
使用Vs2017 按照书上的操作,报错 “Callback”: 模板 从属名称的使用必须以“模板”为前缀”解决办法见链接:https://blog.youkuaiyun.com/u014038143/article/details/82377610取消 VS中的permissive即可。顺便转下,VS2017中的新建项目步骤https://www.jianshu.com/p/d6607...
2019-09-27 00:45:46
962
原创 组合数
https://leetcode-cn.com/problems/combination-sum/第一个方法自己写的,内存方面因为函数调用传递了不少参数,消耗了不少内存。效率方面,也是小于0肯定不在继续搜索下去,不知道为什么慢了那么多。执行用时292ms 88.6MB// 组合总和.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#inc...
2019-09-17 00:42:01
213
1
原创 Unity 使用脚本修改资源AssetBundleName
通常可以使用AssetImporter importer = AssetImporter.GetAtPath(assetpath);获取文件夹下资源,之后修改assetBundleName。但是,如果要操作的是文件夹下某些文件,或者每个文件AssetBundleName都不相同应该怎么办呢? 通常,使用AssetImporter.GetAtPath(assetpath)时,如果assetpa...
2019-09-10 19:22:31
2080
原创 Unity 基于几何方法描边
Unity Shader 入门精要里提到一种基于几何方法的描边方式。https://blog.youkuaiyun.com/candycat1992/article/details/45577749Shader "Unity Shaders Book/Chapter 14/Toon Shading" { Properties { _Color ("Color Tint", Color) = (...
2019-09-04 01:04:19
1045
原创 Trie树
Trie树:http://hihocoder.com/problemset/problem/1014?sid=1526165描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到...
2019-08-26 00:31:36
130
原创 仿指针类与仿函数类
一个类,如果它的对象使用时像是指针,或者函数那么这个类就是一个仿指针类与仿函数类。原理分析:在使用指针时,我们使用的运算符通常是*, &, ->。对于函数我们使用的是函数调用运算符,也就是( )因此要使得一个类像指针,那么类内重载指针所使用的运算符不就行了。同理,要使得类像一个函数,那么类内重载函数调用符就行了。仿指针类:智能指针:一个...
2019-08-14 23:40:18
288
原创 Transform.forward 与 Vector.forward
查阅Unity C#端源码:https://github.com/Unity-Technologies/UnityCsReference// The red axis of the transform in world space.public Vector3 right { get { return rotation * Vector3.right; } set { rotat...
2019-08-13 15:53:17
817
原创 Unity中的SetFromToRotation(之前写的有问题)
修改:《Unity API解析》一书中关于SetFromRotation应该有点问题,这里使用transform.rotation = q1就实现了将GameObject对象自身坐标系中向量v1指向的方向旋转到v2方向了??下面的部分写于8.13号创建一个fromDirection到toDirection的旋转。这里需要注意的是,是将GameObject自身坐标系中的向量v1...
2019-08-12 15:23:46
1220
原创 C# 在循环内捕获变量
匿名方法捕获变量:static MethodInvoker CreateDelegateInstance( ){ int counter = 5; MethodInvoker ret = delegate{ Console.WriteLine( counter ); counter++; } ret(); retu...
2019-08-05 14:17:40
592
原创 C#委托与事件(二)
在说C#委托时,往往指的是委托类型而不是一个委托类型的对象(最好是区分委托类型和委托实例),在说起事件的时候,可以说是封装过了的委托类型对象吧。事件不是一种类型,它是封装过了的委托类型的对象。如下代码,如果事件是一种类型,那下面代码中有事件类型的对象吗?为什么是HandEvent += Method;而不是HandEvent handevent += Method;...
2019-07-30 10:27:59
149
原创 unity 异步与多路复用(一)
参考《unity3D 网络游戏实战》第二章 异步与多路复用《socket中accept()函数的理解》——https://www.cnblogs.com/cooperstuff/archive/2012/03/21/2410494.html这里需要注意的:unity是单线程引擎,在其它线程内不可以调用unity API,也无法修改unity UI,所以这里修改ui的部分,就放...
2019-07-22 17:09:54
419
原创 C#扩展方法
参考:《深入理解C#》扩展方法必须具备以下特点:1.必须在一个非嵌套的,非泛型的静态类中(因此必然是一个静态方法)2.必须要有一个参数3.第一个参数必须使用附加的this关键字作为前缀4.第一个参数不能有其他任何修饰符(比如out或ref)5.第一个参数的类型不能是指针类型第一个参数的类型称为扩展类型,即该方法扩展了该类型,下面的代码中扩展了类型Testus...
2019-07-19 17:59:08
718
原创 Unity中为什么要使用LayerMask
个人理解:使用Layermask的好处:首先,layerMask是一个32位的掩码,32位掩码一个32位二进制数,每一位表示一个状态,对于layerMask这个状态就表示某一层的打开关闭状态,0表示关闭,1表示打开。那么,为什么要使用掩码不直接使用十进制数呢?对于一个十进制整数,可以使用字典的方式存储状态,< 层数, 状态 > 比如要表示第8层的打开关闭状态,可能的函数就是传入...
2019-07-09 11:04:42
1462
原创 漫反射与高光反射总结
对于漫反射:diffuse = 光照颜色*材质漫反射颜色*max( 0, cos( 点到光源方向与法线夹角 ) )注:对于一般的纹理来说,材质漫反射颜色就是纹理采样颜色这里主要需要求出的是点到光源方向,并且在这里点到光源方向是在世界空间下的。求解说明:1. UnityWorldSpaceLightDir( float4 worldPos )函数接收一个世界空间下的位置返回一个该...
2019-06-28 01:17:16
2386
原创 Unity shader法线纹理应用
注:tangent : TANGENT; 类型为float4, w可以用来翻转副法线1.Unity切线空间问题和推理思考有部分切线空间推导https://www.jianshu.com/p/af800402f5db2.Unity文档对Mesh.tangents说明:https://docs.unity3d.com/ScriptReference/Mesh-tangents.h...
2019-06-27 17:29:37
440
原创 Unity shader 高光
参考<unity shader编程精要>_Gloss越大高光区域越小// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "MyShade...
2019-06-26 15:43:10
772
原创 unity shader漫反射
1. 漫反射物体在环境光下反射的光强 = 环境光强*材质对环境光的反射系数2. 漫反射物体在入射光下反射光强 = 光源强度*材质对环境光的反射系数*cos入射光与法线夹角参考:https://www.cnblogs.com/luxishi/p/6422852.html漫反射和Lambert模型求光源下物体漫反射颜色使用的是公式 2物体在点光源下漫反射颜色= 入射光颜色*漫反射...
2019-06-25 15:27:41
662
3
原创 ShaderLab结构
Shader ShaderName{ //属性 Properties { 属性名称(面板上显示的属性名称, 属性类型) = 默认值 } //Shader文件可以包含多个Subshader语义块,Unity扫描所有的Subshader,然后选择第一个可以在平台 上执行的Subshader Subshader ...
2019-06-25 10:37:58
544
原创 复习C++
很多东西长时间没用,写点东西加强下。0.数组名不是指针谭浩强的书上说过数组名是数组首元素地址,而指针的值是地址,所以说数组名不是指针。指针又叫指针变量,指针的值是地址,指针可以修改从而指向其他空间。而C++中的数组名是不可修改的右值,它就不是个指针,这点记住了!!!参考:https://www.cnblogs.com/xiehongfeng100/p/4684825.html...
2019-06-24 17:31:40
132
原创 C#一点一点积累吧
1.读取文件https://blog.youkuaiyun.com/swin16/article/details/80256123下面使用try catch可以很方便判断文件是否存在,可以避免使用file.exist 提前判断文件是否存在try{ using (StreamReader reader = new StreamReader( path) ) { }}c...
2019-06-05 15:57:54
201
原创 unity obj模型文件数据与原文件不一致
参考:Normals&Tangents:https://www.cnblogs.com/Tearix/p/6939948.html?utm_source=itdadao&utm_medium=referralModel/Mesh相关属性:https://blog.youkuaiyun.com/Htlas/article/details/89030582在Unity中展开Obj文件...
2019-05-20 20:19:55
870
转载 Unity中的坐标系(转载)
这篇文章写的比较全,切线空间也有介绍。https://blog.youkuaiyun.com/ronintao/article/details/52136673
2019-05-15 15:53:39
187
原创 法线纹理实践(一)
以下内容来自《unity shader入门精要》切线空间下计算光照:光照方向,视角方向全部转换到切线空间下计算。世界空间下 计算光照:将从法线纹理上得到的法线方向转换到世界空间下,之后再和世界空间下的光照方向,视角方向进行计算。方法一:TANGENT_SPACE_ROTATION是一个宏,参考:https://blog.youkuaiyun.com/ronintao/articl...
2019-05-15 15:52:28
240
转载 切线空间与凹凸贴图(转载)
https://blog.youkuaiyun.com/bonchoix/article/details/8619624https://www.cnblogs.com/wangchengfeng/p/3470310.htmlhttps://blog.youkuaiyun.com/yjr3426619/article/details/81022781切线空间:https://www.cnblogs.com/al...
2019-04-08 02:05:58
255
转载 游戏开发中的噪声(转载)
https://blog.youkuaiyun.com/Sengo_GWU/article/details/80153638https://blog.youkuaiyun.com/qq_34302921/article/details/80849139https://zhuanlan.zhihu.com/p/22337544
2019-04-01 01:34:02
278
[游戏编程中的人工智能技术]
2017-03-12
C++显式调用构造函数初始化对象有用到拷贝构造函数么?
2017-07-16
Eclipse怎么使用智能指针出错了?
2017-07-07
为什么静态内部类成员变量不能直接被外部类访问
2017-07-03
flask 页面跳转到动态网页
2017-06-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人