c++
xbd_gxf
这个作者很懒,什么都没留下…
展开
-
32位无符号整数快开方函数
分享一个32位无符号整数开平方函数(C++)分享一个32位无符号整数开平方函数(C++)由于某些原因,要用到相对高效的整数开方功能,就写下了此函数。函数代码小巧而简单,只用到加减、移位和比较,目测有不错的效率,在此记录并分享。uint32_t sqrt32(uint32_t x){ uint32_t m = 0x80000000u, y = 0u, t; do if((t = y + (m >> 1)) <= x) { x -= t; y = (y | m) >原创 2021-10-14 00:17:39 · 723 阅读 · 1 评论 -
光线追踪算法的c++实现
作为一个搞建筑的学生,接触了VRay后,被那种精致的画面所触动,于是手痒了,决定自己写程序实现一下。鼓捣来鼓捣去,弄出了第一个程序:纯镜面反射的光线追踪实现于是大受激励,继续瞎搞,弄了个两三天,各种版本陆续出来,逐步实现了多次采样、自发光、粗糙表面、各种反射特性、折射特性等。然而疯狂了一阵,最后发现了一个残酷的事实:说是光...原创 2019-11-23 09:56:48 · 2229 阅读 · 6 评论 -
Minecraft(我的世界)地形有关算法的c++实现
记得是在初一的寒假接触到了我的世界,真是一款充满了想象力的游戏,然后就把自己玩近视了。当时深知这游戏的前途,加上爱好编程,于是也想自己体验一番制作的过程,拙劣地写了出来,但是感觉效果还不错,也挺有成就感。几年后,翻出来看看,感觉还真是有意思,于是拿来又是一番折腾程序代码在这儿,相互学习交流一下:https://download.csdn.net/downl...原创 2019-11-22 23:46:36 · 5150 阅读 · 3 评论 -
关于volatile与多线程共享变量的思考
众所周知,mutex保证了读写的可控性,volatile则保证读写的实时性,这种实时性至少包括两个方面:1.将中断、其他线程、其他设备等的行为纳入考虑2.阻止编译器优化在多线程共享数据时(我指的是简单地使用变量而非用到某些库的功能),即使用了mutex,我们并没有保证阻止编译器的优化,除非我们对自己的程序流程以及编译器极有把握,不然不能排除极少数被优化掉的情况,举个例...原创 2019-09-17 00:31:08 · 571 阅读 · 0 评论