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)); }
//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); }