摘要: 在科学运算、图形学、游戏等很多领域中,开方是很常见却又非常耗时的运算,因此必须使用快速(有时还要求准确)的开方算法。 说起开方算法我们一般想到的是牛顿迭代法,这里我介绍一种更好的方法——逐比特确认法。 逐比特确认法从数字的本质出发,关注结果的每一比特位。它从最高位开始,向低位逐一确认某位是0还是1。 阅读全文
posted @ 2020-01-20 20:05 H5L0 阅读(4192) 评论(0) 推荐(2)
摘要: C语言支持定义可变参数的函数,方法是在函数的参数列表最后加上 " ... ",代表变长的参数列表,例如: void Func(int num, ...) { } 需要注意 “...” 必须在最后,而且前面起码要有一个固定的参数,类型可以任意。 为什么要有一个固定的参数呢?这篇文章要说明的就是这个问题 阅读全文
posted @ 2019-12-11 14:26 H5L0 阅读(820) 评论(0) 推荐(1)
摘要: 简单测试了C语言中分别使用16位整数和32位整数实现的定点数和内建浮点数的乘除性能: 在release 下 循环 1 0000 0000 * 20次 的时间: CPU:7700K/4.2Ghz 定点数实现如下: fp16:本质上是int运算 fp32:本质上是long long运算 后续补充 byt 阅读全文
posted @ 2019-12-05 11:01 H5L0 阅读(368) 评论(0) 推荐(0)
摘要: 前段时间用C#写了一个光线追踪程序,可以渲染圆球,平面这些基本图形,大致尝试做了一下反射、光照、阴影等效果。 ↑ C#实现的光线追踪 ↑ GBA上C实现的光线追踪 然而,在我打算继续深入优化的时候,我失去了我的好帮手强强电脑,换成了超极本。看来继续做技术密集型光线追踪是不行的了。 就在这时,我看到了 阅读全文
posted @ 2019-09-28 13:37 H5L0 阅读(1180) 评论(0) 推荐(0)
摘要: 最近在写GBA的程序。GBA运行的是C的裸机代码,而中途使用的很多小工具则用C#写的,例如:图片转换到.h头文件,制作三角函数表,还有像这次介绍的将圆柱面贴图映射到半球贴图的小工具。这样的小功能,用C#写就是一小会的事,效率非常高。 这时候就能体现出来——各语言有各自的用途,C用来做硬件开发,C++ 阅读全文
posted @ 2019-09-27 14:45 H5L0 阅读(679) 评论(1) 推荐(0)
摘要: 本篇内容主要来自Unity官方手册: 一般性能优化 Unity里C#编程虽然既简单还很爽,但是性能小陷阱还不少。我总强迫自己让代码最优,因此很留意这些细节。这里我记录了一下最近发现的一下优化点。 协程 别嵌套 协程( Coroutine )固然爽,我用起来可得心应手了,刷刷刷,平滑动画,等待加载,定 阅读全文
posted @ 2019-03-14 11:03 H5L0 阅读(607) 评论(0) 推荐(0)