- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Y-Combinator : 实现在λ演算里面的递归
Y-Combinator, 实现在λ演算里面的递归,通俗地将,实现匿名函数(lambda函数)的递归
2020-08-03 15:54:08
637
原创 RGBE(*.hdr, The RADIANCE Picture File Format)文件格式解析
C/C++解析RADIANCER格式:The RADIANCE Picture File Format,(一种HDR图片格式,一些地方叫它RGBE)的图片
2020-07-27 22:26:09
3084
原创 在win32上用wgl折腾OpenGL 3.3等高版本OpenGL
用GLFW+GLAD库已经好一段时间了。但是我还是觉得GLFW不如原生的win32窗口用着顺手,毕竟win32窗口可以自绘加控件等等,可玩性可谓是很高的。微软给OpenGL留了套东西,不过可惜,哪怕到了Windows 10,这套API都停留在OpenGL 1.x时代。甚至还是用的CPU渲染。新版本的API藏在显卡开发商提供的程序中,我们需要拿到这些API。说到这里应该你就熟悉了,这些API有一个库可以帮忙——GLAD。而GLAD通过一个回调来拿到这些函数的地址,这个函数类型(我还是愿意给函数一个类型
2020-07-13 10:49:44
2313
6
原创 解决assimp使用过程中出现“右边非法标记“的编译错误
assimp使用过程中遇到编译错误, 是std::min导致的,同样的方案可用于解决std::min
2020-07-05 12:50:14
452
原创 LALR(1)与减少LR(1)分析表的体积
我们知道LR(1)分析表在计算的时候所生成的规范簇集大小会原地升天——一套简约的程序语言,它动则生成六百多项甚至一千多项的规范簇,分析表的体积非常膨胀(好吧这着实让人无法忍受...忍无可忍了)。为了解决这种问题,我们可以想办法精炼文法,或者使用另一些分析技术——LALR(1),Look - Ahead LR(1)分析法。减少LR(1)分析表大小的一种重要方案是减少产生式的数目,即精简文法。例如...
2020-02-17 12:14:17
615
原创 HelloWorld是怎么跑出来的?
基本上从学C语言的第一天起,我们就会知道一个C程序,需要经过编译、链接,才能得到可执行文件,然后,才能跑起来。在我们用IDE或者类似于gcc 1.c这样的命令的时候,有很多步骤被省略了。现在我想回过来看看它们,加深下理解。C语言从头到尾分为了预处理、编译、链接这三个过程。链接的结果可以是一个exe文件,即Windows系统上我们可以执行的程序。当然,链接器的输出也可以是一个dll、一个静态库l...
2020-02-05 23:47:12
467
原创 走进现代OpenGL
作为前言,这是一篇非常长非常长的文章——在文末,你会得到一个纯色三角形,这将经历非常漫长的努力,甚至你还会觉得气馁,因为花费一整天画了个平面三角形。本文呢包括如何准备VS2019,如何开始第一个HelloWorld,渲染管线的简介.......你需要自行学习完毕C语言,全文的代码是C++编译通过的,因此,你或许还需要一丁点的C++知识,但我保证不多。最后,你需要理解Win32开发里面的东西——资源...
2020-01-27 16:37:38
721
1
原创 关于Win32 SDK(C++)的命令行获取,通过__argc和__argv
原来获取命令行是这样的:int APIENTRY wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nShowCmd){ UNREFERENCED_PARAMETER(hPrevInstance); UNREFE...
2018-01-22 19:02:42
903
原创 一个简单的log2(x)的快速计算方法
最近因为某一些原因,需要要求高速计算一下常用对数的值。但是自然对数的快速算法和常用对数的快速算法都没想到......只得去找那个以2为底的对数值的快速运算方法了,由于精度要求不高(大约0.1即可),固可以尝试这种方案。因为直接把float数据按照整数来读取,得到的值大约是满足这个式子:其中σ是一个无限小的数据,经过推导值大约是0.0450466,但是这个只是理论。实际却并非如此,我尝试...
2018-01-05 22:47:14
20412
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人