blitzmax 3d module?

BlitzMax Forums/BlitzMax Beginners Area/blitzmax 3d module?

Cruis.In(Posted 2006) [#1]
is it still being worked on? or is it cancelled?


Gabriel(Posted 2006) [#2]
Is it Thursday again already?


Who was John Galt?(Posted 2006) [#3]
: )


Cruis.In(Posted 2006) [#4]
no its friday actually


LineOf7s(Posted 2006) [#5]
Oh come now, asking if it's cancelled is certainly new. :o)


Cruis.In(Posted 2006) [#6]
ok so it was funny... but still i havent heard anything about it.

cant wait for it, it'll make it easy to add zooming in 2d :)
stead of using opengl and translatef


H&K(Posted 2006) [#7]
SetScale?


Cruis.In(Posted 2006) [#8]
lol HK where have you been???

see http://www.blitzbasic.com/Community/posts.php?topic=63654#711382

http://www.blitzbasic.com/Community/posts.php?topic=63683#710769

http://www.blitzbasic.com/Community/posts.php?topic=49901#557068

those were my attempts at true zooming.

this was my original code archive entry
http://www.blitzbasic.com/codearcs/codearcs.php?code=1436

problem i encountered was that, when zooming in, the ships did not maintain the same distance apart from one another, they got closer together as you zoomed in and further apart as you zoomed out. which shouldn't be, you are only zooming in, nothing is moving.

in one of those threads applying the scale to the x y coords of things drawn worked, but i didnt like that x and y coords for things were adjusted, when you moved the mouse wheel.

so if after viewing those you still recommend scale for zooming, then be my guest and show me how :)


ImaginaryHuman(Posted 2006) [#9]
Scale just sets the size of a given image, nothing to do with the relationship between several images. Obviously that's something you would have to code yourself.

That said it'd be nice to have control of the viewport/projection matrix to scale the entire display regardless of coordinates.


bradford6(Posted 2006) [#10]



H&K(Posted 2006) [#11]
lol HK where have you been?
OKok, but it not a problem I have, because I draw everything sethandled (when Images) around the origin. (eg, simple example )
Graphics 800,600

sc:Float = .05
Dir = 1
SetOrigin 400,300
rot=0
Repeat
SetRotation rot
rot:+1

Cls
SetHandle 0,0
Plot 0,0
SetScale sc,sc

SetHandle 30,30
DrawRect 0,0,25,25

SetHandle 60,60
DrawRect 0,0,25,25

SetHandle -60,60
DrawRect 0,0,-25,25

SetHandle -30,30
DrawRect 0,0,-25,25


Flip

Delay 10

sc:+ (0.01*Dir)
If sc<0.05 Or sc >2.5 Then dir:*-1
Until KeyDown (Key_Space)

Basicly, all my sprites (for example) are drawn at Origin (ie DrawImage 0,0) And the actual positioning Is done with setHandle


ImaginaryHuman(Posted 2006) [#12]
Would be nice to have the 3D module in time for christmas :-)


simonh(Posted 2006) [#13]
No chance.


Amon(Posted 2006) [#14]
It's getting close though isn't it? I personally am giving it another 4-5 months, 6 months maximum, before I start spamming about Max3D.

I hope it's shaping up nicely. It would be nice to get a little christmass news about Max3D around mid December to keep us all in the know.

Imagine it! An all in one solution for 2d, 3d & GUI development all designed classic Blitz Style.

BlitzMax Core - $ 80
Max GUI - $ 30
Max3D - $ 90

Total - $200

Perfect. :)


SculptureOfSoul(Posted 2006) [#15]
I'll pay extra for a threading module and maybe an official RDBMS module.

Oh, and I'd pay even more for an updated socket module that allows overlapped IO and IO completion ports on Windows.

Guess I should start working on getting comfortable with C++ and the WinAPI.


Alessandro(Posted 2006) [#16]
Can I pay even something more to get a decent, integrated GUI builder?! ;-)


xMicky(Posted 2006) [#17]
I would pay more than even that if the 3D stuff would work together with the BMax 2D Commands so I could use my own GUI library I already wrote using the 2D commands


simesf(Posted 2006) [#18]
I would pay even more than even more than even that for full documentation plus extensive tutorials.


Cruis.In(Posted 2006) [#19]
stop using your examples on rects. rects are easy to scale and keep the distance, they have parameters supplied for controlling there width and height. images don't.


Dreamora(Posted 2006) [#20]
80-100$ would be what I would be willing to pay if the 3D mod would be OO oriented (unlike Max2D)


GfK(Posted 2006) [#21]
if the 3D mod would be OO oriented (unlike Max2D)
huh?


H&K(Posted 2006) [#22]
@Gfk, that just means that they are only using the access funtions, and havent realised what the underlineing structure is. Which is easy to do. (Which I suppose suprises me that dream said it, oh um)


Gabriel(Posted 2006) [#23]
I'm inclined to agree with Dreamora ( and I'm not sure which of us should be more surprised by that ) because while Max2D and MaxGUI are organized into types and do have methods, they're not what I would call Object Oriented. They're procedural with methods added as an afterthought. Now to be clear, that's not intended as a criticism, because I think it's the most sensible way to go. A lot of people are coming to BlitzMax not fully understanding OOP - myself included - and having the two main modules people are going to want to use Object Oriented would make it difficult for those newcomers.


H&K(Posted 2006) [#24]
Let get this straight, is all you and Dream are saying is that its not organised into the Objects that you want?

Because if it wasnt object orinatated we couldnt inheret the DX (or OpenGL), stuff from the base stuff. I think I understand what you mean tho, but surly that would mean we (As Bmax Users), would have to keep GC as an Object to call the functions.

And, (and again may be wrong), could we have more than one GC, like could I have two for two monitors, or do I still have one which is spilt across them. Because if I can only have one, What would the point of methods? If we could have two, then Ive changed my mind and I agree with Gab and Dream, if on the otherhand we can only have one, then I still agree with GFK, and stand by my statement above.


Dreamora(Posted 2006) [#25]
Object Oriented: Everything bases on Objects with methods.
This is something Max2D extremely fails.

There is no drawback with OO designed modules as well, because it is FAR easier to create a procedural wrapper for a fully OO designed module than it is to create an OO wrap over a mixed structure as Max2D is (max2d uses objects but the methos are mainly for internal use. External is procedural only).
From that point of view, Max2D is just struct based as the "documented use" of Max2D is procedural only, using Types only as container for information, not as objects.


' OO Design
Type TTest
  method sprint()
    print "Test"
  end method
end type

Function TTest_sprint(obj:TTest)
  obj.sprint()
end function



' Mix Design
Type TTest
  field dummy:int
end type

Function TTest_sprint(obj:TTest)
  obj.sprint()
end function


In the later, OO extension is very hard to do as the functionality is not OO (you need to reimplement all the functionality again instead of just overloading what you don't want to change) and sadly this is exactly the way many BM main modules work.

I'm aware that functions taking TTest will take extended as well. But functions are not encapsulated. They are somewhere and can be anywhere as long as they know of TTest in some way.


H&K(Posted 2006) [#26]
If you moved GC as a field of TMax2DGraphics (or TGraphics obviously), then all the functions could simply be moved into TGraphics.
But then when I have created my graphics object, I would have to keep track of it. Of which there is no point, unless I can have two Graphics Objects, (A point you didnt answer). Mybe you are right and it could be more oop. But it would only be a singleton, and then I would need
GC:TGraphics = Graphics (width,height,depth)
GC.SetImageFont(font)
RAther than
Graphics(width,height,depth)
SetImageFont(font)
And I would much rather use just the second one. Unless as Ive asked you can have two Graphics contexts.

I can see your point about extending all the functions of the GC, but to be honest I just write new ones anyway, in exactly the same way as you would if the function had been member functions, because Im overriding them, so it doesnt realy matter if they are there or not. (if you see what I mean), because I wouldnt be useing the nonexistant Function anyway


Cruis.In(Posted 2006) [#27]
after the hijacking of this thread :)

maybe you could plug the blitz3d module into blitzmax to be used, possible? yes no?
maybe?


kfprimm(Posted 2006) [#28]
nope, not possible, all ready been discussed.


Who was John Galt?(Posted 2006) [#29]
You could consider using miniB3D though.


gman(Posted 2006) [#30]
maybe you could plug the blitz3d module into blitzmax to be used, possible? yes no?

very much possible :) there are a few non-programming reasons why there is not a Blitz3D mod.

i would recommend MiniB3D as a good alternative. it is well-written/maintained, and suits the cross-platform nature of BMAX.


Cruis.In(Posted 2006) [#31]
minib3d...can i use its scale z .. to scale the depth of the screen?