コード例 #1
0
def test02_chi2_rough_grazing(variant_packet_rgb):
    xml = """<float name="alpha" value="0.5"/>"""
    wi = ek.normalize([0.8, 0.3, 0.05])
    sample_func, pdf_func = BSDFAdapter("roughdielectric", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3)

    assert chi2.run()
コード例 #2
0
def test01_chi2_smooth(variant_packet_rgb):
    xml = """<float name="alpha" value="0.05"/>"""
    wi = ek.normalize([1.0, 1.0, 1.0])
    sample_func, pdf_func = BSDFAdapter("roughconductor", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3,
                         ires=8)

    assert chi2.run()
コード例 #3
0
def test01_chi2_smooth(variant_packet_rgb):
    xml = """<float name="alpha" value="0.05"/>
             <spectrum name="specular_reflectance" value="0.7"/>
             <spectrum name="diffuse_reflectance" value="0.1"/>"""
    sample_func, pdf_func = BSDFAdapter("roughplastic", xml)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3)

    assert chi2.run()
コード例 #4
0
def test07_chi2_rough_from_inside(variant_packet_rgb):
    xml = """<float name="alpha" value="0.5"/>"""
    wi = ek.normalize([0.2, -0.6, -0.5])
    sample_func, pdf_func = BSDFAdapter("roughdielectric", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3,
                         res=201)

    assert chi2.run()
コード例 #5
0
def test03_chi2(variant_packet_rgb):
    from mitsuba.python.chi2 import BSDFAdapter, ChiSquareTest, SphericalDomain

    sample_func, pdf_func = BSDFAdapter("diffuse", '')

    chi2 = ChiSquareTest(
        domain=SphericalDomain(),
        sample_func=sample_func,
        pdf_func=pdf_func,
        sample_dim=3
    )

    assert chi2.run()
コード例 #6
0
def test06_chi2_rough_ggx_visible(variant_packet_rgb):
    xml = """<float name="alpha" value="0.5"/>
             <boolean name="sample_visible" value="true"/>
             <string name="distribution" value="ggx"/>
          """
    wi = ek.normalize([0.5, 0.5, 0.001])
    sample_func, pdf_func = BSDFAdapter("roughdielectric", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3)

    assert chi2.run()
コード例 #7
0
def test05_chi2_aniso_ggx_visible(variant_packet_rgb):
    xml = """<float name="alpha_u" value="0.2"/>
             <float name="alpha_v" value="0.05"/>
             <string name="distribution" value="ggx"/>
             <boolean name="sample_visible" value="true"/>"""
    wi = ek.normalize([1.0, 1.0, 1.0])
    sample_func, pdf_func = BSDFAdapter("roughconductor", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3,
                         ires=8)

    assert chi2.run()
コード例 #8
0
def test03_chi2_rough_beckmann_all(variant_packet_rgb):
    xml = """<float name="alpha" value="0.5"/>
             <boolean name="sample_visible" value="false"/>
             <string name="distribution" value="beckmann"/>
          """
    wi = ek.normalize([0.5, 0.0, 0.5])
    sample_func, pdf_func = BSDFAdapter("roughdielectric", xml, wi=wi)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3,
                         res=201)

    assert chi2.run()
コード例 #9
0
def test02_chi2(variant_packet_rgb):
    from mitsuba.python.chi2 import PhaseFunctionAdapter, ChiSquareTest, SphericalDomain
    from mitsuba.core import ScalarBoundingBox2f

    sample_func, pdf_func = PhaseFunctionAdapter(
        "hg", '<float name="g" value="0.6"/>')

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=2)

    result = chi2.run(0.1)
    chi2._dump_tables()
    assert result
コード例 #10
0
def test11_chi2_aniso_lobe_trans(variant_packet_rgb):
    from mitsuba.render import BSDFContext

    xml = """
    <float name="alpha_u" value="0.5"/>
    <float name="alpha_v" value="0.2"/>
    """
    wi = ek.normalize([-0.5, -0.5, 0.1])
    ctx = BSDFContext()
    ctx.component = 1
    sample_func, pdf_func = BSDFAdapter("roughdielectric", xml, wi=wi, ctx=ctx)

    chi2 = ChiSquareTest(domain=SphericalDomain(),
                         sample_func=sample_func,
                         pdf_func=pdf_func,
                         sample_dim=3,
                         res=201)

    assert chi2.run()
コード例 #11
0
def test06_chi2(variant_packet_rgb, md_type_name, alpha, sample_visible,
                angle):
    from mitsuba.python.chi2 import MicrofacetAdapter, ChiSquareTest, SphericalDomain
    from mitsuba.render import MicrofacetType

    if md_type_name == "GGX":
        md_type = MicrofacetType.GGX
    else:
        md_type = MicrofacetType.Beckmann

    sample_func, pdf_func = MicrofacetAdapter(md_type, alpha, sample_visible)

    chi2 = ChiSquareTest(
        domain=SphericalDomain(),
        sample_func=lambda *args: sample_func(*(list(args) + [angle])),
        pdf_func=lambda *args: pdf_func(*(list(args) + [angle])),
        sample_dim=2,
        ires=10)

    assert chi2.run()