-
光线反射算法
光线反射是一个非常重要的概念,或者说常识,这里我们来聊一下真实世界。现实世界中,我们眼睛之所以看到各种各样的物体,其原因就是太阳发出的光线照射到地球上,然后经过反射后进入人的眼睛,人的眼睛接收到光子后在视网膜上成像,然后通过生物信号传递给大脑,所以人就看到了这个世界。这里我们把太阳叫做“光源”,其实我们也有很多人造“光源”,比如电灯,激光等。比如在一间黑暗的屋子,我们打开屋里唯一一盏电灯,瞬间屋子就被照亮,我们的眼睛就能看到屋里的物体。ps:这里我们思考一个现象:我们正午站在一片操场上,四...…
-
C++对象绑定到lua
lua.hpp// lua.hpp // Lua header files for C++ // <<extern "C">> not supplied automatically because Lua also compiles as C++ #ifdef __cplusplus extern "C" { #endif #include "lua.h" #include "lualib.h" #include "l...…
-
lua
LUA和C/C++的沟通桥梁——栈Lua生来就是为了和C交互的,因此使用C扩展Lua或者将Lua嵌入到C当中都是非常流行的做法。要想理解C和Lua的交互方式,首先要回顾一下C语言是如何处理函数参数的。C函数和参数大家知道C语言是用汇编实现的,在汇编语言中可没有函数的概念,与函数对应的是叫做子过程的东西,子过程就是一段指令,一个子过程与它调用的子过程之间通过栈来进行参数的传递交互。在一个子过程在调用别的子过程之前,会按照约定的格式将要调用的子过程需要的参数入栈,在被调用的子过程中,可以按照约...…
-
灯光
Unity灯光烘培Subtractive模式没有镜面反射,动态对象需要从光照探针中获取静态对象的阴影Shadowmask模式与subtractive模式不同,shadowmask可以将所有光照类型的实时与烘焙阴影无缝混合,这意味着我们可以获得远距离阴影。出于性能考虑,我们可以在近处使用实时阴影而远处使用烘焙阴影,从而保持更低的draw call数量。与subtractive模式相反,shadowmask功能还可以生成高质量的实时镜面高光静态对象通过shadowmask从其他静态对象接收阴影...…
-
数学
三角公式直角三角形 Sin(a)角a的对边比斜边 Cos(a)角a的邻边比斜边 Tan(a)角a的对边比邻边 cot(a)角a的邻边比对边 任意三角形 第一余弦定理(任意三角形射影定理) 设△ABC的三边是a、b、c,它们所对的角分别是A、B、C,则有 a=b·cos C+c·cos B, b=c·cos A+a·cos C, c=a·cos B+b·cos A ##向量 加法–相加得出一个新的向量 ...…
-
手柄及move键位
注意 手柄按键设置 ○ 口 X △ L1 L2 左右摇杆按下 触摸板按下 为按键 使用input.getkey()进行调用 左右摇杆 方向键 L2 R2 为轴偏移 使用Input.GetAxis()进行调用 中间触摸板为单独API手柄部分 中部触摸板 PS4Input.GetPadControllerInformation(playerId, out touchPixelDensity, out touchResolutionX, out touchResolutionY, ou...…
-
ps4 VRManager
能上代码不BBusing UnityEngine;using UnityEngine.VR;using System.Collections;#if UNITY_PS4using UnityEngine.PS4.VR;using UnityEngine.PS4;#endifpublic class VRManager : MonoBehaviour{ public float renderScale = 1.4f; // 1.4 is Sony's recommended scale...…
-
ps4 pad controller
能上代码不BBusing UnityEngine;using UnityEngine.PS4;using System;using System.Collections;public class GamePad : MonoBehaviour{ // Custom class for holding all the gamepad sprites [System.Serializable] public class PS4GamePad { public SpriteRenderer t...…
-
ps4 move controller
能上代码不BBusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.PS4;using UnityEngine.PS4.VR;using UnityEngine.UI;using UnityEngine.VR;public class PSHand : MonoBehaviour{ public enum HandType { le...…
-
unity dll加密
1.1 加密方案Unity 3D项目游戏逻辑采用C#脚本,我们知道C#编译生成的DLL或EXE是IL程序集。IL程序集中有一个MetaData,记录了程序集中的一切信息,所以容易被反编译。传统的防破解方式是是对IL程序集进行混淆或者加壳。但是这种混淆基本上只是做一些名称混淆或流程混淆或者加一些打花指令。这种混淆或加壳的结果基本上还是保留了IL程序集的原貌,还是很容易被破解的。因为有这些缺点,我们实现了一套自己的加密方案:直接对IL程序集进行加密。改变程序集形态,这样子,它就不再是IL程...…