自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 ParticleToy开坑:离线物理+光追渲染引擎

起前阵子又去油管上看了看正经的navier stokes方程解析。发现所谓的正经公式也就是那些微观离散的简单法则给“正经化”,“连续化”。我终于意识到,我以前去看所谓微分方程公开课,根本就是阻碍我去真正理解这些东西的拦路虎。都是很简单的东西,“哪有那么复杂”——《一一》。今天是初二,没有事情做,结合最近一阵子总是鼓捣Houdini和Niagara的工作经历,还有看各种siggraph的视频,我意识到Particle这种思维方式,才是最简单有效,也是最接近真理的。自从去年7月份进了S公司以

2021-02-13 11:30:36 614 1

原创 Chango的数学Shader世界(一)开篇

目的:我打算写一系列教程,关于数学和Shader。先用UE4实现,其他引擎如有读者需要再考虑。目录:Chango的数学Shader世界(二)水波模拟Chango的数学Shader世界(三)水波模拟,法线,切线空间Chango的数学Shader世界(四)水波模拟,优化,初步可用品Chango的数学Shader世界(五)水波模拟-那平静又汹涌的海面:叠加,Gerstner波...

2019-07-10 13:28:57 640

原创 大家好!我是练习时长两天半的像素画练习生,喜欢唱,跳,rap...

此风水宝地是本0美术基础钢铁程序员的像素画练习之处,如非练就火眼金睛者速速alt+f4。当然,若有专业美术人士愿意指正,请疯狂批评!1.男教师。后期点评:图1没画阴影,特别是脖子没阴影和脸连起来,很怪2.女教师。后期点评:这么点像素下,镜框实在显得人太黛比了;身体曲线描绘不出来;顶视图由于缺乏特征,也画不了;由于像素限制又要表现特征,身体比例因此受限,两视图的身体比例不...

2019-05-23 20:35:32 861

原创 Mathematica常用命令记录

1.复数函数(带参数)画图point = Table[1/(3 + 4 I)*E^(3 t)*E^(4 t I), {t, 0, 2, 0.01}];ListPlot[ReIm[point], PlotRange -> All]2.复数化简先Simplify[ComplexExpand[...]],由此实部得到,但虚部可能还不是最简,再RootReduce[Im[%]]。...

2019-05-19 17:45:43 1854 2

原创 ORB-SLAM2稠密点云重建:最终效果与点评

(后期声明:想要完整源码的)由于跳槽,而且这些操作本就属于伪科研,当时也没心思备份,代码不可能有了。如果你真的上道,我之前的文章也已经说得差不多了。室内一张截图:在重复扫描的地方精度不错,这个看起来有点差。。其实精度挺好的。单张双目重建:这个其实没看起来那么好,因为很多错误点待截掉,只是角度好。从上方看来是这样的:点云融合后,精度较差,1-5米,不能近看,远处看看轨...

2018-04-14 15:05:47 9237 6

原创 补坑:基于2D贴图的3D噪声——偏移(37,17)

shadertoy的iq常用的用于实时渲染的,基于2D贴图的3D noise

2022-01-11 12:12:31 2634

原创 最简理解空间线段与球相交判断

输入:线段两端点 Vector3 a,b;球心和半径 Vector3 center; float r;输出:是否相交 bool isIntersect;1.判断线段所在直线与球相交直线距离球心最短距都大于r,不相交;否则进入下一步判断。(记录垂足P,供后续判断使用)2.判断端点是否在球内两点任意一点在球内,相交;否则,继续下一步3.判断两端点是否在垂足同侧两点在垂足两端(前面已经判断不在球内),且直线距离已经小于r,那必然相交;否则必然不交代码:.

2022-01-07 17:07:51 1332

原创 直角坐标系转球坐标系 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 2360 3

原创 最简理解空间三角形中线与边的交点

接之前最简理解空间射线与平面交点的场景。获得射线打在三角形上的交点(之后称为“打点”)后,假设三角形为p1,p2,p3,打点为c,想求直线p1c和p2p3的交点。转化为射线与p2p3的法平面交点,于是可以套用同一公式,一个式子算出来。法平面法线通过p2p3和三角面法线n cross获得。...

