List
MAXSCAN 고급텍스쳐링 후 Space Tracker Load 실패
Posted Date: 2023-11-21 5:52     Edited Date: 2023-11-23 4:14     Writer: inactive

Please provide your development details as below;

1. SDK Version: 6.1.0
2. Development Environment: Unity-iOS, MacOS 14.1,  M2 MAX
3. Tracker/Scanner: Space Tracker
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): Pro-One Time Fee
5. Target Device(Optional):

 

MAXSCAN 어플리케이션을 통해 공간을 스캔한 후 고급 텍스쳐링을 한 다음 파일을 가져와서 Load 하였을 때 아래와 같은 오류가 발생했습니다.

한가지 스캔 파일은 정상적으로 로딩이 되었으나,

해당 파일 및 다른 파일에서는 아래의 오류나 File doesn't exist 와 같은 오류가 발생합니다.

 

해결방법이 있나요?

 

 

Posted Date: 2023-11-23 1:42     Edited Date: 2023-11-23 1:42     Writer: sejin

MAXST AR SDK에 관심을 가져주셔서 감사합니다. 

텍스처링 중에 오류가 발생하여 vertex 값중에 nan 이 있는 것 같습니다.

답글에 파일을 올려주시면 분석 후 답변 다시드리도록 하겠습니다.

감사합니다.

Best regards,

Shelden

MAXST Support Team

Posted Date: 2023-11-23 1:45     Edited Date: 2023-11-23 1:45     Writer: inactive

답글에 파일이 업로드 되지 않는것같습니다.

파일 공유 가능한 이메일 알려주시면 메일로 전송하도록 하겠습니다.

Posted Date: 2023-11-23 1:48     Edited Date: 2023-11-23 1:48     Writer: sejin

sdk@maxst.com 으로 보내주세요.

감사합니다.

Posted Date: 2023-11-23 3:26     Edited Date: 2023-11-23 3:26     Writer: sejin

먼저 불편을 드려 죄송합니다.

Asserts > MaxstAR > OBJLoader > FileReader.cs 의 ReadObjectFile 함수를 아래 코드로 교체해주시면 정상적으로 로드될 것입니다.

public static ObjectFile ReadObjectFile(string path)
    {

        ObjectFile obj = new ObjectFile();
        string[] lines = File.ReadAllLines(path);

        obj.usemtl = new List();
        obj.v = new List();
        obj.vn = new List();
        obj.vt = new List();
        obj.f = new List>();
        obj.vc = new List();

        foreach (string line in lines)
        {
            if (line == "" || line.StartsWith("#"))
                continue;

            string[] token = line.Split(' ');
            switch (token[0])
            {

                case ("o"):
                    obj.o = token[1];
                    break;
                case ("mtllib"):
                    obj.mtllib = token[1];
                    break;
                case ("usemtl"):
                    obj.usemtl.Add(token[1]);
                    obj.f.Add(new List());
                    break;
                case ("v"):
                    obj.v.Add(new Vector3(
                        float.Parse(token[1]),
                        float.Parse(token[2]),
                        float.Parse(token[3])));

                    if (token.Length == 7)
                    {
                        obj.vc.Add(new Vector3(
                            float.Parse(token[4]),
                            float.Parse(token[5]),
                            float.Parse(token[6])));
                    }
                    break;
                case ("vn"):
                    obj.vn.Add(new Vector3(
                        float.Parse(token[1]),
                        float.Parse(token[2]),
                        float.Parse(token[3])));
                    break;
                case ("vt"):
                    obj.vt.Add(new Vector3(
                        float.Parse(token[1]),
                        float.Parse(token[2])));
                    break;
                case ("f"):
                    for (int i = 1; i < 4; ++i)
                    {
                        int[] triplet = Array.ConvertAll(token[i].Split('/'), x =>
                        {
                            if (String.IsNullOrEmpty(x))
                                return 0;
                            return int.Parse(x);
                        });

                        if (obj.f.Count == 0)
                        {
                            obj.f.Add(new List());
                        }

                        obj.f[obj.f.Count - 1].Add(triplet);
                    }
                    break;
            }
        }

        return obj;
    }

이 부분은 다음 업데이트 때 반영하도록 하겠습니다.

전체파일은 메일로 전송하도록 하겠습니다.

감사합니다.

Best regards,

Shelden

MAXST Support Team

Posted Date: 2023-11-23 3:43     Edited Date: 2023-11-23 3:43     Writer: inactive

빠른 답변 감사드립니다.

 

현재  Pro-One Time Fee License를 사용하고 있는데,

업데이트를 한다면 해당 업데이트를 제공받을 수 있는건가요?

Posted Date: 2023-11-23 4:14     Edited Date: 2023-11-23 4:14     Writer: sejin

아닙니다.

점심시간 중이라 담당자가 메일을 아직 전달 드리지 못한 것 같습니다.

전달해드렸다는 연락을 받았으니 지금 확인하시면 메일이 도착해있을 것입니다.

감사합니다.