数学
目竞
起承转合
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最简理解空间线段与球相交判断
输入:线段两端点 Vector3 a,b;球心和半径 Vector3 center; float r;输出:是否相交 bool isIntersect;1.判断线段所在直线与球相交直线距离球心最短距都大于r,不相交;否则进入下一步判断。(记录垂足P,供后续判断使用)2.判断端点是否在球内两点任意一点在球内,相交;否则,继续下一步3.判断两端点是否在垂足同侧两点在垂足两端(前面已经判断不在球内),且直线距离已经小于r,那必然相交;否则必然不交代码:.原创 2022-01-07 17:07:51 · 1802 阅读 · 0 评论 -
直角坐标系转球坐标系 Equirectangular 理解 代码 Unity
起IBL相关,得到dir后需要从HDR图采样,但HDR图是Equirectangular Map,所以需要将dir转球坐标系(得到经纬)再转UV。从定义到实现都有很多约定俗成的东西,记录一下。承由于代码实现需要固定phi的范围。发现需要按符号分类处理,分类其实挺麻烦的。于是到网上找“标准”做法。 这里不能用数学上的标准arctan函数,得改造一下用atan2,它长这样:幸好,hlsl实现了atan2。所以代码是://x: phi [0,2PI)//y...原创 2021-12-02 18:30:17 · 2732 阅读 · 3 评论 -
最简理解空间三角形中线与边的交点
接之前最简理解空间射线与平面交点的场景。获得射线打在三角形上的交点(之后称为“打点”)后,假设三角形为p1,p2,p3,打点为c,想求直线p1c和p2p3的交点。转化为射线与p2p3的法平面交点,于是可以套用同一公式,一个式子算出来。法平面法线通过p2p3和三角面法线n cross获得。...原创 2021-11-29 12:06:19 · 2371 阅读 · 0 评论 -
偏门几何体相交检测
在做ParticleToy的时候,碰到一些几何体相交检测。常见/简单的,能百度到的,就不说了,记录一些比较偏门的相交测试。注意,这里的“相交”是“碰撞检测”,也就是体与体的相交,比如三角面完全被球包裹,也算相交,虽然球面与三角面无交点。1.圆柱体和三角面相交...原创 2021-04-26 01:22:21 · 797 阅读 · 0 评论 -
最简理解空间射线与平面交点
工作时正好碰到了这个老生常谈的问题,但百度出来都看起来复杂,不易于理解。其实是很简单的问题,这里重新推导,并记录一下公式。核心:几何意义,使用dot,避免空间平面,直线方程。已知:平面一点c,平面法线N,射线起点o,射线方向dir。推导:设交点为o+k*dir因为法线与平面上向量垂直N·(o+k*dir-c)=0为简化记T=o-c则k=-(T·N)/(dir·N)...原创 2019-12-11 12:02:55 · 2160 阅读 · 1 评论 -
Chango的数学可视化(二) 向量场:梯度,散度,拉普拉斯
起因:在没有看梁昌洪老师的公开课之前,对向量场知识一无所知,碰到泊松融合,泊松重建的文章时非常痛苦。现在将知识慢慢补起来,并用程序可视化,一来巩固知识,二来了解离散化形式和其实际中遇到的问题。目的:从Poisson Surface Reconstruction一文得到启发。先模拟一个包含目标点云的数量场,使得模型点云的数量值为1,其他为0。通过对此数量场进行一次梯度算子,得...原创 2019-11-24 16:39:25 · 2623 阅读 · 0 评论 -
Chango的数学可视化(一) 开篇
这一系列是使用各种工具(主要是游戏引擎),对数学概念的一些可视化。因为个人秉承实事求是的原则,所以保证这些可视化都是从实际项目和论文中引申出来,而不是纯粹“为数学而数学”。目录:Chango的数学可视化(二) 向量场:梯度,散度,拉普拉斯...原创 2019-11-24 15:27:01 · 390 阅读 · 0 评论 -
旋转矩阵之到底顺时针还是逆时针
最近发现的,逻辑上比较搞人的一点...明明是很简单的东西。到底表示顺时针旋转还是逆时针旋转?1.单坐标系:逆时针比如当,表示在单坐标系下将点绕原点逆时针旋转30°。记,没啥好说的,是我一贯的思路。2.双坐标系:顺时针这部分是我一开始没转过弯的地方。是将坐标系顺时针旋转到坐标系原本在x,y系的点(1,0),在u,v系内的坐标为(k,0.5)。...原创 2019-10-29 12:47:21 · 15534 阅读 · 0 评论 -
Chango的数学Shader世界(十五)油画Shader-技术分析,教程纠错
目的:实现油画后期Shader,探究教程中技术细节,指出错误。参考:搜索ue4 paint filter。UE4.21后整合自定义usf观察:油画的特点:成块的色块,但又保持清晰的边缘。分析:1.先来看一种比较“差”的油画实现先看下外网上的一种简单油画算法。注意这位大师是怎么处理木头纹理的。还有后边黑方块上的纹理是多么残缺。有些边...原创 2019-09-16 15:05:40 · 1008 阅读 · 0 评论 -
Chango的数学Shader世界(九)流体模拟-散度,梯度,二阶导与拉普拉斯
目的:参考《GPU Gems》,在UE4中尝试重现2D流体模拟。本节试图结合场论知识粗略理解Navier–Stokes equations。参考:《GPU Gems》观察:水中染料流体制作MV(《花样年华》 梁朝伟)《GPU Gems》中的Navier–Stokes equations描述了一个流体的4部分运动:平流项:烟随着速度场向上升压力项:烟碰...原创 2019-07-27 21:33:01 · 1400 阅读 · 0 评论 -
Chango的数学Shader世界(十二)流体模拟-丑陋的现实之平流,投影算子
目的:参考《GPU Gems》,尝试重现2D流体模拟。本节用UE4实现平流和投影算子部分。并对实际碰到的问题与论文的差距作分析。参考:《GPU Gems》观察:经过实践观察,我发现两个问题:1.速度场的复杂度决定了模拟的流动有多好看,但复杂又无散的速度场我不知道怎么搞。2.对染料浓度进行无散处理(上节的投影算子)没有任何意义,结果也很奇怪。但对速度场...原创 2019-08-01 14:56:03 · 877 阅读 · 0 评论 -
Chango的数学Shader世界(十一)流体模拟-Helmholtz分解,边界,场性质
目的:参考《GPU Gems》,尝试重现2D流体模拟。本节解释文中对上上节Navier–Stokes equations的变形,及需要变形的原因,导出最终算法的结构。参考:《GPU Gems》观察:Why so serious分析:1.边界归于实际,我们的这些场是要应用在一个有限的2D区域上的,不妨称此区域为D。一般来说,只有在其边界上处处可微...原创 2019-07-29 14:23:01 · 2564 阅读 · 1 评论 -
Chango的数学Shader世界(八)光盘模拟-各向异性,光栅衍射
目的:参考《GPU Gems》,在UE4中尝试以重现光盘Shader,并对书中的方法进行解析,改进,批评。参考:《GPU Gems》观察:我越来越意识到观察现实的重要性。相机和肉眼看到的衍射图案有差别,会多出一些彩虹,很可能是光盘衍射出来的光在相机上发生了类似衍射的现象。大致的X型图案有些角度形成的收缩圆弧和放射圆弧图案分析:显然与实际效...原创 2019-07-18 11:21:42 · 2069 阅读 · 0 评论 -
Chango的数学Shader世界(四)水波模拟,优化,初步可用品
目的:推导出一个水波Shader。本篇基于前篇Shader,进行部分优化,成为初步可用品。(仅参考复制玻璃表面材质,之后博文再分析。本篇仅考虑造型函数上的优化)参考:《GPU Gems》引言:我们之前已经完成了简单水波的造型和法线计算。这一节我们让它动起来,并暴露出一些常用变量,比如水波方向,水波速度等。并要求当我们随意移动和旋转模型时,整体表现还能正常。最后简单参考复制玻...原创 2019-07-11 20:50:05 · 562 阅读 · 2 评论 -
Chango的数学Shader世界(三)水波模拟,法线,切线空间
目的:推导出一个水波Shader。本篇考虑造型后的法线修正。参考:《GPU Gems》引言:上一篇我们已经实现了水波Shader的造型,但法线其实有问题。乍看起来还好,因为自身模型产生的阴影,给出了比较好的立体感。(你应该知道常规游戏引擎渲染中,光照和阴影是分开生成的)。但是,当我把模型自身产生的阴影关掉对比旁边平面的反光,我意识到模型的法线在每个顶点处都是和平...原创 2019-07-10 20:10:34 · 1153 阅读 · 1 评论 -
Chango的数学Shader世界(二)水波模拟
目的:推导出一个水波Shader,先造型,再考虑表面材质。本篇考虑造型。参考:《GPU Gems》引言:我该怎样看待数学与Shader的关系呢?我有一个答案,那就是把数学看作你的朋友/工具,了解它的每一部分,在特效需求的每一步中你都能敏感地发现它的影子。比如,我怎么用拼图拼成一个房子呢?从那个尖角的特征中,你立刻想到了你的好朋友三角形,然后你发现正方形+三角形,...原创 2019-07-10 16:40:43 · 1559 阅读 · 0 评论 -
Chango的数学Shader世界(五)水波模拟-那平静又汹涌的海面:叠加,Gerstner波
目的:根据前篇的水波Shader,优化成一个不透明的,适合广阔海域的Shader,以解决前篇Shader的一些缺陷。参考:《GPU Gems》引言:对于我们之前的初步可用品Shader,可以从不同方面进行改造,适用于不同需求下的水面。接下来几篇着重于造型上的改造,适用于不透明水面,如深邃广阔的大海。思路:回想起前篇结尾我们谈论到的当前Shader的不足之处:...原创 2019-07-13 10:49:45 · 1822 阅读 · 0 评论
分享