Skip to content

shocker-0x15/SLR

Folders and files

NameName
Last commit message
Last commit date
Dec 14, 2018
Dec 12, 2018
Dec 23, 2018
Dec 23, 2018
Dec 23, 2018
Dec 14, 2018
Dec 12, 2018
Dec 12, 2018
Jul 17, 2017
Feb 2, 2016
Dec 12, 2018

Repository files navigation

SLR:

SLR
IBL image: sIBL Archive

SLRはモンテカルロレイトレーシングに基づいたレンダラーです。
SLR is a renderer based on Monte Carlo ray tracing.

SLRは次の要素から構成されています。
SLR consists of the following components.

  • libSLR - レンダリングコア / rendering core
  • libSLRSceneGraph - シーン管理・読み込み機能 / scene managing & loading
  • HostProgram

特徴 / Features

  • Full Spectral Rendering (Monte Carlo Spectral Sampling)
    (For RGB resources, RGB->Spectrum conversion is performed using Meng-Simon's method [Meng2015].)
  • RGB Rendering
  • BSDFs
    • Ideal Diffuse (Lambert) BRDF
    • Ideal Specular BRDF/BSDF
    • Oren-Nayer BRDF [Oren1994]
    • Improved Ward-Dür BRDF [Moroder2010]
    • Ashikhmin-Shirley BRDF [Ashikhmin2000]
    • GGX Microfacet BRDF/BSDF [Walter2007] with visible normal sampling [Heitz2017]
    • Disney principled BRDF/BSDF (TODO) [Burley2012, Burley2015]
    • Mixed BSDF
    • Layered BSDF (TODO)
  • Volume Rendering [Pauly1999, Raab2008, Novák2014]
    • Participating Media
      • Homogeneous Media
      • Heterogeneous Media
        • Trilinear-interpolated Grid
        • Procedurally-generated Clouds (TODO)
        • Free Path Sampling is accelerated by Super-voxels [Szirmay-Kalos2011]
      • Media enclosed by surfaces
    • Phase Functions
      • Isotropic
      • Henyey-Greenstein
      • Schlick
  • Texture Types
    • Constant
    • Image
    • Procedural
      • Checkerboard (color & normal & float)
      • Cell Noise [Worley1996] like Voronoi diagram (color & normal & float)
      • Improved Perlin Noise [Perlin2002] (float & normal)
  • Bump Mapping (Normal Map)
  • Light Source Types
    • Area (Polygonal) Light
    • Infinitely Distant Image Based Environmental Light
    • Infinitely Distant Directional Light (TODO)
    • Analytic Sky Dome & Sun [Hosek2012]
  • Light Distributions
    • Diffuse
    • Ideal Directional
  • Camera Types
    • Perspective Camera with Depth of Field (thin-lens model)
    • Environment (Equirectangular) Camera
  • Motion Blur
    • Camera Motion Blur
    • Object Motion Blur
    • Deformation Blur (TODO)
  • Geometry Instancing
  • Acceleration Structure Types
    • Standard BVH (median, mid-point, binned SAH)
    • Split BVH [Stich2009]
    • QBVH [Dammertz2008] constructed by collapsing SBVH
  • Light Transport Algorithms
    • Path Tracing [Kajiya1986] with MIS (+ volumetric variant)
    • Bidirectional Path Tracing [Veach1994, 1997] (+ volumetric variant)
    • Adaptive MCMC Progressive Photon Mapping [Hachisuka2011]
      (has been dropped from current SLR implementation.)
  • Correct handling of non-symmetric scattering due to shading normals [Veach1996, 1997]
  • SLR Custom Language (C/Python-like syntax) for flexible scene description

動作環境 / Confirmed Environment

現状以下の環境で動作を確認しています。
I've confirmed that the program runs correctly on the following environment.

  • OS X 10.12.5 & Xcode 8.3.2 (Apple LLVM-Clang 8.1.0)
  • Windows 8.1 & Visual Studio 2015 Update 3 (MSVC 14.0, character-encoding conversion required)
  • MacBook Pro Retina Late 2013

動作させるにあたっては以下のライブラリが必要です。
It requires the following libraries.

  • OpenEXR 2.2
  • libpng 1.6
  • assimp 3.2

注意 / Note

モデルデータやテクスチャーを読み込むシーンファイルがありますが、それらアセットはリポジトリには含まれていません。

There are some scene files loading model data and textures, but those assets are NOT included in this repository.

参考文献 / References

[Ashikhmin2000] "An Anisotropic Phong BRDF Model"
[Bridson2007] "Curl-Noise for Procedural Fluid Flow"
[Burley2012] "Physically-Based Shading at Disney"
[Burley2015] "Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering"
[Dammertz2008] "Shallow Bounding Volume Hierarchies for Fast SIMD Ray Tracing of Incoherent Rays"
[Hachisuka2011] "Robust Adaptive Photon Tracing Using Photon Path Visibility"
[Heitz2017] "A Simpler and Exact Sampling Routine for the GGX Distribution of Visible Normals"
[Hosek2012] "An Analytic Model for Full Spectral Sky-Dome Radiance"
[Kajiya1986] "THE RENDERING EQUATION"
[Meng2015] "Physically Meaningful Rendering using Tristimulus Colours"
[Moroder2010] "A New Ward BRDF Model with Bounded Albedo"
[Novák2014] "Residual ratio tracking for estimating attenuation in participating media"
[Oren1994] "Generalization of Lambert’s Reflectance Model"
[Pauly1999] "Robust Monte Carlo Methods for Photorealistic Rendering of Volumetric Effects"
[Perlin2002] "Improving Noise"
[Raab2008] "Unbiased Global Illumination with Participating Media"
[Stich2009] "Spatial Splits in Bounding Volume Hierarchies"
[Szirmay-Kalos2011] "Free Path Sampling in High Resolution Inhomogeneous Participating Media"
[Veach1994] "Bidirectional Estimators for Light Transport"
[Veach1996] "Non-symmetric Scattering in Light Transport Algorithms"
[Veach1997] "ROBUST MONTE CARLO METHODS FOR LIGHT TRANSPORT SIMULATION"
[Walter2007] "Microfacet Models for Refraction through Rough Surfaces"
[Worley1996] "A Cellular Texture Basis Function"


2017 @Shocker_0x15