主页

抗锯齿

FSAA/SSAA Full Screen Anti-Aliasing / Super Sampling Anti-Aliasing 最简单粗暴的抗锯齿技术,渲染一张更高的分辨率的图,在帧缓冲里向下采样,最贵最完美。不需要硬件支持。 MSAA Multi-Sampling Anti-Aliasing FSAA 的本质是对全屏每个像素采样 N 次取平均值,MSAA 对此做了改进,对于覆盖每个像素的每个物体,只计算一次采样,如果一个像素的 N 个子像素同时被一个物体覆盖,则只在像素中心有一次采样,如果有两个物体分别覆盖了 M 和 N 个子像素,则在像素中心计算两次采样求加权平均。这样做的结果是在物体的边缘采样次数较多,而物体的中心(场景上大部分像素是这种情况)只有一次采样,大大节...

阅读更多

Unity 锦囊

Shader 获取屏幕坐标 o.screenPos = ComputeScreenPos(o.vertex); 注意这个坐标: z 无效,一般可以用 COMPUTE_EYEDEPTH 来存深度 是投影之前的坐标值,没有除以 w 分量,在 ps 中使用时需要除以w分量才是真正的屏幕坐标 获取深度 获取当前像素的深度: define COMPUTE_EYEDEPTH(o) o = -UnityObjectToViewPos( v.vertex ).z 获取深度图里的深度: 在 C# 侧设置相机 Camera.main.depthTextureMode = DepthTextureMode.Depth; 在 Shader 里声明变量 sa...

阅读更多

预积分皮肤渲染

预积分的皮肤渲染(Pre-integrated Skin Shading, PSS)是目前效率上来说,移动设备上唯一可用的方案。仅需要一次LUT查找以代替 $cos\theta$,然而效果和标杆级的纹理空间扩散(Texture Space Diffusion, TSD)几乎差不多。 PSS 主要来自《GPU Pro2》上的文章和 2011 年 siggraph 的演讲,本文主要依据演讲PPT(因为手上没有《GPU Pro2》)。题图为本文成果:李·佩里·史密斯的脑袋(Lee Perry-Smith Head)。 感谢 LPS 本人贡献的脑袋。 实践 PSS 算法把皮肤的光线分为两部分:散射和高光,需要分别计算再求和。 散射 计算 PSS 的散射,需要一张 LUT 图 横...

阅读更多

图形学里那些著名的模型

这里提供了图形学领域一些每本书/论文都在引用但是不知道在哪下载的非著名模型 的下载 笑佛 Happy Buddha 斯坦福兔 Standford Bunny 中国龙 Chinese Dragon 李·佩里·史密斯的脑袋 Lee Perry-Smith Head Mori 结 Mori Knob 经纬度地球 Lat-Long Sphere 还有著名的茶壶 Teapot

阅读更多

RTR 4 Chapter 9

9 PBR Physically Based Shading 9.1 光物理学 光是一种波,波长和颜色相关,记为 λ 。单一波长的光称为单色光 monochromatic light,相反称为 polychromatic light。 可见光的波长在 400 - 700 纳米之间。 光所携带的平均能量称为辐照度 irradiance, 记为 E ,和振幅平方成正比。 光波之间是线性叠加,总的光波等于各光波之和。 两束线性叠加的相同波,振幅是原来的2倍,辐照度是原来的4倍。也可能发生相反叠加互相抵消。这种叠加称为干涉。干涉不违反能量守恒。 发出光的物体叫光源,光是由于电子被激发转化为光能产生的。 光在介质中传播中会发生散射。各个波长的波自行散射互不影响。介质分子对散射有波...

阅读更多

从安卓 app 提取 apk

从安卓 app 提取 apk 拢共分三步 第一步 获取你想要的 app id 0 如果你知道 app id,直接进下一话题 1 简单方法,运行对应的 app,保持它在前台,在控制台输入(Linux 把 find 换成 grep): adb shell dumpsys window windows | find “mCurrentFocus” 会输出类似于 mCurrentFocus=Window{6a5c9b5 u0 com.google.xxxx/com.google.xxxx.MainActivity} 的一串,其中_com.google.xxxx_就是所要的包名,斜线后面是 当前的 Activity 名字(这里没什么卵用) 2 看一下 app ...

阅读更多

LaTeX 测试

LaTeX 测试 行内公式 $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ 行间公式 \(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\)

阅读更多

积分解 Unity 高度雾

积分解 Unity 高度雾 高度雾的基本模型为,对于某个高度 y 及一个高度区间 (S,E): 当 y ≤ S 时,某一点的雾浓度 T 为 最大值 1 当 y ≥ E 时,T = 0 当 S < y < E 时, 设光线从视点 v 出发,到达像素点 w(世界坐标),为一条线段,对这条线段所经过点的浓度求积分,即为该点雾的浓度 建立直角坐标系,原点为视点在 y=0 平面的投影,x 轴方向为 vw 在 y=0 平面的投影,y 轴向上,令 y=kx+b ,当 k=0 时直接计算,当 k≠0 时,沿线段 vw 对 T 求曲线积分 假设面积 0 点在 y=S 处,解积分得 float _FogEnd; float _FogStart; float _FogPower;...

阅读更多