抗锯齿
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 ...
积分解 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;...
共计 45 篇文章,6 页。