BRDF 发表于 2019-03-22 | 更新于 2019-05-01 参考原文 基于经验的模型Phong$I_{Phong} = K_aI_a + K_d(n·l) I_d + K_s(r·v)^\alpha I_s$n法线,l入射向量,r反射向量,v观察向量,I代表光强,K代表物体颜射或者反射系数,a代表环境,s代表高光,d代表漫反射,$\alpha$代表粗糙程度,值越小越粗糙。 阅读全文 »
c++特性 发表于 2019-03-15 | 更新于 2019-05-01 c++ 11Lambda expressions1234// []() -> T {}auto g = [](int x){return x * x;};std::cout << g(3); // 9 作为predict12std::vector<int> s = {1, 2, 3, 5};std::cout << std::all_of(s.begin(), s.end(), [](int x) { return x > 0;}) << "\n"; // 1 阅读全文 »
相机标定 camera calibration 发表于 2019-03-13 | 更新于 2019-05-01 1 认识几个坐标系 世界坐标系 物体在真实世界中的位置 相机坐标系 物体在以相机为原点的坐标系中的位置 成像坐标系 在二维成像平面的位置 像素坐标系 在实际数字相片中的坐标 阅读全文 »
四元数 quaternion 发表于 2019-03-13 | 更新于 2019-05-01 3D旋转公式Rodrigues's Rotation Formula 3D旋转公式$v^{‘} = cos(\theta)v + ( 1 - cos(\theta))(u\cdot v)u + sin(\theta)(u\times v)$ 阅读全文 »
c++ generic 发表于 2019-03-12 | 更新于 2019-05-01 c++中的模板以函数模板为例1234template<T>T sub(T a, T b){ return a - b;} 函数模板定义了函数的通用公式,减少为不同类型相同功能写重复代码12int sub(int a, int b);float sub(float a, float b); 阅读全文 »
Monte Carlo 发表于 2019-03-11 | 更新于 2019-07-11 什么是Monte Carlo Method简单来说, Monte Carlo Method就是找到函数的期望输出值/函数的积分等问题答案的一系列统计学的方法集合。 Monte Carlo Method的核心就是random sampling, 引用俄罗斯数学家Sobol的话来说: The Monte Carlo method is a numerical method of solving mathematical problems by random sampling (or by the simulation of random variables). 阅读全文 »
光模拟 Light Simulator 发表于 2019-03-10 | 更新于 2019-05-01 1 先导1.1 光与物体表面的作用 吸收 反射 投射 光在界面的反射和折射是光与物质极化和电子相互作用的结果,才有介电常数和折射率这一说。 分清界面透过率和整体透过率。界面透过率小,反射率就大。通过界面的光,吸收越大,整体透过率就越小。 阅读全文 »