Closed mandyedi closed 3 years ago
Hi! Thanks for reporting this.
Interesting! Looks like a regression, likely my fault for not checking the newer file loading code thoroughly on Windows.
I don't have a Windows box on hand to start debugging right now, but it looks like the issue is likely in getFilePath()
, where it blindly appends a forward slash, assuming it'll be a UNIX filepath.
Specifically we get two forward slashes, since we reconstruct the full path to the mtl file in parseWavefront()
, and then again grab the asset path from that full string in parseMTLFile().
Could you try substituting that getFilePath() function with this one below, and see if it works? I can test it myself later this week as well if you're busy.
char *getFilePath(const char *input) {
char *dir = NULL;
#ifdef WINDOWS
dir = calloc(256, sizeof(*dir));
_splitpath_s(input, NULL, 0, dir, sizeof(dir), NULL, 0, NULL, 0);
return dir;
#else
char *inputCopy = stringCopy(input);
dir = stringCopy(dirname(inputCopy));
free(inputCopy);
char *final = stringConcat(dir, "/");
free(dir);
return final;
#endif
}
Thank you for your reply. I tested with the given modification but still have the issue. I also built and ran on Linux and got this:
': No such file or directory Can't access './input/tonni.mtl
': No such file or directory Can't access './input/newScene.mtl
': No such file or directory Can't access './input/torus.mtl
': No such file or directory Can't access './input/teapot.mtl
': No such file or directory Can't access './input/teapot_green.mtl
@mandyedi Is that under Visual Studio? If so, c-ray assumes you're using relative paths from the current working directory. Try setting the CWD to the project root directory.
The earlier invocation you showed:
bin\Release\c-ray.exe input\scene.json
from the command prompt looks to be doing this correctly already, so that should work.
+1 I have this same issue currently on Windows. It can't find the assets and crashes.
I fired up a Win10 VM and took a look. I think I resolved the file loading + crashing issue. Turns out, they were two unrelated problems. Let me know if it works for you now.
Resolved by #101
I tested it and works fine. Thank you!
Great to hear! Closing this as resolved, then.
Hi vkoskiv, I built a release following your instructions and when I run
it gives the following errors:
If I run it from Visual Studio and set command line arguments to c:\github\c-ray\input\scene.json, it gives the following errors:
I started to debug it. Do you have any workaround or is it a known issue?