3D modeler and limitations of Blitz3D

Blitz3D Forums/Blitz3D Programming/3D modeler and limitations of Blitz3D

Gun Ecstasy(Posted 2004) [#1]
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.


JoshK(Posted 2004) [#2]
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.


Gun Ecstasy(Posted 2004) [#3]
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...


CyberHeater(Posted 2004) [#4]
Quill3D was programmed in Blitz3D and is a superb modeller.


JaviCervera(Posted 2004) [#5]
Quill3D was programmed in Blitz3D and is a... uhhh, and is simply a modeller.


John Blackledge(Posted 2004) [#6]
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. :(


poopla(Posted 2004) [#7]
I'd recommend using win32 for a professional GUI, but that of course is alot harder ;)>.


Jeroen(Posted 2004) [#8]
John: you're right. Quill is dogslow. Bad interface design too.


RiverRatt(Posted 2004) [#9]
"I paid 40 quid for it, and I only use it for lightmapping. :( "
but you do use it.


CyberHeater(Posted 2004) [#10]
I think you could write a really good modeller with Blitz.
Nothing wrong with the language and it is fast enough.


Gun Ecstasy(Posted 2004) [#11]
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.


eBusiness(Posted 2004) [#12]
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.


Rob(Posted 2004) [#13]
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.


Ross C(Posted 2004) [#14]
Indeed, there's always a work around :)


Gun Ecstasy(Posted 2004) [#15]
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.


skidracer(Posted 2004) [#16]
Have you picked up on the fact that all type handles are pointers in Blitz?


Tiggertooth(Posted 2004) [#17]
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


Hotcakes(Posted 2004) [#18]
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. =]


Neochrome(Posted 2004) [#19]
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)


Deldy(Posted 2004) [#20]
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).


ashmantle(Posted 2004) [#21]
Or perhaps try out VividGL from Otacon when that comes out.. perhaps it will be better..


Gun Ecstasy(Posted 2004) [#22]
"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.


big10p(Posted 2004) [#23]

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*


Gun Ecstasy(Posted 2004) [#24]
=O

Type 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!!


Jeroen(Posted 2004) [#25]
@rob:
Cartography shop is not made in Blitz, I believe, but with OpenGL and Win32 api.


Moses(Posted 2004) [#26]
Cartography Shop is made with blitzplus and purebasic for the dll's I believe.