• 曾经流行的,即将流行的几种渲染模式(render pipeline)


    1,multi-light with single pass (farcry 1.2及之后的版本在ps3.0中使用这种方式,其实ps2.0也能使用这种方式)
      每个对象最多能计算3-4 (3灯光/ps 2.0, 4灯光/ps 3.0)个灯光,
    这样就限制了每个受光照的对象不能太大。
      适用于室外/地形场景 

    2,multi-pass  (DOOM3,farcry 1.2之前的版本使用这种方式)
     每light要渲染一个pass, 多light的情况下DP的次数会过高。
      适用于室内/三角形数量较少的场景


    3,deferred rendering (killzone2,stalker使用这种方式)
     G-Buffer点的显存大,耗的带宽高,DX9下不能实现MSAA(dx9下MRT不支持MSAA)
      材质受限制(因为是在后处理阶段计算光照,shader算法没办法针对不同的对象区分实现)

    4,light indexed deferred rendering
      DP次数比1,3高,比2低,显存带宽适中, 每个对象的shader中必须固定该对象的每个fragment计算的最大灯光数量.

    5,light pre-pass rendering (cryengine3使用这种方式,还有若干制作中的游戏/引擎使用这种方式)
      DP次数比1,3高,比2低,显存带宽适中,材质受限制
     (1) 渲染场景,输出depth和normal到一个rendertarget
      rendertarget的格式:R8G8B8A8,R8G8存depth,B8A8存normal.xy
                          R16G16B16A16,R16B16存depth,B16存normal.xy,A16存材质信息(specular power?)
      (2)使用第一个pass生成的depth和normal数据,渲染所有的灯光到light texture, RGB存计算后的光照值,
       A分量存每个象素的specular intensity
     (3)整个场景再渲染一次,使用(2)中生成的light texture,采样纹理(diffuse,specular mask...),计算光照。

  • 相关阅读:
    如何使Linux系统上的程序开机后自动运行 (转)
    Makefile详解 (转--不错就是有点长)
    ./configure && make && make install详解 (转)
    从程序员角度看ELF | Linux-Programming (转)
    动态符号链接的细节 (转)
    GCC编译动态和静态链接库例子
    gcc编译静态库和动态库
    udhcp源码详解(五) 之DHCP包--options字段
    一个炒鸡好用的pdf阅读器
    Linux 创建用户 用户组 用户权限
  • 原文地址:https://www.cnblogs.com/corefans/p/1491148.html
Copyright © 2020-2023  润新知