zoukankan      html  css  js  c++  java
  • gdc skin

    https://www.gdcvault.com/play/1024410/Achieving-High-Quality-Low-Cost

    这篇是教美术怎么用做地形那种方法 复用贴图 做skin的 做个编辑器出来体现 pores那部分的细节

    skin 包含

    pores

    pbr ---反射,GI

    sss

    postprocess

    sss很重要

    linearspace 做光照 

    http://www.iryoku.com/

    iryoku对此有详细论述 

    2013年那篇很复杂了 细节多到令人发指 超乎想象 300多页

    他在 github上有很简单的 shadowmap 拿厚度做sss的demo

    https://github.com/iryoku/separable-sss

    接下来讲比较复杂的sss

    分两部分

    1.reflectance part  让反射不那么harsh

    2.transmittance part 薄的地方比较透

    ================================================================

    sss 的几个算法 文中用的是shadowmap-base

    float4 shadowPosition = SSSSMul(shrinkedPos, lightViewProjection);
    float d1 = SSSSSample(shadowMap, shadowPosition.xy / shadowPosition.w).r; // 'd1' has a range of 0..1
    float d2 = shadowPosition.z; // 'd2' has a range of 0..'lightFarPlane'
    d1 *= lightFarPlane; // So we scale 'd1' accordingly:
    float d = scale * abs(d1 - d2);

    当前点从sm采样拿到光源距离d1

    当前点变换到lightspce拿到光源距离d2

    相减得到精确光线上obj厚度

    需要高精度sm

    Shadowmap-based Translucency /sss [Ki09]

    还有另外几种方法

    Texture-space Importance Sampling[Chang08]

    Texture-space Diffusion blurs, for skin/sss[Hable09]

    double-sided lighting&attenuation for foliage [Sousa08]

    https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/

    这里介绍了一种更cheap的方法 来自于Sousa08 对于规则物体

    先烘焙出一张thickness map

    烘焙的方法是 表面surface normal取反 做AO 存到tex里面 就是thickness

    这个方法的问题在于得到的厚度是不精确的 与观察角度无关的 粗略的值 表现比shadowmap方法差

    就是像diffuse贴图一样的一个东西 不区分角度的 只是标注出 比如手是thin的 上身是thick的 不区分角度

     =========================

    texture space的方法我还没看

    https://ir.nctu.edu.tw/bitstream/11536/29787/1/000255285500041.pdf

    ===========================

    http://www.iryoku.com/separable-sss/downloads/Separable-Subsurface-Scattering.pdf

    昨天补了下 convolution 和Gaussian blur

    今天看这篇paper

    1.sss可以看成 内部多次diffuse

       可以近似为 diffuse kernel的卷积

    2.由于gaussian的对称性 2d 的convolution 可以简化为1D

  • 相关阅读:
    (一)lamp 环境搭建之编译安装apache
    ssl 原理和建立连接过程
    lamp 架构的理解
    diff 命令,防止遗忘
    关于云计算的一些概念理解
    lvs 四层负载相关
    Mac 安装Git
    Harbor镜像仓库v2.1.0_2安装与使用
    CentOS部署Harbor镜像仓库
    从harbor部署到在k8s中使用
  • 原文地址:https://www.cnblogs.com/minggoddess/p/9406847.html
Copyright © 2011-2022 走看看