2021-11-29 12:06:19 2011

原创 看图说话:《教团1886》大量使用的SG预光照技术

想要减少PBR中高光的计算量。但不管怎样优化,总要一个函数去画这个高光形状吧。SG(球面高斯)是最简单能模拟高光lobe的函数之一,拥有很多良好性质,而且实现简单。二维SG也可近似pow(x,n0),用于加速静态pow。都是从Sébastien Lagarde里看来的。不知道和SebastianLague是不是同一个人,后者的UTube视频极棒又风趣。PS:图里的PPT也是我做的,无侵犯。...

2021-09-24 17:47:51 225

原创 大白话理解:BRDF,皮肤渲染

白话关键词:BRDF 预积分皮肤LUT 曲率起最近搞了皮肤渲染相关。链接1:SIGGRAPH 2011- Pre-Integrated Skin Shading链接2:无LUT皮肤积分优化承1.计算一个微表面出射光时,公式为:2.有多个入射光,我们看一个微表面时,颜色也是多个出射光的合成。3.所以公式应该为一个积分:4.这样搞就太复杂,单看一方向的光5.之所以还有积分项,是因为一个入射光,还是有多个出射光。6.这个积分项,说白了,就是对于某种表面,..

2021-08-15 21:32:38 891

原创 纳尼?加了一个成员变量就出错?不加就没事?Visual Studio解决办法

参考:https://www.cnblogs.com/flysnail/archive/2011/09/21/2184114.html这个挺妖的,我自己最后定位问题发现加了一个成员变量就出错,报的是stack...corrupted,然后估计就是栈溢出了。尝试把类型改成short,果然没问题了。但是我又去百度搜,改了下栈保留和提交大小,也没用。最后改上面链接上的设置就OK了。...

2021-05-06 22:49:34 177

原创 偏门几何体相交检测

在做ParticleToy的时候,碰到一些几何体相交检测。常见/简单的,能百度到的,就不说了,记录一些比较偏门的相交测试。注意,这里的“相交”是“碰撞检测”,也就是体与体的相交,比如三角面完全被球包裹,也算相交,虽然球面与三角面无交点。1.圆柱体和三角面相交...

2021-04-26 01:22:21 480

原创 Chango的数学Shader世界(二十三)漩涡Shader-复数分析(深渊)

目的:我的2D游戏,需要一个有特定感觉的“漩涡shader”。上一节里,我简单实现了这个:但转动有些乏味,它的转动动作是类似这样的:(网图)接下来想让它动起来更加深邃,恐怖。本文先搞了2种效果:(图3,扩散瞳孔)(图4,深渊)抽象分析:前篇的Shader效果之所以看起来乏味,是因为在旋转的时候,像素点的极长(以方块中心为原点极坐标系)并没有改变,只是越接近中心,点的旋转量越小而已。(旋转前后点都在同心圆上)如果我想要深渊有“吃人”的感觉,那么内部的

2020-05-10 16:51:09 516

原创 Chango的数学Shader世界(二十二)漩涡Shader-初成品

