Home

定点数开根号的性能问题

开根号有两种比较常见的方式:牛顿迭代法和二分法。 二分法 public static double SqrtBinary(double value) { /**二分法实现开方 需要注意的是: 1.初始上界是A+0.25,而不是A 2.double型的精度DBL_EPSILON,不能随意指定 */ double a = 0.0, b = value + 0.25, m; // b = A 是错误的上届 // while(b - a > 2*DBL_EPSILON){ //sometimes dead cycle when m == a or m == b. for (;;) { m =...

Read more

Unity的GetComponent非空问题

基本的原因 Unity对部分内置的Component(如rigidbody、animator等),在GetComponent时,如果组件不存在,Unity不会返回null,而是返回一个会判断为null的object(类似一个gameObject被Destroy后,会判断为null一样,可以参考这篇文章:Custom == operator, should we keep it?。这是因为Unity重载了UnityEngine.Object的==运算符。 // 假设gameObject没有Rigidbody组件 var com = gameObject.GetComponent<Rigidbody>(); if (com == null) { // ok,因为Un...

Read more

Lua中的代码效率注意事项

在项目开发的实际过程中,可能由于各种原因而导致lua代码在执行效率上出现了瓶颈。那么就必须要在代码书写上就要注意代码的实际执行效率了! luajit的效率 luajit 在不同平台下的表现 传送门 luajit 的jit 模式 JIT模式在iOS以及其他有权限管制的平台(例如PS4,XBox)都不能使用。 luajit 的interpreter模式 interpreter模式就和原生的lua没啥区别了。 luajit 的编译方式(trace compiler) trace compiler的不稳定性,还有jit在平台上编译转换的时候,很多时候都是失败的 luajit高效代码注意事项 官方优化指导link 以下是个人译文(错误指出(Conerlius)) This i...

Read more

本站的github pages搭建

前提说明 此搭建方式是基于github pages来搭建的,而github pages就是搭建了jekyll,所以这里仅仅只是简单的搭建,如果有大佬要自己写样式,请忽略本文! Blog模板 在知乎上有不少这样的问答,本文用的就是林安亚的博客 搭建 模板上行 本文没有使用git的fork,因为我是从黄玄大佬的blog样式换成这个样式的。这里就简单说说github pages的创建; github pages创建 打开github,然后创建一个名为XXX.github.io的仓 https://github.com/XXX?tab=repositories这里的XXX要和XXX.github.io一样,否则你所创建的pages生成的link就会带有其他的前缀了! ...

Read more

opengl基础学习(3)

目前的工程放置在github上Link 继上章 在上一个章节里,我们定义了监听主动关闭窗口的while循环,现在我们需要在每次循环里绘制一个简单的三角形 while (!glfwWindowShouldClose(window)) { // m_curSession = new OpenGL_Session1(); m_curSession->drawView(); glfwPollEvents(); glfwSwapBuffers(window); } 通过一个对象OpenGL_Session1来绘制这个三角形,同时也是为了以后方便进行其他的内容; 首先创建一个OpenGL_Session1的C++对象,添加器公开方法drawView,我们在while...

Read more

IL 指令记录

本文仅仅只是为了方便查找IL 指令记录 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上 And 计算两个值的按位“与”并将结果推送到计算堆栈上 Arglist 返回指向当前方法的参数列表的非托管指针 Beq ...

Read more

git代码版本管理

git代码版本管理 git的各种分支定义 划分主干分支(master) 开发分支(dev) 开发的feature/xxx分支 release分支 Hotfix Tag 主干分支master 经过测试QA验收的内容版本,其中囊括所有的地区版本,渠道版本的内容; 也可以不使用该分支,具体可以按项目怎么定义master的含义; 开发分支develop 该分支要是经过一定测试的内容,其中囊括所有的地区版本,渠道版本的内容; 因为功能具有耦合性,所以此分支还是有可能产生bug,没有master稳定 如果需要修复该分支上的bug,可以根据具体项目定义,另起Hotfix或Bug分支都行,建议Bug分支 开发的feature 具体单一一个功能一...

Read more

opengl基础学习(2)

目前的工程放置在github上Link 启动项目 空的项目里,我们需要在main.cpp加上自己的逻辑 // 创建一个程序实例 ApplicationStart* application = new ApplicationStart(); int result = application->Start(); return result; 在这里,ApplicationStart是我们以后要使用的所有的Opengl课程的的启动文件; 在前面一节文章里,我们已经知道,为了能更好地使用opengl,我们接入了GLFW 那么我们修改一下ApplicationStart::Start的方法 // 启动 int ApplicationStart::Start() { initGLF...

Read more