Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / DBO2X converter - Works with legacy, EBE and PBR DBOs (does not work with WinXP)

Author
Message
Bored of the Rings
User Banned
Posted: 17th Mar 2018 09:34 Edited at: 23rd Mar 2018 00:01
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 17th Mar 2018 11:02
No DBPRO Code?

Drag and Drop doesn't teach anybody anything.
Bored of the Rings
User Banned
Posted: 17th Mar 2018 11:09
What do you want to know, I'm an excellent teacher, coder since 1982.?
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Mage
17
Years of Service
User Offline
Joined: 3rd Feb 2007
Location: Canada
Posted: 17th Mar 2018 20:15
Thanks for the Tool.
I see that this tool is aimed at helping people migrate off of DBP to AppGameKit as the tool is meant to convert DBO to X Format.

I have a few questions.
1. You seem to mention 2 different DBO formats. I was only previously aware of the one format, or at least that the format was updated some time around 2003 (since the specification changed). Can you provide more details about this. What is EBE and PBR DBO formats?

2. Can you (think about) implement command line functionality to this? I was thinking for some time about workflow. Most people think about batch files and things like this, there is that discussion. However I was thinking about workflow and interoperability. If I were to make a tool that coverts different formats that you don't support, it would be nice if through the use of command line interface the tool could interface with your tool to convert all the way to X format or other things that you do support in a seamless workflow. The reverse could also be true if you decided to take advantage of it.

3. What was the most difficult part of the conversion process? It would be nice to have insight on this even if I am not working on the same thing.
Bored of the Rings
User Banned
Posted: 17th Mar 2018 21:14 Edited at: 23rd Mar 2018 00:02
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others

Attachments

Login to view attachments
Mage
17
Years of Service
User Offline
Joined: 3rd Feb 2007
Location: Canada
Posted: 18th Mar 2018 01:08 Edited at: 18th Mar 2018 01:09
Bored of the Rings wrote: "The difference is the FVF structure/FVF sizes."

I'm, sure there's more to that. I guess I'll see what stuff is different when I start reading the DBO format specification.

Bored of the Rings wrote: "When the DBO gets saved out, there is an additional sphere mesh that gets saved as part of the final model (usually named Group)."

I assume you mean, when DBP is saving a DBO file. Why would a sphere mesh be baked into the DBO? Seems pointless and arbitrary. Maybe you are talking about FPSC adding a skybox when saving a level or something.

Bored of the Rings wrote: "There have been quite a few stumbling blocks just to get everything to come out correctly, especially when there were multi materials/textures being used."

I was thinking when I finally get a object file written, when it finally doesn't immediately crash the modelling program, I'm sure that I'll have joints bending the wrong way, wrong weights, scrambling the model possibly. Normals are another issue. I have a good idea how normals work but I am a bit hazy. So having to convert between different ways of storing the data is bound to be a disaster. No doubt I'll need to bust my brain on that for a while.

Bored of the Rings wrote: "I originally had a few code bottlenecks that were taking ages to process e.g. the animation frames for both matrix and quaternion keyframes were taking forever to process because of the large number of animation frames. Changing the code to use banks instead of memblocks was a godsend and also I had to develop a super fast way of concatenating large strings i.e. using pointers and poking/peeking."

I wonder if I will run into a similar problem. I am not doing the same stuff as you, since I am working with different formats. I generally would not go with a method that writes large strings, though I can see where it would be useful to write large groups of bytes. Perhaps at the conversion process this need becomes more obvious as a necessity. Also I was able to load a model file of a 1200 poly character with about 300 anims into memory and write the complete contents out in plain text. That seems to take about 5 seconds. You mention your process was taking a lot of time. This is a bit of a surprise to me. My impression was that that actual work was rather trivial once you figured out how to actually convert the data.
Bored of the Rings
User Banned
Posted: 18th Mar 2018 06:31 Edited at: 23rd Mar 2018 00:03
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 18th Mar 2018 06:58
Quote: "What do you want to know, I'm an excellent teacher, coder since 1982.?
"


Yeah..about that, I asked a simple question before (which i figured out on my own). You gave me some snark instead.
Bored of the Rings
User Banned
Posted: 18th Mar 2018 07:15 Edited at: 23rd Mar 2018 00:04
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others

Attachments

Login to view attachments
Mage
17
Years of Service
User Offline
Joined: 3rd Feb 2007
Location: Canada
Posted: 18th Mar 2018 18:30 Edited at: 18th Mar 2018 18:31
Bored of the Rings wrote: "For a character model that has over 5000 animation frames and over 30 limbs, this was originally taking over an hour when using standard concatenation. After developing my faster string concatenation code using pointers and replacing memblocks with banks (thanks to IanM MatrixUtils), this process now is faster than Fragmotion , around 20 odd seconds for a 5000 framed model (well at least the last time I timed it). "

Over an hour. Wow. I timed it i was able to dump a 1200 poly, 19 limbs, 300 frames character model in 1.8 seconds. That would put it in line with your improved timing results. So your conversion method must be nearly 100% time efficient at this point.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 20th Mar 2018 05:48
Looking good, can't wait to try this out
Bored of the Rings
User Banned
Posted: 20th Mar 2018 18:37 Edited at: 23rd Mar 2018 00:04
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Bored of the Rings
User Banned
Posted: 20th Mar 2018 19:58 Edited at: 23rd Mar 2018 00:04
[edit]
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Mage
17
Years of Service
User Offline
Joined: 3rd Feb 2007
Location: Canada
Posted: 21st Mar 2018 08:57
Why the password?

Login to post a reply

Server time is: 2024-04-18 10:06:04
Your offset time is: 2024-04-18 10:06:04