目的:在自己的引擎中,在实现漩涡Shader和正确贴到场景上后,发现漩涡效果还是不对,需要修正。原图:错误版:修正:分析1.渲染漩涡的时候没用透明混合那加上这个功能。实际就是把GL相关Blend函数封装进引擎:void DrawCall::BeginDo(){ auto blend = material_->blendType_; if (blend == Blend_Alpha) { glBlendFunc(GL_SRC_ALPHA, GL_

2020-05-10 12:18:57 482

原创 彻底了解渲染流程,drawcall,material,materialInstance:自己写个引擎(一)

目的:接SDL_Image,d3d9与OpenGL Shader混用方法(一)的”结果“。在OpenGL+SDL2的环境下实现能采用不同shader的图片。为实现此目标,已经基本脱离SDL,到了自己写引擎的地步。在自己实现GL引擎的过程中,对渲染流程,drawcall,material和materialInstance有了更为深刻的体会,在此分享一下。(图1:背景图使用不断...

2020-05-05 14:20:13 1016

原创 使用OpenGL满足core profile的注意点

[可能是长期更新文]之前在文章中写过,由于仿照的是lazy foo比较老的教程,只能使用PROFILE_COMPATIBILITY,才能把图画出来。最近还是想用renderDoc抓帧,但是renderDoc只支持core profile里的抓帧。所以看看我的代码哪里有过时的写法,保证使用SDL_GL_CONTEXT_PROFILE_CORE时也能正常渲染。1.要手动创建...

2020-04-06 17:50:55 1068

转载 【转载】震惊!C++竟然还没有这种功能!(滑稽)

想让函数参数禁止隐式转换,没想到explicit没法用到构造函数以外的地方。转一下非常麻烦的解决办法:https://stackoverflow.com/questions/12877546/how-do-i-avoid-implicit-conversions-on-non-constructing-functions...

2020-04-01 11:00:30 191 1

原创 Chango的数学Shader世界(二十一)漩涡Shader

目的:瓦滴2D游戏需要一个深渊效果,想着就用漩涡效果先试试。在SDL+OpenGL的开发环境下,实现一个类似这样的漩涡效果。(图片来源于:https://www.cnblogs.com/joeshifu/p/5489761.html)简单的漩涡效果没什么难点,主要是记录一下OpenGL涉及Shader方面的基础知识。不过纯理论上可以深究的东西还是挺多的(类似之前的细线...

2020-03-15 21:46:07 486

原创 SDL_Image,d3d9与OpenGL Shader混用方法(一)

前言注意:本文并非最好的解决办法,并且也不适用特殊情况,但是测试期间最快的解决办法。大体思路:将SDL常用API渲染的结果保存为一张图,在OGL里作为背景texture载入。背景作为一个SDL新手,就在不久前,我还以为openGL shader流程可以和SDL常用库混用。比如用SDL_image.h里的API画几个图片API,需要带shader特效时就用openGL画,加到原画...

2020-03-10 19:18:43 1174 1

原创 解决:SDL2+OpengGL在OpengGL3.2版本以上渲染不显示问题

长话短说:使用SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);设置OpenGL版本的时候,发现3.1版本就正常渲染,3.2以及以上就渲染不出来。但是用RenderDoc抓帧能看到正确画面。检查两个地方:1....

2020-02-16 14:23:42 705 1

原创 解决:error LNK2019: 无法解析的外部符号 __imp__glClear

长话短说:visual studio。附加依赖项,加一个OpenGL32.lib,不用指定目录。注意这是32位平台的,64位自己查查。试试改成64,或者不改(我碰到过windows sdks里有名叫32却是64的OpenGL32.lib)背景-What Really happened最近在用SDL做2D游戏,想在SDL里写写Shader,看了教程:http://lazyfo...

2020-02-15 17:15:36 10355 6

原创 最简理解空间射线与平面交点

工作时正好碰到了这个老生常谈的问题,但百度出来都看起来复杂,不易于理解。其实是很简单的问题,这里重新推导,并记录一下公式。核心:几何意义,使用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 1845 1

原创 Chango的数学可视化(二) 向量场:梯度,散度,拉普拉斯

起因:在没有看梁昌洪老师的公开课之前,对向量场知识一无所知,碰到泊松融合,泊松重建的文章时非常痛苦。现在将知识慢慢补起来,并用程序可视化,一来巩固知识,二来了解离散化形式和其实际中遇到的问题。目的:从Poisson Surface Reconstruction一文得到启发。先模拟一个包含目标点云的数量场,使得模型点云的数量值为1,其他为0。通过对此数量场进行一次梯度算子,得...

2019-11-24 16:39:25 2354

原创 Chango的数学可视化(一) 开篇

这一系列是使用各种工具(主要是游戏引擎),对数学概念的一些可视化。因为个人秉承实事求是的原则,所以保证这些可视化都是从实际项目和论文中引申出来,而不是纯粹“为数学而数学”。目录:Chango的数学可视化(二) 向量场:梯度,散度,拉普拉斯...

2019-11-24 15:27:01 315

原创 旋转矩阵之到底顺时针还是逆时针

最近发现的,逻辑上比较搞人的一点...明明是很简单的东西。到底表示顺时针旋转还是逆时针旋转?1.单坐标系:逆时针比如当,表示在单坐标系下将点绕原点逆时针旋转30°。记,没啥好说的,是我一贯的思路。2.双坐标系:顺时针这部分是我一开始没转过弯的地方。是将坐标系顺时针旋转到坐标系原本在x,y系的点(1,0),在u,v系内的坐标为(k,0.5)。...

2019-10-29 12:47:21 12809

原创 Chango的数学Shader世界(二十)RayMarch云层(二) —— 着色完善

目的:在ue4中RayMarch云层效果。本篇参考IQ的shader进行着色。参考:见上篇&&https://zhuanlan.zhihu.com/p/34836881观察:(电影《一一》)(知乎Grfxlf,基于Henyey-Greenstein模型的云)IQ的云大致看还行。但不能细看。有2个毛病:1.不基于物理...

2019-09-29 13:34:05 524

原创 Chango的数学Shader世界(十九)RayMarch云层(一) —— 造型,优化

目的:在ue4中RayMarch云层效果。本篇只考虑云层造型。参考:1.IQ在shadertoy上的Clouds和其引用https://www.shadertoy.com/view/XslGRrhttps://www.shadertoy.com/view/4sfGzS2.shadertoy上的Simplex3dhttps://www.shadertoy.c...

2019-09-27 13:53:32 990 2

原创 Chango的数学Shader世界(十八)RayTrace三维分形(三)—— 完善,距离场软阴影

目的:移植Inigo Quilez的可视化三维Julia的算法到ue4。本篇注重完善造型后模型表面的光照,软阴影。参考:1.Inigo Quilez在ShaderToy上的Julia,网址后缀MsfGRr2.之前我讨论简单的Fresnel:Chango的数学Shader世界(七)观察:将上节的基本造型和Inigo Quilez的Julia对比(麦芽糖好想...

2019-09-23 15:23:39 631

原创 Chango的数学Shader世界(十七)RayTrace三维分形(二)—— Julia Set造型

目的:移植Inigo Quilez的可视化三维Julia的算法到ue4。本篇仅考虑造型,忽略表面法线计算和光照模型等。忽略分形相关细节数学原理。参考:最近墙越来越高,我也没法放链接了。1.Inigo Quilez在ShaderToy上的Julia,网址后缀MsfGRr2.维度:数学漫步第一季的复数(下)3.Ray Tracing Quaternion Ju...

2019-09-22 12:26:13 524

原创 Chango的数学Shader世界(十六)RayTrace三维分形(一)—— ue4中最简单的RayMarch

目的:最近接触一些分形Shader。自己实现了一个2D fbm,感觉很好看。然后又看到人家三维的分形,看起来很棒,心里痒痒。影视大作和网上一堆令人惊叹的分形艺术,我也不再多说了。本篇旨在对在ue4中实现分形的第一步,RayTrace和RayMarch加以具体解释,然后给出一个最简单的RayMarch材质,便于读者扩展。(RayMarch一个球形“云”)参考...

2019-09-21 23:34:23 1329

原创 Chango的数学Shader世界(十五)油画Shader-技术分析,教程纠错

目的:实现油画后期Shader,探究教程中技术细节,指出错误。参考:搜索ue4 paint filter。UE4.21后整合自定义usf观察:油画的特点:成块的色块,但又保持清晰的边缘。分析:1.先来看一种比较“差”的油画实现先看下外网上的一种简单油画算法。注意这位大师是怎么处理木头纹理的。还有后边黑方块上的纹理是多么残缺。有些边...

2019-09-16 15:05:40 870

原创 Chango的数学Shader世界(十四)细线间断,发光闪烁,TAA削弱处理

目的:减少游戏中的细线因屏幕分辨率不足和算法采样不足问题,导致的间断,以及相对的自发光闪烁。解决了此问题也附带解决了因TAA导致的细线自发光微弱的问题。对比视频:https://www.bilibili.com/video/av67438336参考:无,原创。外网UE4 AnswerHub有类似问题,但无正确的解决方案。观察:方块的边缘线条材质,是根据UV坐标判定的...

2019-09-15 13:30:39 2468

转载 【转载】Sobel算子的数学原理:城市距离,4方向插值

以前推导Laplace的时候大意了,以为Sobel算子的(1,2,1)(1,-2,1)也是二阶导。最近回看发现并不对,根本找不出Sobel的数学原理...找好久终于找到个似乎正确的:http://wap.sciencenet.cn/home.php?mod=space&mobile=1&do=blog&id=1139187&id=1139187#_motw_...

2019-09-14 15:43:44 614

原创 UE4 究极难搞半透明顺序:双半透+双面+凹模型

问题描述:一个一面被挤入的凹体,嵌入了一个小正方体其材质是半透明双面的。如果什么都不做,那么依据ue4引擎的逻辑,半透明渲染顺序上出现了问题。其实说难搞也是我标题党,和一般的海面船的解决办法差不多。只不过由于小正方体也是双面透明,多了一下步骤。问题表现:更详细的视频链接。其实本质上就是引擎判断渲染先后顺序出了问题。该红面在前的没有在前,所以渲染出了草绿色;仅根据...

2019-08-31 17:05:40 11850 1

原创 UE4 Instanced Mesh 半透明渲染顺序不对解决

以绿色方块为Instanced Mesh为例。正确的半透应该是这样的:这是一般蓝图Actor方块,其半透是正常的。然而Instanced Mesh因为过多,UE4不给你缓存正确的渲染顺序。所以,在不改代码的情况下,想解决Instanced Mesh半透问题,是不可能的。不正确的半透如下:注意到错误发生在Instanced Mesh的方块与方块之间。但我就是要解决,...

2019-08-27 04:21:53 4020

原创 C++ 指针强取虚函数地址推导

关于怎样输出类的虚函数地址,网上已经有很多了。例如下面的例子//...#pragma pack(4)//...class A {public: double base_data; A() { base_data = 233; } void func() { cout << "fvck you" << endl; } virtual vo...

2019-08-05 15:56:49 383

原创 Chango的数学Shader世界(十三)流体模拟-Laplace扩散,Nyquist定理

在知乎专栏Grfx.IO看到了他使用纯蓝图和材质蓝图实现的流体模拟,非常棒。思考后,我意识到我的不足在于1.物理基础不足没能充分理解泊松压力方程2.参考文章老旧虽然是同一篇文章,但我的版本老旧,差别还比较大3.畏难心理从一开始就没有引入鼠标互动,导致最后也很难改成鼠标互动,显得很鸡肋————————————————————————目的:在前篇Shader基础...

2019-08-04 14:21:46 891 3

原创 Chango的数学Shader世界(十二)流体模拟-丑陋的现实之平流,投影算子

目的:参考《GPU Gems》,尝试重现2D流体模拟。本节用UE4实现平流和投影算子部分。并对实际碰到的问题与论文的差距作分析。参考:《GPU Gems》观察:经过实践观察,我发现两个问题:1.速度场的复杂度决定了模拟的流动有多好看,但复杂又无散的速度场我不知道怎么搞。2.对染料浓度进行无散处理(上节的投影算子)没有任何意义,结果也很奇怪。但对速度场...

2019-08-01 14:56:03 735

原创 Chango的数学Shader世界(十一)流体模拟-Helmholtz分解,边界,场性质

目的:参考《GPU Gems》,尝试重现2D流体模拟。本节解释文中对上上节Navier–Stokes equations的变形,及需要变形的原因,导出最终算法的结构。参考:《GPU Gems》观察:Why so serious分析:1.边界归于实际,我们的这些场是要应用在一个有限的2D区域上的,不妨称此区域为D。一般来说,只有在其边界上处处可微...

2019-07-29 14:23:01 2194 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除