2012年3月5日月曜日

PROJECT ASURA R&D Light Propagation Volumes

PROJECT ASURA R&D Light Propagation Volumes

Light Propagation VolumesXNAǼơפäƤꥯȤƤޤ˻ΤǤʤʤդ֤ޤ
ĤȡäƤä֤ɤȻפΤǡˡˤĤƤƤޤ
DirectXɤͤϡNVIDIASDK˼㤬ΤǸƤ

ޤ르ꥺγפǤʲΤ褦ʥƥåפˤʤޤ

Step.1 Reflective Shadow Map
Step.2 Radiance Injection
Step.3 Radiance Propagation
Step.4 Scene Lighting

ޤǽStep.1
Reflective Shadow Mapޤ뤳ȤϡGХåեʿ١ɶ֤ΰ֡ˡ٥ȥ롤«ˤʤΤ礷Ȥ̵Ǥflux(«ˤη׻ˡǤReflective Shadow Mapsʸ3.2Ϥ˵Ҥޤ
ֺǽˡƥԥ˱äͤ줿«׻ɬפ롣uniformʿԸˤĤƤϡȤʤ롣uniformФƤϡ«ΩγѤ뤿᥹ݥå;ǸפȽ񤤤Ƥޤ
ʤΤǡֳڤʼʿԸȤƥ饤Ȥ谷ŬꤷƤФ褤Ǥ礦ȤƼ갷ϡLight Propagation VolumesAppendix Bˤ餷᥽åɤܤäƤޤ

half GetTexelLum( const in RSMTexel texel )
{
return Luminance( texel.vColor ) * max( 0.h, dot( texel.vNormal, g_lightDir.xyz ) );
}

luminanceϵͤʤΤǡ餯Τ褦ʷ׻ˤʤȻפޤ
half Luminance( const float4 color )
{
return 0.299 * color.r + 0.587 * color.g + 0.114 * color.b;
}

ˡʸˤ񤤤Ƥ褦ˡΤޤޤβ(Virtual Point Light:VPL)ȤƻȤäƤޤȽŤΤǡ󥵥ץ󥰤ƽ٤ڸƤޤ
ɤAppendix B˺ܤäƤΤǡ򻲹ͤˤФ褤Ǥ礦
äƤ뤳Ȥ4ƥʬ򥵥ץ󥰤ơGetTexelLum()᥽åɤˤͤ׻Ǥ뤤ƥꤷޤˡե륿ݤޤե륿γݤϡ4ƥФƺǤ뤤ȷꤵ줿ȡ륻Ȥ2Υ׻Υ3̤ξ˿١ˡûΥ3̤ǤΤĤ뤫ȤƤޤơǸƤޤơ줿ͤϤȤǤ
Appendix BΥɤ򸫤Ȥ狼褦ˡåɰȤΤǡ餫ᥰåɤۤƤɬפޤåɥȡʬȤޤХåɤϹۤǤΤʤǤ礦

³Step.2Ǥ
󥵥ץ󥰤Reflective Shadow MapΥƥȤƳǼƤݻƤޤ
ΥƥåפǤϡƥȤƳǼ줿Ĵ´ؿǰ̤ơܥ塼ƥؤȳǼƤޤ
ޤˡ٥ȥ뤫2ޤǤSH򻻽ФޤȤϤη׻SHStep.1ǺGХåե«ФRGBʬݤ碌СĴ¤ǶͤޤޤȤϤRGBʬȤ̤ΥƥȤƵ᤿ͤ¸Ƥޤ
ΤޤޤǤϼʾˤ륢ƥեȤȯƤޤޤ򤱤뤿ˡǽäȤ餹ȤƤޤ

ϡStep.3Ǥ
̤̾ꡤǥ󥹤ãƤޤפܤФSHͤûƤФǤ
λAppendix C. Propagation scheme˺ܤäƤޤ

ǸˡStep.4
饤ƥ󥰤Ԥޤ饤ƥ󥰤Ϥäƥץã줿ǥ󥹥ܥ塼ͤȡSHѤơ饤ƥ󥰤Ԥޤ

ʤ櫓ǡΤϤ狼פȻפޤ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

----------------------------------------
6.2 Geometry-aware light injection and shifting

ޤФʶֶΤˡʾ򤵤뤿˳VPL pΥǥ󥹤γƤñͤ򥷥եȤɬפޤʿ9ȡˡ桹ϡˡ˸ǥ󥹤¤ˤƺǥȾʬǤͤ˸ǥ󥹤򥷥եȤ뤳Ȥ­ޤäơǾͤΥ顼Ƴ졤¿ξˤƼʾ򤱤ޤܺ٤ʼˤĤƤAppendix C򻲾ȤƤǤ⡤ñͤǥ󥹤򥷥եȤ뤳Ȥϴ˼ʾ˾ޤʤǥ󥹥֥꡼ǥ󥰤򤱤ˤϽʬǤϤޤ

6.3 Anisotropic upsampling of radiance volume

֥5.5˽Ҥ٤Τ褦˶Ū˶줿ǥ󥹤SHΥȥ饤˥֤ϺǽŪʥǥ󥹥ܥ塼δ֡˾ޤʤʾ֥꡼ǥ󥰤Ȥä褦ʽʥƥեȤ⤷ޤʿ9ȡˡФơʤȤ3Ĥβǽˡ¸ߤޤ

ǽ1Ĥϥͥƥ֤ʥץǡʾ褦ˡǡեåǥեȤñͤ줿VPLΩĤΤǤΥեåȤ1ĤΥĹΤǡ椨ˤƶ᤯֤줿֥Ȥˤư̤Ȥʤޤäơ桹ϤΥץϻѤޤ

2ܤΥץϡñͥơˤ뤤"ǥ"[DSDD07]ȸƤФХå饤ɤä뤳ȤΩޤϡȿФ˸ȥľǡǥ󥹤γƤ⤤"ȥ饹"Ĥ褦ˤޤäơȥ饤˥֤뤳ȤϽˤʤޤˡμreflective shadow map2褹ɬפȤȤǤǽˡ̥̾󥰤ȿͤ줿饤ƥ󥰡ˡ2˥ͥƥ֤ʥ饤ȤФ̥󥰤뤳ȤǤϥƥ˥åʣäޤñͥơΤãơθǡΥͥƥ֤ʥǥ󥹤ˤĤƷ֤ޤޤ̩ȿиΥȥξˤơְäưŤ줿Τϡ⤦Ĥ򤱤ʤǤɤäƤΤǡ桹ϤΥץȤޤ

Ǹˡ桹ϵǥ󥹥ܥ塼˰¸åץץ󥰤ˡȯޤˡμʥǥˡ˱äƥȥС뤳Ȥȡǥǥ󥹤ʬ׻뤳Ȥˤäƴְä֤򸡽Ф뤳ȤǤ

桹SHФ濴κʬѤޤʿ10ȡˡn˸濴κʬϥǥ󥹤θۤ׻뤳ȤǤ

ʼ

äơºݤΥǥ󥹤ĥǥ󥹤ʬӤ뤳ȤˤꡤˤĤơΥȥ饤˥֤ǥ󥹤γƤΥƻϤޤäƤ뤫ɤ׻뤳ȤǤޤ

9ˤˡη̤򼨤ޤ

--------------------------------------

դ
Ƥ4ʾ夿äƤޤޤˤĶ򽪤Ȼפޤ

Light Propagation Volumes in CryEngine3 Ķ--

ޤ󡢤ä깹˺Ƥޤ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

------------------------------------------------------

6. Improvements and Optimizations


動的にデータグリッドを印刷する方法

Ƥ줿ˡ,ޤ˾ޤʤ֥꡼ǥ󥰤äƤޤʤȤȡŪʶΤǤʿ8ȡˡ
ޤ˥餬ưƤְŪʤĤȯޤʤȤȡ桹ϥ˷ӤĤץѤ뤿ǤŪʤĤȾRSMβ٤¤ΤȯޤϤξϤǾܺ٤˵졤ˡƤޤ

˰ۤʤ륳ӥ͡ȡ¾ΥƥΥȤθߴϡƱͤˤΥ֥ץǤܺ٤˵ޤ

6.1 Solution Stabilization

ŪޤѲˤưˡ¿θʧޤ˽פʲǡĤ󼡸ǽŪʥǥ󥹤γƤˤơ˴طΤǤȤ¤äƤޤäơ桹ϰ󶡤פʥ顿ľܥ饤ƥ󥰡ѲĤΤǤפǤ¿ˡϤ٤뤿˻Ȥޤ

2D texel snapping for RSM movements
ľܸξˤƥ餬ư벼ǥ饹饤٤äޤΥץϡľʥɥޥåפФƤ褯ΤƤΤǡ餬ưƤ̷֡⤷ʤ饹饤󶡤ޤäơRSMΰư˰¸ʤե̷Τʤɽ⤿餷ޤ

High redundancy of secondary light sources
¿󼡸Ѥ뤳ȤˤäƸȥΥ֥Ȥư֤ΤĤȤ¾ͤʥǥ󥹤Ѳ򤱤뤳ȤǤޤ줬̣ΤϡѲδ֥뤴Ȥθã󶡤뤿ˤRSMˤ륵եοϽʬǤȤȤǤ

Smart down-sampling of RSM
ˡϡǥ󥹤γƤŪ˸夹ǤʤñͥơΥԡɤޤ

One-cell 3D grid snapping for radiance volume movement
ʬʳ򸺤餷֤ǡ桹ϥΰưδ̷֡Τʤñͤݻޤ

Τ褦ˡǥ󥹤γƤˡϡξ֤νפѲδ֤Ǥ֤ȶ֤ˤƥࡼǰꤵݻޤ

-------------------------------------------------
Ķ11³ġ

Ȥꤢ6.3ޤǤλʸȤȤǡĶϽˤ褦Ȼפޤ
6.3ʹߤϳƼɤǤ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------
5.6 Other applications

ǥãñͥѥǽŪ2Ĥη̤ƳФȤǤޤ
ñͥơη̤Ȥƽ2ǥ󥹳
ã줿ǥ󥹳
γơϥǥեɥ饤ƥ󥰤Ȼв줿եȤФƻѤ뤳ȤǤޤ

5.6.1 Light sources

¾ζ̣ץꥱϴã줿ǥ󥹤ñͤ뤳ȤǤץʥ饤ȤΥפФơDzŪ˹ԤȤǤޤSHΥХɿ2ˤäƵ̥֤Τ˶뤳ȤǤΤ[SLOAN08]ζ֤ˤƲϤʲˡɽˤϽʬǤäơǥ󥹥ܥ塼ưŪư饤ȤˤĤƸΨŪʥǥ󥹥åˤʤޤȤСФŪʲˡɽ뤿ˡ٤ޤϸȾ¤SHؤȥǥ󥹤Ƥ뤳Ȥ˴ŤǤΥǥ󥹤ɽΤ狼нʬǤ(Appendix Aȿ6ȡǥ󥹥ܥ塼ؤȲϤ˻ã줿ǥ󥹤ñͤ뤳Ȥˤ̥󥰡鱦夫鲼ؤȽˡ̤Υǥեɥ饤ƥ󥰤衤ñͤ줿ǥ󥹤ǥǥ󥹥ܥ塼衤֡ǥ󥹥ܥ塼ˤäƳ줿顼ե졼Фƥ顼25%ĶƤ餺饤ȤȾ¡å̩Ψ˰¸ޤǤ, 417Ǥǥñͤȥǥ󥹥ܥ塼󥰤XBox360PlayStation3ǥȡ2ms꤫ޤ˵ŤߤΤϡ顼Ⱦ󼡤ΤΤꥻ֤֤ˤäȯޤʤʤȤȡƤθ󼡸ĤǤˡ桹ϥǥ󥹥ܥ塼ؤȸ褹뤫ʤꤹ뤿θȾͤѤޤͤϥǥ󥹥ܥ塼β٤˰¸ޤڥ顼ȿͤϼΥ֥ץǵҤ褦˼¹Ԥ뤳ȤǤޤ

5.6.2 Glossy reflections

ñͥơθǡ󼡥ǥ󥹤νγƤĤ褦ˡ̤ΥƥåפǥΥܥ塼ƥפˡˤǽοΥ졼ФLn(x, )ˤĤƼ(5)¤뤳Ȥˤäơġȿͤ줿ؤ˸եxǤΥǥL(x, )׻뤳Ȥǽˤʤޤäơθ줿˸ĤΥեå뤳ȤǤx鸽ߤΥ򸫤٤ı߿ʬŬѤ뤳ȤǤޤ륹ڥ顼ȿͤθϳ˸äȿͤ줿쥤να߿γ٤ľŪ˰¸ޤʿ7ȡˡǾ߿ѤľŪ˥ǥ󥹥ܥ塼ƥζŪʲ٤˰¸ޤ

ȿ͸ϡտ魯ӥǥǤΤ˼ޤ

---------------------------------------------------------

Ķ10ؤ³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------
5.5Light Propagation Volume Rendering

ΥơSHܥ塼ƥη̤ǥ󥹤ĥ饤ƥ󥰤뤳Ȥ鹽ޤϡ̤Υեɥ顼ˤ褦̾Υ󥰥ѥǥɶ֤Υԥ֤Ѥơܥ塼ƥ㤫ľܥǥ󥹤եå󥰤뤳ȤˤäƤʤޤʤ顤ΤۤΥΥ饤ƥˡˤäƤʤޤ㤨Сǥեɥܥ塼ץߥƥ֤Ȥơǥեɥǥե塼饤ȥ졼ХåեؤȡƤΥƥ󥰤뤳ȤˤäƤǤ桹ϥǥեɥ饤ƥ󥰥ץCryEngine3ʣʥ쥤䡼줿ӥȥ饤ƥ󥰥ǥ뤬Ѥ뤿ᡤԤˡȤޤ

ꤷƤΤϡ̾ȤƤ⥳Ȥѥ"Result"֥ץˤ륿ߥ󥰥ơ֥򻲾ȡˤǡ󥰤δ֥ϡɥѤ뤳ȤˤŬΤ˽פǤ

ǡ̤ˤεѤΥѥեޥ󥹤˸夵ܥ塼ƥ褹뤿ΥϡɥǽϤ˵ŤȤפǤϡŪ˥ν̤ñˤޤʤȤȥԥ륷ǥȥ饤˥ե륿󥰤򥨥ߥ졼󤹤ɬפʤǤǤϤʤơϡɥ˥åȤѤ3DƥΥ쥤ȤκŬΤˡåΨ˸夷ޤ顤󥽡ޤMicrosoft DirectX 10 APIѤƥܥ塼ƥغǽŪʥǥ󥹾򥳥ԡ뤳ȤǽǤMicrosoft DirectX 9.0c APIѤƤԲǽǤ
ˡSHɽΤñʥȥ饤˥֤μϡ˾ޤʤ饤ȥ֥꡼ǥ󥰤Ǥ㡤άˡ褹뤿ˡΤĤϼΥǵޤ

5.5.1 Deferred lighting

CryEngine3ˤƥǥեɥ饤ƥ󥰤ȤΤǡǥ󥹥ܥ塼ľŪ˥ޥӥȥѥɲäǥǥե塼饤ȥ졼Хåեؤ褵ޤϲ桹ˤΥѥФƱͤ˥ƥ󥷥ץѥȿ٥ХɥƥȤΤ褦ƤѲǽʥǥեɺŬѤ뤳ȤǽˤޤˤϤޤ֥6.4ˤƵ褦ʣʥ쥤䡼줿饤ƥ󥰤뤳Ȥǽˤޤ


日付Visual FoxProを検証する方法

--------------------------------------------------
Ķ9ؤ³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------
5.4 Propagation

[Kajiya86]ǵҤ줿褦ʥ(1)򤯥ץϤĤޤ¿ϼ2ĤΥ롼פؤʬޤեɥ塼ȥХåɥ塼ǤäȤⶦ̤ϥեɤȥХåɤΥ쥤ȥ졼󥰤ǤԤΥ롼פϥԥ塼եåǺǤݥԥ顼ǤʤȤȾĹʷ׻ʤǥʬ뤫Ǥãơϥեɥ塼Υ롼פ°ޤˡ[KajiyaVonHerren86]Ƥ줿åSHˡȤΤˤͿãΤη˳ȤߤʤȤˤäƿꤹ뤳ȤǤޤܾȤʼݤΤᡤ桹ϤĤSHХɤˤФƤܥǥ󥹤γƤɽǤޤޤñͥơνƤϾʤȤ̳ơޤϥࡼĤȤȤݾڤƤޤʸˤRavi Ramamoorthiˤϥǥե塼ʣʴĶޥåפФ2ĤΥХɤɬפǤȤȤǤ[RamamoorthiHanrahan01]ˤؤ餺桹SH2ĤΥХɤѤޤ桹ξǤϡФƤܥǥ󥹤γƤ̥֤ɽ뤿˽ʬǤ
ãơϤĤȿ󥹤Ωޤƥ졼ɽΤϡǥ󥹥ܥ塼Υåɶ֤ˤã1ʬθǤ

¬ƤL(x)ϥxˤδܥǥ󥹤γƤǤñͥץδ֤äȡ桹ϳVPLΥǥ󥹽ͤ򤳤Υΰ֤˺ǤᤤȤߤʤΤؤȲûޤVPLΤʳƤñͥץθΤΥǤϤ狼ʤΤǡ桹ϥ֤εΥȥåĹ֤ĥ塼֤ȤƼ갷äɤǤ줿VPLΥǥ󥹤Գμ¤ˤΥ塼֤¦dzƤޤդƤۤΤϤΥ塼֤̾ʿѤǥ󥹤γƤĤȤǤ

桹ܤ̤٤Υ塼֤ޤǤδ֡ͥ륮ãޤ4Ǥϡǥãܤ륻뤫ΥФñã졼򸫤뤳ȤǤޤ1ĤΥФãƥåפ2ĤΥơΩޤ
̤Ӥܤ륭塼֤ФƤǥ󥹤ʬ׻뤳ȤˤäƳ̤Ӥ«׻ޤ
줿ͥͥ륮νͤ򸽺ߤΥ塼֤ΥǥɽؤȲûޤ줬̣Τϡ̤Фͤǥ󥹤ȤȤǤͥ륮γƤϡƤΥ塼֤ФƳãƥåפθ塤ƱޤޤǤɤϡ桹줾츻Ȥʤ륭塼֤ФΩγѤϤäƥǥ󥹤ã֥եȶɽĤ̾ؤȺƳƤ뤿Ǥ

äơnΥ졼Ф륷󥰥륻˴ؤ뼰ϼΤ褦˵Ҥ뤳ȤǤޤ
ά

μˤPãǤܤ륻뤫ͥǥ󥹤ᡤߤΥͥǥ󥹤򤿤ޤľʻåɤμΥƥ󥷥뤫Ƥ줿Ωޤ򽸤뤳ȤGPUեɥ꡼ʤᡤ桹ϥ򽸤뤳ȤȤޤ
ã򽸤륢르ꥺûɤϤΤ褦ˤʤޤ

for_each cell
for i from direction
incmoing_radiance_dir = get_radiance_over_face(
cell.adjecent_cell[i],
directions[i] )
cell.radiance += incoming_radiance_dir

ǥã르ꥺη㤬5Ǽޤϥǥ󥹥ܥ塼6ʬǡ4Υ󥷥ã졼η̤Ǥܺ٤ʼAppendic Cˤ󶡤ޤ

-----------------------------------------------------
Ķ8³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------
5.3 Injection

ΥơΥǥͿ줿VPLΤޤȤޤ[Christensen08]ˤSHǽǥ󥹤γƤؤѴãΤؤñͤ뤳ȤǤãΡʤξϤǤ"ǥ󥹥ܥ塼"ȤѸȤƤȤޤˤϥܥ塼ΤƥǡϳƥԥˤƵĴ´ؿˤ줿ǥ󥹥եɤ¸Ƥޤäơ桹ưŪǡ¤Τ̾ͭǶֶޤ桹ϥݥȥ١ɥ(PBR)("surfels")ޤPBRѸǤϡΥơϥܥ塼ƥؤ¿Ǥ󥰤뤳Ȥ鹽ޤ椨SHͱƥơǤʤǥ󥢥󥹥ܥ塼ˤǥ󥹥եɤˤʤޤñͥơˤǥ󥹥եɤˤʤޤñͥơϤȤơ桹ϥ󥵥ץ󥰤줿reflective shadow mapΥƥȤƳǼ줿󼡸ΤޤȤޤޤΥơŪϡܥ塼ƥؤȥݥȥ١ɥ󥰤ΤѤSHǥ󥹥ܥ塼ؤȿͤ줿ǥ󥹤¸ߤγƤؤñͤ뤳ȤǤPBRμפǴ֤Ϣ³Ǥ桹ϤξˤRSMθ̤Υƥ륵ϳǼΥܥ塼ƥ1ĤΥåɥΥ⾯ʤʤȤȤݾڤƤΤǡǤΤʥȸ׻ɬפޤˡ桹ϺǽŪʽͤνŤߤθɬפޤäơñ˲ûŪѥƥåפȤʤޤ

Υ֥ץǤη׻ϡǤפǥǥե塼Х륤ߥ͡ˤĤʣʸǤۤΤ褦ľܸ˴ؤƤΤ߼¹ԤȤȤդƲΤ¾ΥפˤĤƤη׻ϡƩѴθ뤳ȤƱ褦ʤưפ˼¹Ԥ뤳ȤǽǤ

ˡǤγղŪʰ켡ФƷ֤ȤɬפʺǸΥơǤȤ¤դƲRSMơñͥơ1ФƼ¹ԤޤñͤʣФƶͭ줿Ʊ춦ͭǥ󥹥ܥ塼ؤȼ¹ԤޤϽפǡʤȤȡΣĤΥơŪ㥳ȤǡΥեåϡɥ¿ΰ켡ФưפͿ뤳ȤǤޤ

桹ϡ٤Τ֤ǵ2ɽ2Хɡ4Ĥηοˤ˸Ĵ·Ѥޤʲ˼褦ˡ2ХɵĴ´ؿǶ뤳ȤϡȤǤ뼫Ǥ뤿ǥ󥹥ܥ塼Ǵܥ饤ƥ󥰤ɽ뤿ˤϽʬǤ桹ϳǤΥ饸ƥSHؤȼͱƤ줿̥֤ؤѴޤǽ˲桹ϡΤξSHΥ٥ȥˤäɽ줿ؤVPLˡɸ n = (x, y, z)ˤɽ줿ˡ٥ȥɾޤSH c = ( c0, c1, c2, c3 )¿༰[Sloan08]
ά

ηϤθ塤ַ̥ؤȺޤ̸ФAppendix AǼޤΥ٥ȥޤVPLǤνͤˤäƥ뤵뤳ȤɬפǡϽľܸǿŤ줿IL, ILˤäƾ軻줿٥ɥ顼Asƹθ줿VPLκǽŪʥڥȥη뤿WsνŤߤǤ

ά

ǥե塼եФƳǤζIs̡ʲΤ褦˷׻ޤ

ά

(ns, l)+̣Τϡ(ns, l)ͤǤʤϰϤ˥פ줿ȤȤǤդߤΤAsIsबθ줿ǤΥ饸ƥɽȤȤǤ


4つのXMLアプリケーション言語は何ですか

RSMΥƥ륨ꥢȼͱƤǥ󥹥ܥ塼ॻ륨ꥢޤθ٤Ǥ˽Ҥ٤褦RSMǤϳǼܥ塼ƥΣĤΥƥ⾮ȤȤݾڤƤޤäơ桹Ϣ³Ǥ뤳Ȥ򵤤ˤɬפޤʤ顤ǤνͤŤߤŤɬפޤ

äơǤФƽŤդWs׻ޤǽ˥ȥåRSMˤƥƥΥꥢϲΤ褦˷׻ޤ

ά

ǡ
SRSMreflective shadow mapˤäʤ줿ꥢǤ
SareϹθ줿ץñͤ줿ФƿľǤǥ󥹥ܥ塼ڤ줿ꥢˤäʤ줿ꥢƤǤ
treflective shadow mapΥƥοǤ

ǡ桹RSMSRSMʤ줿Τ˥ǥ󥹥ܥ塼ʤ줿Sarea˰פΤ򤷤ޤϴñʷ׻˽ޤ

1ĤΥΥꥢϥǥ󥹥ܥ塼ڤ줿ꥢȤƶ뤳ȤǤޤĤƤۤΤϡڤꥨꥢSareaȤ̾ŤƤȤȤǤäơ桹ϰʲޤ
ά

ʤΤǡʲΤ褦˳ǤФŤߤ뤳ȤǤޤ
ά

ǤνŤդη̤ϡǥ󥹥ܥ塼RSMΥξ¸Ǥǥ󥹥ܥ塼ʤ륨ꥢ˥Ȥ˥եåȤRSMΥꥢ򤹤뤿Ǥ

---------------------------------------------
Ķ7ؤ³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------
5.2 Scene point cloud genration

󥪥֥ȼ2ΤޤȤޤä뤿ˡ桹reflective shadow maps(RSM)Υƥ˥åѤޤRSMΥǥϤʤꥷץǡ桹ξˤŬѤǤޤƻ֤ǶѰʥץ̩٤äξȤ餵줿Τߤ򥵥ץ󥰤ޤϺǤΨŪʤΤΣĤǡ˽Ҥ٤褦˥2򥵥ץ뤹뤿GPUǹ٤󲽤븽ߤˡǤäơ(4)Ф2ΤޤȤޤäϤưפ뤳ȤǤޤ
桹ϸRSMΥ쥤[DachsbacherStamminger05]ѤޤϸΥ󥵥ץ󥰥ѥδ֥饹줿2VPLκǽŪʶ٤뤳ȤǽˤޤˡãΤؤγVPLñͤޤưפˤޤ
ο򸺤餹ˡ桹϶٤θ饹󥰤ѤƵRSMΥ󥵥ץ󥰤̣Τˤ뤿˥ޡȤʥե륿ѤޤΥե륿¬[WFABDG05]ƤꡤVPLζ٤ˤVPLΥ򥯥饹󥰤뤳Ȥ鹽ޤΥƥåפ³ñͥơΤˤޤξϤμAppendixBDZ뤳ȤǤޤ

--------------------------------------------------------------

Ķ6³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

--------------------------------------------------------------

5. Light propagation volumes

ǽˡξϤǻѤΥꥹȤޤʸǤΤ٥ȥǡʸǤΤǤǤ뤳ȤդƤ

ɽ1ξϤǻѤ륷ܥ

5.1Overview

[ATS94]ɽˤѸǡ̾ˤĤƤΥΥΥޥŸ[Kajiya86]ͤ뤳ȤϤޤ礦

(1)

ǡ
ά

ե˰¸ΤΤάޤ
Ÿ2ȿͤˤä¤줿ͭ²ȿͤξˤƤ3Ĥˡ˸餹ȤǤޤ
(2)

ǡ
ά

桹Ϥγƹܺ٤˹ͤޤ

ǽιI0Goe0ϸľܲĻɽƤꡤηɽƤ֥ͥȤ󥰤뤳Ȥˤꥢ륿ǰŪ˵ޤG̡̾ο٥Хåե󥰤Dz褵ޤ
I1GoK1G1e0ϥǤƤθľܾɽƤꡤǡ
GoŪʿ٥ХåեѤƲ褵롣
K1ǤϡȾᤰäƤ߹ळȤˤͿ졤ƥץʸФƤδؿ򸺤餷Ūޤϻ׻ΡޤBRDFĥץʾǥǤ
G1¿Υɥ󥰥ץΣĤˤޤ¿ΰŪʥƥ˥å1Ĥϥɥޥåפǡ֤˿٥Хåե̤δŪʤΤȤƼ갷ޤʥɥޥåԥ󥰤Υƥ˥åȤƤΨŪˡȤơΤΤƤ뤳ȤɽƤޤ

ǤϡǸιI2G0K1G1K2G2e0ܺ٤˵ޤ礦
Ǹιϴܾ1ȿͤɽƤޤ
G0ϡιƱͤŪʿ٥Хåե󥰥ץѤƲ褵ޤ
ǸκK2G2ϼ˼褦reflective shadow mapsΥƥ˥åĽʥǥե塼եФƸΨŪ˵ޤ

ά

ǡI1'K2G2e0ϴ¬Ԥΰ֤ĻǤʤǤľܾǤ

äơ桹I1'νϤȤƽľܾˤ륷ɽ뢨litޤʢؿlitͤȤ
I1'K2G2e0ϸߤξȳƥץʸФ륷ɥˡǤޤ뤳ȤǤޤ
äơreflective shadow mapsΥƥ˥åĸGPUǤιΨŪ˵ˡǤȤȤ餫ˤʤޤ
(2)ϲǺƥ롼ײޤ
(3)

Τ褦ˡɤΤ褦ˤơ饹饤˿Ū˥줿ȤȤȾμǺƥ롼ײΤƤޤϡȿŪ1ĤؤؤѴޤ
ϸߤΥ饤饤ϡɥǸΨ褯ˡǤ

[Keller97]ˤäƤ줿󥹥ȥ饸ƥξˤơI1'K2G2e0νϤȤ2ʤޤȤޤޤΤޤȤޤˤƳƸФK1G1򤯤ȤȤˡǤ
(4)

(K2G2e0)iϤޤȤޤ꤫iܤ2Ǥ
˥ꥹȤ褦ˡΥƥ˥å˴Ť¿Υƥ˥å¸ߤޤƤϡ¤ˤСο1ԥ뤢ɴǤ뤿ᡤΤ褦˸¿Τ󥰤뤳Ȥʥѥեޥ󥹥ڥʥƥޤ
⤦ĤΤκǤĩŪʬGγ¦DZ줿롼θΤǤĽҤƥ˥å¿ϳVPLФƲĻȽ꤬ʤ뤳ȤɬפȤ޷ä뤿2롼̵뤷Ƥޤʤ顤Ļ䤤碌ФƳΨŪʥץѤΤɤѥեޥä֤imperfect shadow mapsˤθ뤳ȤޤǽǤξϤ˽Ҥ٤褦2롼ϰޤ

I2G0K1G1K2G2e0̤Υѥץ饤ϰʲǤ

޾ά

Υޤ鵤Ť褦ˡK1G1̺Ǥ⥳Ȥ륮㥶󥰥ƥåפǤ줿VPLΤޤȤޤ뤳ȤΩäƤ[DachbacherStamminger07]饤ȥå[WFABDG05]Τ褦ʽŪץ󥰡ˡղŪʤΤǤƥ㥶󥰥ƥåפ̤Ŭޤϥ֥4ˤƽҤ٤Ūɽȼä֤Υǥեɥǥ󥰤ޤϥǥեɥ饤ƥ󥰥ѥǤ

桹ϥ㥶󥰺Ǥ⤹ä󥰺ǤȤK1G1Ǹޤˡ¿θФƥХå줿å󥰤󶡤ޤǡθǽŪʲؾʽϤ⤿餹ΤȤޤVPLδܾ󥰤ФƲ桹ΤʥǤ


桹ϥ르ꥺʷ˵ҤǥãǺǸιˡƤޤ
3Ǽ褦˥르ꥺ4ĤΥѡȤ鹽ޤ

ɽꤹǥ
Υơreflective shadow mapؤȥ󥰤ˤ2ΤޤȤޤ뤳Ȥ鹽ޤ

ǥ󥹥ܥ塼ؤβ۸΢ñ͡
injectionǤϤʤطŤȤäʤΤ"ñ"Ȥˤޤ
Υơ鲾۸ꤹΤͿȡĴ·Υܥ塼ƥˤɽ줿ǥ󥹥եɤؤñͤޤ

ܥ塼Τǥã
ǥ󥹤οǡܥ塼Τ륰åǰۤʤ륹ޤ򷫤֤뤳Ȥˤǥ󥹤ãޤ

ǽŪʥ饤ȥץѥܥ塼ʸãΡˤǥΥ饤ƥ
줿ǥ󥹥ܥ塼򥷡Υ饤ƥ󥰤ŬѤޤΥ饤ƥ󥰤ФSHǥ󥹥ܥ塼ˡǸãΤŬѤ뤿Ūˡ[Tatarchunk04][Oat06]Ʊǥ󥢥󥹥ܥ塼뤽¾Υץꥱ󤬿¿ޤʬˡȾᤰäʬ뤳Ȥͤǥ󥹤ǥե塼եФ;٤ؤѴ뤿˥ΤΤޤSHǼ¹Ԥ뤳ȤǽǤ(ChemLin08)

ˡƤϰʲб륵֥Ǿܺ٤˵Ҥޤ

ŪˤϡΥץ[Evans06]ȤȤˤⵤդ٤Ǥ桹Υץμʹ׸٤⤯׻ɬפȤʪŪʸã˴ŤΤ˱äƤ뤳ȤǤ

åɶSHȶΤŪʶɽ껲Τ褦ʤĤβ꤬ĤäƤޤ桹ϤνȲƤ"Improvements and optimization"֥ǵޤ

------------------------------------------------------
Ķ5ؤ³ġ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ

-------------------------------------------------------
4The Path to Our Solution

CryEngine2ʤ桹ưŪʾꥢ륿Ѳ륵ݡȤޤǤ[Wenzel06]ǽҤ٤Ƥ褦ˡˡ˲ǽǡ٤ưŪäƤޤͳˤꡤХ륤ߥ͡βˡ˻׻ץϲ򤹤ȤȤ򤷤ޤͳϰʲǤ̲ץʤʤǤդλ׻ޤϥϡʤˤǡưˡ˴ŤΡ"Instant radiosity"[Keller97])󼡸ФGPUǺǤΨŪǤ롣ʤ顤ʿ󼡸褹뤳Ȥϥꥢ륿ॢץꥱФǤޤ

Ĥߤ̡桹ˤꤳ꤬褵ޤȥȥʣʬΥ뤿˥ǥեɥƥ˥åѤޤ
ǶΥǥϡ롼ײ줿[WFABDG05]Υ١[Balestra08]ǥեɥ󥰤Ѥ뤳ȤǤԱʤȤˡβˡϤ뾮ʥХκŬΤߤ󶡤ΤǡɬפȤ줿ԡɥåפ󶡤ޤ
θ塤ܾФʿξĹʷ׻ȤȤϤäꤷޤäơŬϰϤĿ¿ΤܤȤФƺŬɤǤ
ϡ[SGNS07]ǻȤ줿ȥåХƥ륢åץץ󥰤˽Ⱦ٥󥰤ιͤƳФޤʤ顤ȿѲȼξˡʤʼΥǥߤޤ㤨СաӤʤɡˡ3ܤΥǥϡGPUΥե졼ȤȥХαƶ򸺤餹˥󥿥꡼֤줿ǥեɥ饤ȤΥ졼ХåեѤ뤳ȤǤϡɤԡɥåפͿˤؤ餺Υ󥿥꡼֤줿ץ뤫ͳ褹륨åˤơǽʥƥեȤĤ¸ߤޤ
äơƤξˤơ󥰥ѥեޥ󥹤ʣʥˤơHD̲٤ĸΥˤĤƤޤ줬ΤǤ

뤤ĤΰۤʤˡƤƤޤ㤨[NicholsWyman09], [NSW09]Τ褦ʤΤǡѥեޥ󥹤ˤĤʬŪʲˡͿ줿ˤޤ󡣤ξ塤Υƥ˥åϢ³ι⤤ȥǤդΥ󡤤Ĥޤ귲դԤʣ褦ʥǤϤ褯륷ξˤƤϡۤȤΩޤ󡣲桹ϻ֤ι«Τᡤˡϼޤ
ˡ嵭ˡˤ󼡸οO(np)O(nlog(p))Ǥǡnϸǡp褹ԥǡ¿Υ饤Ȥ褹뤳ȤФѥեޥ󥹥СإåɤϸΥϡɥФƤϼޤ󡣤椨ˡ桹󼡸¿Υ֥롼ȥե󥰤ΥϡɥäƤƤŤȤãޤʤ顤饤ȤοO(n+p)ޤǸäˤϡƤǤ륢ץˤʤޤ¾꤬¸ߤޤ󼡸ФƼǾ­뤳ȤǤǶ[RGSDK08]imperfect shadow map̵Dz褵ޤ2VPLФƥΥ饹饤ǽˤ뤿ͭʥǥǤޤפʣޤɲŪʷ׻ƥåפưŪʥΥݥȥ١Υȥɽ뤿ɬפȤʤޤ׵ϵǡԤʣʣʥǤϡäˤäˤʤޤ

桹Υƥ˥åǤϡ롼Фimperfect shadow mapsѤ뤳ȤˤǽǤΥƥ˥åõ֤¤ΤᡤޤǤޤ׻ɲŪʥꥪХإåɤȥåʣΤᡤ¾Υݥȥ١Υɽ¸뤳Ȥ򤱤ȤȤޤ

-------------------------------------------------------

Ķ4³ġ



These are our most popular posts:

検波器はなぜこんなに遅いのか?

2010年4月11日 ... この抽出プロセスは、実質的には、 所望の周波数以外の全てを阻止する非常に狭帯域 のフィルタである。 狭帯域 ... 従って、我々は、ラジオ受信機が我々のために掃引を 行なうために用いているような、 スーパーヘトロダイン・テクニックを用いる。 これは選択 ... これらの代替の検波器がなぜ必要かを理解するためには、 干渉が往々にして主観的 なものとなるという事実を考える。 .... 中央の線が限度値となるように正規化され、 結果 ははっきりと示された不確かさ分の余裕とともに ±20dB でプロットされる。 read more

MIT研究者Dr. Josef Oehmenによる福島第一原発事故解説 - A ...

2011年3月14日 ... 私は3月12日に日本で起こっているいくつかのトラブル──日本の原子炉の安全性─ ─に関して心の平穏を与えるため .... 複数の緊急ディーゼル発電機のうちの1つが必要 な電力を供給するために作動させられた。 ... 我々にはショッキングに思えるが、これら 全ては、オペレータとしての日々のトレーニングの一部であり、炉心溶融を ... 私は蒸気 放出が理論的に環境への放射性元素の放出と同様であること、なぜそうなのか、それが 危険ではないことを .... 冷却水として使われた海水はある程度放射化する。 read more

URL最適化5つのSEOポイント

永続化のためには長く使えて検索エンジンが好むURLを設定する必要があるのです。 ... »»URLの正規化ができていないよく見かける4つのケース ... なぜ永続化が必要かという と、検索エンジンがユーザーにとって有益なページかどうかを判断する際に、「そのURL が ... 名の場合、なかなか検索順位が上がってこない「サンドボックス」や「エイジング フィルタ」と呼ばれる現象が確認されてい ... 記号に関してはこの4種類存在するのです が、その中で我々が推奨しているのは「-(ハイフン)」「 (アンダースコア)」 ... read more

EMCアラカルト

その後,国際規格への JIS 整合化の動きも活発になり,EMC 試験方法の規格も次々に JIS 化されていき,「試験方法 ... 削除となった項目,メンバー全員が何回議論しても どうにもならなかった項目もあります。 ... エミッションとコモンモードフィルタ ・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・. 5. 12. ... 検波方式 Peak,QP, Average の違いと必要性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・. 8. 24. .... 電波妨害はなぜ発生するか ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・ ... read more

Related Posts



0 コメント:

コメントを投稿