예제 #1
0
    private int InitScene(out List <Node> tree, out List <Triangle> datas, out List <PathTracerMaterial> materials)
    {
        Bounds bounds;
        var    triangles = GetTrianglesInScene(out bounds);

        tree      = null;
        datas     = null;
        materials = new List <PathTracerMaterial>();

        List <Triangle> tris = new List <Triangle>();

        foreach (var t in triangles)
        {
            for (int i = 0; i < t.Value.Count; i++)
            {
                Triangle triangle = t.Value[i];
                triangle.matid = materials.Count;
                tris.Add(triangle);
            }

            PathTracerMaterial mat = t.Key.GetMaterial();

            materials.Add(mat);
        }

        return(LBVH.BuildBVH(tris, bounds, ref tree, ref datas));
    }
예제 #2
0
    //public bool trancparency;

    public PathTracerMaterial GetMaterial()
    {
        PathTracerMaterial mat = new PathTracerMaterial();

        mat.albedo    = new Vector3(albedo.r, albedo.g, albedo.b);
        mat.emissive  = new Vector3(emissive.r, emissive.g, emissive.b) * emissiveIndentity;
        mat.roughness = roughness;
        //mat.trancparency = trancparency ? 1 : 0;
        return(mat);
    }