3D modeler and limitations of Blitz3D
Blitz3D Forums/Blitz3D Programming/3D modeler and limitations of Blitz3D
| ||
What limitations does Blitz3D have that would keep me from designing my own 3D modeler? I'm talking about stuff that I simply can't get around. If there are simply too many limits that Blitz3D has, I think I could pull off making one in PureBasic with OpenGL, but I haven't even bought it yet so I'd have to drop another $60. One problem I see is that you can't delete vertexes. But I don't I'd have too hard of a time cooking up an algorithm to just remake the object when a user deletes a vertex. But are there any problems that have no way of getting around that would make it impossible to make a 3D modeler? I'm mainly asking this because I have yet to see anyone make a 3D modeler in Blitz3D yet... and there are some programs that are much more clever. But I'm still up to it. |
| ||
Getting Windows API working is the biggest challenge. You will have to use PureBasic and do a lot of DLL work, and even then it won't look quite right, but it is good enough for a simple editor. |
| ||
Hmmm... I just started programming some of the types and functions that the program will use and I've already run into a problem: I can't use pointers. I'm programming my own CreateMesh() and I need to be able to access and change the types. I really can't see I could go through with this without using pointers. I think I'm going to have to use PB after all... |
| ||
Quill3D was programmed in Blitz3D and is a superb modeller. |
| ||
Quill3D was programmed in Blitz3D and is a... uhhh, and is simply a modeller. |
| ||
Quill3D was programmed in Blitz3D and is dog slow, and it won't import large models without locking up. I paid 40 quid for it, and I only use it for lightmapping. :( |
| ||
I'd recommend using win32 for a professional GUI, but that of course is alot harder ;)>. |
| ||
John: you're right. Quill is dogslow. Bad interface design too. |
| ||
"I paid 40 quid for it, and I only use it for lightmapping. :( " but you do use it. |
| ||
I think you could write a really good modeller with Blitz. Nothing wrong with the language and it is fast enough. |
| ||
Actually I don't think it is fast enough... and I'm not about to drop $60 on PureBasic. So I'm going to do it in C++. I know C++ very well, and I'm starting to learn OpenGL. |
| ||
If you should want to change back to Blitz, you can probably adress the pointer problem using arrays, if you store type or vertex/tris handles there you can acces them almost like if you had pointers. |
| ||
You don't need windows api, what nonsense. Quill3D is the most full-featured modeller made in Blitz. Cartography shop and Gile[s] also show various modeller/manipulator functions possible. |
| ||
Indeed, there's always a work around :) |
| ||
Would it really be that hard for mark to let us use pointers? I mean... pointers are very important. If you've never used them before, it may seem like you don't need them. But after you use them once, you get addicted because they make everything so much easier. |
| ||
Have you picked up on the fact that all type handles are pointers in Blitz? |
| ||
I agree with skidracer. To me, Blitz has pointers. Thru types. I write fairly strict Object-Oriented Blitz code with Constructors, Destructors, the whole nine yards, everything is done through pointers. Runs reasonably fast, at least as far as I'm concerned. C++ is terrific, but Blitz is surprisingly versatile. I find half the fun figuring how to accomplish things in Blitz that I can do in C++. A few things I have not been able to get Blitz to do are function pointers (my #1 request) and threading. Ken |
| ||
Yeh but they're next to useless because we don't have any access to the structures Blitz points to. So if you can't use them, they may as well not be there. Except for the fact that we then couldn't load stuff and do stuff. =] |
| ||
stupid question comming up : How do you use pointers in Blitz? pascal, and c++ are easy to use, but how and what would you use the pointers for in Blitz? (told you its a stupid question) |
| ||
Blitz are a strance combination of C++ and basic, its not OO, it needs theading, and it need pointers. Blitz only use pointers to access data in the DirectX API, so the Blitz Language dont support pointers, only the commands there are build in c++ does. I will hope to see that BlitzMAX will be a completely OO programming language, including all the things as pointers and stuff. To deadmoap: If I know the blitz language right, then there is no real way to do pointers, sorry. But if you are a good C++ programmer, and its kinda sould like that, then it sould be no problem for you to create a createMesh in a dll. :-D Else there is no other way that to wait on BlitzMAX, or get native, and programming directly with the DirectX API, and that is hard. (Or use another engine). |
| ||
Or perhaps try out VividGL from Otacon when that comes out.. perhaps it will be better.. |
| ||
"But if you are a good C++ programmer, and its kinda sould like that, then it sould be no problem for you to create a createMesh in a dll. :-D" Yeah but I would still need the address of the Type in Blitz. What I need to be able to is pass a structure to a procedure and access the structure from the procedure, as if it were global. This is what pointers are for... It doesn't matter though... I'm just going to write it in C++. I can't use BASIC languages forever, so I better get good at the standard. |
| ||
Yeah but I would still need the address of the Type in Blitz. What I need to be able to is pass a structure to a procedure and access the structure from the procedure, as if it were global. This is what pointers are for... You mean something different to this, then? Type stuff Field bish% Field bash$ Field bosh# End Type my_stuff.stuff = New stuff my_stuff\bish = 1 my_stuff\bash = "noodles!" my_stuff\bosh = 1.2345 process_stuff(my_stuff) . . . Function process_stuff(this.stuff) . . . End Function If so then I'm confused and am leaving. :P *door slams* |
| ||
=OType stuff Field splish% Field splash$ Field splosh# End Type my.stuff = New stuff edit(my) Print my\splish Print my\splash Print my\splosh Delay(5000) End Function edit(thing.stuff) thing\splish=4 thing\splash="Y helo thar" thing\splosh=5.153 End Function By damn it worked!! |
| ||
@rob: Cartography shop is not made in Blitz, I believe, but with OpenGL and Win32 api. |
| ||
Cartography Shop is made with blitzplus and purebasic for the dll's I believe. |