
图形学
文章平均质量分 62
jak0018
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity3D ShaderLab 菲涅耳内轮廓
菲涅耳内轮廓菲涅耳内轮廓菲涅耳简化公式内轮廓改造菲涅耳公式实现效果菲涅耳内轮廓使用菲涅耳公式实现内轮廓效果。菲涅耳简化公式F0为平面的基础反射率,n⃗为法向量,v⃗为视角向量。F0+(1−F0)(1−(n⃗⋅v⃗))5F_0为平面的基础反射率,\vec{n}为法向量,\vec{v}为视角向量。 \\F_0+(1−F_0)(1−(\vec{n} \cdot \vec{v}))^5F0为平面的基础反射率,n为法向量,v为视角向量。F0+(1−F0)(1−(n⋅v))5各个材质对应的反射率如原创 2021-10-15 21:15:45 · 1036 阅读 · 0 评论 -
Unity3D ShaderLab 内发光防护罩
内发光防护罩内发光防护罩思路内轮廓发光效果相交效果缺陷内轮廓发光缺陷缺陷解决方案相交效果缺陷缺陷解决方案实现效果内发光防护罩1、利用模型法线和视角方向得到内轮廓发光效果。2、利用深度图来做与其他物体相交效果。思路内轮廓发光效果只需要知道模型每个三角面的法向量和相机到三角面顶点的向量,通过1.0 - dot(normal, viewDir)就能得到外轮廓发光效果。相交效果已知需要渲染物体的深度信息,通过与_CameraDepthTexture纹理中的深度值进行一些计算或者判定即可完成相交的效果原创 2021-10-15 19:58:55 · 1818 阅读 · 0 评论 -
Unity3D ShaderLab 深度图
文章目录深度图原理深度重建深度写入一些遇到的坑深度图原理移步:深度测试,这篇文章讲了深度图的概念。深度重建深度图是经过NDC坐标空间后渲染出来的,深度存储时不是线性的,因此需要进行重建。幸运的是,Unity3D ShaderLab中提供了这个函数接口。// verto.vertex = UnityObjectToClipPos(v.vertex); // mvp变换o.screenPos = ComputeScreenPos(o.vertex); // 获取屏幕空间坐标COMPUTE_EYE原创 2021-10-04 14:18:05 · 890 阅读 · 0 评论 -
Unity3D ShaderLab 物体相交
物体相交物体相交思路实现效果物体相交利用深度图来做效果,不提供数学原理,只提供Shader脚本实现。思路已知需要渲染物体的深度信息,通过与_CameraDepthTexture纹理中的深度值进行一些计算或者判定即可完成相交的效果。计算方式:在视图(View)坐标系下,假设物体深度值为eyeZeyeZeyeZ,深度缓存中的深度值为sceneZsceneZsceneZ,相交宽度为IntersectionWidthIntersectionWidthIntersectionWidth;通过abs(eyeZ原创 2021-10-15 17:21:42 · 2018 阅读 · 0 评论