TrueVision3D 6.5 Module Available Now

BlitzMax Forums/BlitzMax Programming/TrueVision3D 6.5 Module Available Now

Gabriel(Posted 2006) [#1]
I've made only the changes necessary to get the new beta release working. Any new features introduced in the latest beta ( I don't think are any/many ) will have to wait until I have time to do them properly. I know people have been looking forward to this for a long time, so I'm getting it out there so you can at least begin playing and learning.

My website overhaul is not quite complete yet, so I'll put the TV3D page up here when it is. For now, here are the links you need :

Download : http://www.glimmergames.com/downloads/download.php?f=tv3dbmax.zip

Pro Registration ( $39.95 ) - This gives you priority support, full module source code and a license which permits making changes to the module source for your own purposes. : https://www.plimus.com/jsp/buynow.jsp?contractId=1660050

( Plimus now accepts PayPal, so you can pay by pretty much any method you want. )

There are no docs included, just a little readme with the license and installation instructions. You don't really need any docs, because nothing is different from TV3D in any other language. Ok, I have Create and Destroy functions for every type, but you can learn the way that works from the samples. I've included four samples which show off offset bump mapping, a cel-shader ( third party ) a metal shader ( third party ) and an animated character model with the built-in glow shader effect. These should get you started. Remember, all the code you see on the TV3D forums can be easily converted to work with this module, because the interface is almost identical. All you will have to change is the language itself, which will be very simple.

Please test the lite version and make sure you're happy with it. Rest assured, this is a VERY important module to me. I absolutely have to have it working and updated in every aspect for my own project with it, so I will be fixing anything and everything as soon as I can. Although this is being released under the Glimmer Games name, it's really a personal project, and I am the only one who will be able to fix it, improve it and offer support on it, so please be patient.

I'm going to be around for another three hours from posting, as I have some more work to do, and if anyone has any questions or problems, I will answer tonight. Then I'm going to bed because I am feeling really sick today and as soon as this pesky contract work is finished, I'm going to start working on feeling better ;o)


boomboom(Posted 2006) [#2]
How does one get ahold of the tv3d 6.5 engine?


Gabriel(Posted 2006) [#3]
The TV3D 6.5 engine is currently in beta, and only available to licensed users. A single product costs $150 from http://www.truevision3d.com/

Anyone who buys 6.2 now gets immediate access to 6.5, which as I say is still technically beta, but is faster, more stable and has less bugs than a lot of "complete" engines I've used.

It is expected that the beta will go open very soon, but I can't say any more, as I have no inside knowledge. I assume that it will be free for all at this time, for non-commercial purposes, as 6.2 is, but again I can't say for certain.


N(Posted 2006) [#4]
I figure I should mention that the wrapper works fine and I haven't noticed any differences between the original API and the BMax wrapper.

That is to say, it's just as easy to use as it always has been, but with the added benefit of being able to use BMax.


Gabriel(Posted 2006) [#5]
Great, thanks Noel. That's what I was aiming for, so I'm very pleased to hear I'm on the right track.


kenshin(Posted 2006) [#6]
Thanks Gabriel. Just bought TV3D so I could get the beta. I'll play around with it on the weekend and most likely register for the Pro version of your module early next week;)


Booticus(Posted 2006) [#7]
Thanks Gabriel. Just bought TV3D too! Cant wait to give it a whirl!


Alienforce(Posted 2006) [#8]
Wow! Great work Gabriel!!!


Nennig(Posted 2006) [#9]
Thanks Gabriel, I bought TV3D a few weeks ago and now I can use it with blitzmax! Awesome!


TroM(Posted 2006) [#10]
So, whats the advantages of using it with BMax compare to C# or .Net only?


Gabriel(Posted 2006) [#11]
Well the main advantage, for me, is that I'm much more familiar with BlitzMax than I am with C# or .Net. I also have a pretty large codebase I can call on when I'm programming in BlitzMax, whereas in C# or .Net in general I'm starting from scratch again.

Other than that, you don't need the .Net framework installed on every client machine, which stills seems to be offputting to a lot of games publishers.

Oh, and some of the classes, like Vectors and stuff are not properly implemented in C# so you have to use the Globals class to do vector maths, which feels awkward to me.

I haven't done extensive speed tests, as I wouldn't know the best way to compare, but the small tests I've done seem to indicate little or no difference in speed between C# and Blitzmax.


Uncle Ho(Posted 2006) [#12]
Woot. that is way cool. we are using tv3d 6.5 with C# for about one year now. i was hoping someone was going make a max-module for it, because i am used to blitz3d and blitz max and i also think the .net framework is pretty uncomfortable. (i could also provide some performance-testing some time between max and c#)

now i am thinking of doing an 3d-model-editor and such things to help our developers. is it possible to integrate the max-gui gadgets together with the tv3d scene, or other way round, loading the scene into the max-window? - any idea?


N(Posted 2006) [#13]
is it possible to integrate the max-gui gadgets together with the tv3d scene, or other way round, loading the scene into the max-window? - any idea?


I know it's possible to attach the renderer to any HWND you can provide and I've tried it with MaxGUI windows and canvases, so I suppose the answer is yes.


Uncle Ho(Posted 2006) [#14]
@Noel

ah, sounds promissing :D

i am experimenting with it but until now i have the problem that the window-handle is a tgadget and the handle tv3d expects is an int. do yo know how to obtain the right hwnd of the maxgui window?

are there any examples with other renderers around?


Gabriel(Posted 2006) [#15]
Try this :

QueryGadget(MyWindow,QUERY_HWND))


That should give you an HWND you can pass to TrueVision. I haven't tried it myself, as I'm writing my own GUI in TV3D, but that's how I do it with 3Impact.


Uncle Ho(Posted 2006) [#16]
hm, i tried this but still the engine-window-class is different from the TGadget.

i can use:
maxwindow=CreateWindow("My Window",40,40,320,240)
Global pWindow = QueryGadget(maxwindow,QUERY_HWND)
pEngine.Init3DWindowed(pWindow,True)


but i cannot call:
pWindow.Update() 

as those functions are not available in the TGadget of course.

am i getting it wrong?


klepto2(Posted 2006) [#17]
I think you're wrong, I don't know the wrapper nor TV6.5. but I think you have to call :

pEngine.Update()


As pWindow is just an int containing the intern address of the displaying Window and so pEngine is just referring to it.


Uncle Ho(Posted 2006) [#18]
@klepto2

pWindow.Update() is how the sample does it also.
pEngine.Update() does not work.
i think what you mean is pEngine.RenderToScreen() which is called seperately in Gabriels sample

anyway - it does not show any tv3d scene but only the max-gui window. somehow it does not integrate into the window. maybe i need some canvas or viewport to put it into? i can however call both seperately - but that does not help too much :(


Gabriel(Posted 2006) [#19]
am i getting it wrong?


Yes and no. Check the samples again. You don't pass a CTVWindow to Init3DWindowed, you pass the .hwnd property of that type. Which is just an int.

But on a broader scale, I don't think it's going to work. Well it definitely won't work without me rewriting the module, but the larger problem here is that TrueVision expects you to create and maintain your own window.

I've gone back to my module source to remind myself how I did this. I made a decision to create and maintain your window for you because most BlitzMax users won't be familiar with it. I do it seamlessly within the module so that you don't have to. That includes registering a window class, setting up the WndProc ( Window update callback ) and dealing with windows messages like terminating the application, preventing the screensaver from starting up, and throwing all other messages back into the message queue so that TV3D can have access to the ones it needs.

I can't see any way to get a MaxGUI window to let me do all that without tanking the whole lot. I don't have much experience with MaxGUI, and frankly it didn't occur to me that people would want to integrate the two.

Try this and tell me where it gets you. It might give some ideas of a better way of handling this. Create a MaxGUI window, forget all about the CTVWindow stuff. Don't create one, and don't try to update it. Instead, pass the integer handle ( returned as I showed you earlier ) to Init3DWindowed() and make sure to use PeekEvent() or whatever it is in MaxGUI that updates everything.

Let me know what the next hurdle is, and ideally give me a functioning program and I'll see if I can find an elegant way of handling it.


kenshin(Posted 2006) [#20]
This works for me:
EDIT - Updated it a bit. Now shows the 3D scene with a MaxGUI button and the window close gadget works. Looks like it's not going to be a problem Gabriel. Hope this helps.


One last thing. If you don't want the watermark logo spoiling your image, use this code:
' Set Beta Key
pEngine.SetBetaKey ( ForumName$ , TV3D65BetaKey$ )
pEngine.SetLicenseKey ( 2 , ProjectName$ , TV3D62Key$ )

SetBetaKey gets rid of the 'Beta License Verification Failed' error.
SetLicenseKey gets rid of the watermark.


Red Ocktober(Posted 2006) [#21]
toooooo much code to just display a lil teapot...

--Mike


Gabriel(Posted 2006) [#22]
This works for me:
EDIT - Updated it a bit. Now shows the 3D scene with a MaxGUI button and the window close gadget works. Looks like it's not going to be a problem Gabriel. Hope this helps.


Thanks Kenshin, that's pretty much what I had in mind, but I was sceptical that it would work completely. I really don't know much about how Blitz handles windows internally, and I was concerned that there might be issues with letting MaxGUI handle the window, but if not, then that's great.

toooooo much code to just display a lil teapot...


That's most probably because it's doing a lot more than just displaying a lil teapot.

It's example code, and it's demonstrating a bunch of useful features you'll probably want like creating a window, showing FPS, making the viewport automatically resize when the window does. It's also loading a custom ( completely unrelated to TV3D ) HLSL shader, applying custom parameters ( in this case, defining the position of the light source for the shader ) and then applying that to the teapot. It's also allowing the use of MaxGUI gadgets, thanks to Kenshin, and several things which need not be done at all ( such as position and scale ) are done simply to show how to do them while rotation is split into three parts for the same reason.


kenshin(Posted 2006) [#23]
@Gabriel : I was interested in this too. It will open a lot of options. In-game gui's, hud's, editors and so on. I'm totally blown away by your effort and TV3D. The whole package is stunning.

@Red : A much more condensed version of the above. I didn't have time to clean it up before. You too can have shiny black subs;)



Red Ocktober(Posted 2006) [#24]
that's not what i mean Gabe... this is BMax, right... so why not encapsulate a lot of those functions and some of that TV3D initialization code into a proper Game Object (Type)...

and those functions hanging around at the bottom... they should be Engine Methods...

... make it a lil less code intensive for the end developer... (of course this probably means a lot more code intensity for the engine builder :) )

--Mike


Alienforce(Posted 2006) [#25]
Thats up to the enduser :)


kenshin(Posted 2006) [#26]
I don't know if you've seen the second version of the example Red. I don't think it is code intensive, just more flexible. It's only meant to demo MaxGUI integration, not be a complete framework.


Booticus(Posted 2006) [#27]
@Red: My guess is that's probably because it's specific to the game and not the engine

@Gabriel: Again, the module is really nifty. Its amazing the work you put into this!


Red Ocktober(Posted 2006) [#28]
maybe it's just my OOPish way of looking at things, but i might consider doing something that'll change this...

Global pEngine:CTVEngine=CTVEngine.Create()
Global pScene:CTVScene
Global Teapot:CTVMesh

inot this...

Global pEngine=new(CTVEngine) 

or
Global pEngine=CTVEngine.Create("Title,1024,768,16,Windowed)


(forgive the syntax as i'm not bmax qualified as of yet)

and would automatically create all the other stuff as propertys and methods of the engine...

--Mike


Gabriel(Posted 2006) [#29]
that's not what i mean Gabe... this is BMax, right... so why not encapsulate a lot of those functions and some of that TV3D initialization code into a proper Game Object (Type)...



Because then it wouldn't be TrueVision any more. It would entirely defeat the purpose of writing a wrapper for an engine if I then imposed my own vision on top of it. The entire purpose of creating a wrapper is that it should be completely invisible to the end user. It would make the wrapper worthless if people who are familiar with TV3D no longer had a clue how to use it. They should be able to use it in BlitzMax exactly as they do in any other language, give or take any small things like the CTVWindow class to automate some things that BlitzMax users may not know how to do.

and those functions hanging around at the bottom... they should be Engine Methods...


Actually, if you want to get technical, they should be static functions, as you should never need to "instance" your game class. But again, this is sample code. It's supposed to be simple to read and learn from. Tying people up with some ridiculous game framework for a 30 line demo would just be making it harder for them to learn, and thus making it a bad piece of sample code.

... make it a lil less code intensive for the end developer... (of course this probably means a lot more code intensity for the engine builder :) )

Perhaps you're not aware, but I'm not the engine builder, so that wouldn't have any effect on me. My job, as the author of a wrapper, is to make my wrapper invisible, painstakingly recreate the structure of the underlying engine and quite definitely NOT to impose my own engine design on top of it.

Remember, TV3D is not free. People actually had to pay for this. I have to assume that they - by and large - bought it because they liked how it works. To superimpose my view of engine design on top of that would be wholly wrong and make the wrapper a fairly worthless item IMO. There are already a few minor differences because of features BlitzMax doesn't have, and I would like to even rectify those if I could.


Red Ocktober(Posted 2006) [#30]
i think that your idea of a game engine might also prove to be quite right... if you did take it to that level... plus, add to it the fact that you are approaching this from a Blitz centric perspective, which is where the audience here will be viewing this from...

... maybe they might like your imposing your vision on top of TV3D, after all, GMan did a Blitzized version of his Irrlicht wrapper, and that was received quite well.

ahhhh, just a thought... i've licensed TV3D, and have been playing around with it in C++, VB, and VB.NET... and i've encapsulated a few of the intricacies and mundane stuff involved in getting a game up and running, and have substituted an event handling system to replace that Repeat Until loop you're using as the heart of the code...


--Mike


N(Posted 2006) [#31]
maybe they might like your imposing your vision on top of TV3D.

As a licensee of the Truevision 3D engine, I wouldn't like to see the API I am familiar with replaced with another person's idea of how it should work. The existing API is how Truevision is meant to be used, replacing it with anything else is a bad idea that would make others unhappy.


Red Ocktober(Posted 2006) [#32]
one young man's opinion noted... and it is not surprising that you see it this way, as your idea on OOP development, as expressed in a previous thread, was so... how shall i put it... procedural...

i'm also a tv3d licensee, and i'd like to see it streamlined a lot... another man's opinion...

so there ya have it... 2 opinions... to different views...

but hey, lets not get the thread off on a side track... Gabe has done some really nice stuff here... i was merely making a suggestion...

--Mike


Gabriel(Posted 2006) [#33]
... maybe they might like your imposing your vision on top of TV3D, after all, GMan did a Blitzized version of his Irrlicht wrapper, and that was received quite well.


This is true, but there are a couple of important differences.

1) Irrlicht is free.
2) GMan only did the wrapper you refer to as a second wrapper, after the initial wrapper - done true to Irrlicht - was completed.


Red Ocktober(Posted 2006) [#34]
Irrlicht is free.

nothing is free...

Irrlicht just doesn't cost you any money... the time you spend implementing a lot of the stuff that TV3D has already done, when compared to Irrlciht, has gotta be worth something... how much... well, i guess it depends on how much your time is worth to you... and how much you think the relevance that the $150 licensing fee for TV is when compared using that as a yardstick...

if you wanna look at it that way... hey, lets license tv3d for the 150, get vb.NET express for free... and save the cost of BMax, plus the additional cost of Gabe's wrapper althogether...

you see the falacy of this sort of penny, nickel, dime approach... productivity wise, it just might not add up...

but like i said a few lines ago... this is just a suggestion... the work you've done already is pretty neat, as it opens up the 'max world to another 3D tool...

--Mike


kenshin(Posted 2006) [#35]
IMHO it should stay as close to the original TV3D as possible. That way it means that the TV3D manual and forums remain valid. Also, Gabriel is then not tied to keeping a second manual specific to BMax up to date. Bundling things up into 1 line wonders is just going to limit the end users options and make future versions more difficult for Gabriel to maintain. I don't know how everyone else does it, but personally I prefer to build my own framework specific to the project I'm working on. That way:
- It's my framework with my syntax which I'm going to be more comfortable using.
- If the need arises I can modify my framework to reveal more or less of the underlying engine features/details.
- I'm in a better position to understand the engine that my framework is based around.


Red Ocktober(Posted 2006) [#36]
that's a good point K...

btw, which tv3D manual are you referring to?

--Mike


kenshin(Posted 2006) [#37]
The .chm one which comes with the TV3D 6.2 SDK. I'm assuming that the full release of 6.5 will contain a more up to date manual. Most of the 6.2 manual applies to 6.5 anyway. Everything else specific to 6.5 can be found on the forum in the meantime.

I can see how a framework can benefit a lot of people, but it needs to be optional. I still would write my own though, mainly 'cause of the reasons I gave:)


N(Posted 2006) [#38]
Everything else specific to 6.5 can be found on the forum in the meantime.

Or just by looking at the methods since everything is pretty self explanatory.


Red Ocktober(Posted 2006) [#39]
oh... so there isn't a manual for 6.5 out just yet... for a second there i thought i missed something...

Everything else specific to 6.5 can be found on the forum in the meantime.
hhhhmmmm... ok, if you say so :) ya know i spend a bit of time on the forums there :)

Or just by looking at the methods since everything is pretty self explanatory.

i also have an object browser... and whie a lot is apparent, everything is not self explanatory at all...

getting back to something you said above K...

Bundling things up into 1 line wonders is just going to limit the end users options and make future versions more difficult for Gabriel to maintain.

nonsense... if the wrap is simply encapsulating a TV3D class, then the underlying api will still be accessible to anyone who wants to use it... go ahead and make a totally unnatural class from one of the tv3d classes and see if you can't still access the public methods and properties...

the convenience would only be there for those who wanted it... and would free them from having to repeatedly code the mundane repetitive stuff... while facilitating those who have no desire to dig deep into the api...

but hey... now there's 2 opinions against my 1... so, i guess according to the numbers, i'd have to say that Gabe is going about it the right way... huh...

--Mike


N(Posted 2006) [#40]
i also have an object browser... and whie a lot is apparent, everything is not self explanatory at all...

That's a problem on your part since I can understand it just fine.


Red Ocktober(Posted 2006) [#41]
That's a problem on your part since I can understand it just fine.

just like you understood that OOP thingee... right :P

be it my problem or not... not everything is self explanatory...


--Mike


kenshin(Posted 2006) [#42]
hhhhmmmm... ok, if you say so :) ya know i spend a bit of time on the forums there :)

It's still beta remember. There's maybe a few things requiring more work.

make a totally unnatural class from one of the tv3d classes

Definition of natural? Someone else's framework? Making my own framework has worked well for me in the past. I don't see it limiting me in any way which I'm concerned with.


Red Ocktober(Posted 2006) [#43]
It's still beta remember.

do i remember... i remember from almost 2 years ago... and, actually, it's not quite a beta yet, if you go by the accepted definition of beta...

There's maybe a few things requiring more work perhaps.

ya think...

Definition of natural? Someone else's framework? Making my own framework has worked well for me in the past. I don't see it limiting me in any way which I'm concerned with.


well then, by all means, ya gotta go with what works best for you... right...

if you want a one to one wrapper for the api, then, i must admit, Gabe is on the right track...

--Mike


kenshin(Posted 2006) [#44]
If it's any consolation, I had to write my own framework. Now I get the fun task of changing it from Coldsteel to TV3D;)

This is definitely the last time I'm changing 3D engines:P


Red Ocktober(Posted 2006) [#45]
This is definitely the last time I'm changing 3D engines:)



famous last words... i use them often myself...

:)

--Mike


kenshin(Posted 2006) [#46]
No..honest. Well, until the next (c)BIG THING(tm).

:)


Alienforce(Posted 2006) [#47]
Gabriel: Just got my Pro version... Its worth every $$!!
Keep up the good work!


Uncle Ho(Posted 2006) [#48]
thx a lot kenshin!

this works. i was very close to get this to work but didn't all right at the same time ;)


Gabriel(Posted 2006) [#49]
Thanks Alienforce. Much appreciated.


AdrianT(Posted 2006) [#50]
heh, well thats one thing Aurora hasn't gotten into his engine... The ability to intergrate bmax rendered output into the rendered display.

Thats a real useful feature I'm pretty eager to get into one of these next gen engines for an upcoming project.


Uncle Ho(Posted 2006) [#51]
Hi Gabriel,

Wow, the wrapper is really cool. also the gui integration works good.

yet another question:
i have been experimenting with the module and tv3d and it works quite well. i am still new to tv3d 6.5 and i often suffer from having to find out how the new functions are called.
i think "IsCollision()" does work in 6.5 but in max it gives me an error. "Compile Error: Identifier 'IsCollision' not found" did you integrate it yet?

pInput.GetAbsMouseState(gMouseX, gMouseY, gMouseB1, gMouseB2, gMouseB3, gMouseB4, gMouseRoll)
If gMouseB3
	Pick = pScene.MousePick(gMouseX, gMouseY)
	If Pick.IsCollision()
            SetGadgetText textfield_r4, Pick.GetCollisionImpact() 
	EndIf
EndIf



Uncle Ho(Posted 2006) [#52]
one more:

Extern "Win32"
      Function SetWindowLong:Int(hWnd:Int, nIndex:Int, dwNewLong:Int)="SetWindowLongA@12"
      Function SetLayeredWindowAttributes(hWnd:Int, temp:Int, alpha:Int, buh:Int)="SetLayeredWindowAttributes@16"
      Function GetWindowLong:Int(hWnd:Int, nIndex:Int)="GetWindowLongA@8"
End Extern
   
Local hwnd:Int
Local Style:Int
   
hwnd:Int = QueryGadget(window, QUERY_HWND)
   
Style = GetWindowLongA(hwnd, GWL_EXSTYLE)
this code gives me an error at the last line:
Compile Error: Duplicate identifier 'GetWindowLongA' in modules 'pub.win32' and 'glimmer.tv3d65lite'

what can i do to call those functions when using 'glimmer.tv3d65lite'

sorry for all these questions, but i am really beginning to like it.
Time to get the pro regsitration support :D


kenshin(Posted 2006) [#53]
what can i do to call those functions when using 'glimmer.tv3d65lite'

I think you need to use this instead:
Style = GetWindowLong(hwnd, GWL_EXSTYLE)

I'm not sure about the .IsCollision() problem though. I'm fairly certain it should work under 6.5, but Gabriel probably knows more about this.

I'll register tomorrow as I'm enjoying learning this module too.


Ferret(Posted 2006) [#54]
Where can i find "libtv3dc65.a".
The readme says "Copy "libtv3dc65.a" into your "BlitzMax\lib" folder.", but i can't find it.

I installed the mod and the tv3d sdk, and put the dll in mi project dir, but when i compile i het this error, C:/Program Files/BlitzMax/bin/ld.exe: cannot find -ltv3dc65
Build Error: Failed to link F:/BMax/tv3dbmax/Lite/Samples/AnimatedCharacterWithGlow.exe

Thx


kenshin(Posted 2006) [#55]
You need to download the 'C++ Mingw/GCC DLL Pack' from the TV3D6.5 Beta page. You'll find 'libtv3dc65.a' in there.


Uncle Ho(Posted 2006) [#56]
@Ferret

you need to dowload the latest version of the TV3D 6.5 SDK.
download the one for GCC. in the folder "TV3D_65_GCC" you will find the "libtv3dc65.a" file :D

@kenshin

you are right, thx. i did not name them the same. that was the problem. i did it the other way round and it works:
Function SetWindowLongA:Int(hWnd:Int, nIndex:Int, dwNewLong:Int)="SetWindowLongA@12"



Sean Doherty(Posted 2006) [#57]
Gabriel,

I curse you for doing doing this!:) I used the TrueVision3D 6.5 beta for a long time before I decided to write a game in 2D. Now everyday I have to log on and be tempted by this library.

Thanks and Curse You:)


kenshin(Posted 2006) [#58]
@Uncle Ho : Try this. I'm not sure whether it will work tho.
pInput.GetAbsMouseState(gMouseX, gMouseY, gMouseB1, gMouseB2, gMouseB3, gMouseB4, gMouseRoll)
If gMouseB3
	Local Pick:CTV_CollisionRESULT = PScene.MousePick(gMouseX, gMouseY)
	If Pick.bHasCollided
		SetGadgetText textfield_r4 , Pick.iMeshID 
	EndIf
EndIf

I think we need to go through the 6.2 tutorials and convert them to work in 6.5.


Gabriel(Posted 2006) [#59]
There was a problem with cTVScene.MousePick, namely that it was returning a cTV_CollisionResult Struct when it should have been returning a CTVCollisionResult Class ( The TV guys really should sort out there messed up naming conventions ) which I have now fixed, I think. I don't have any complete code to test with, but it looks right to me.

Registered users should already have received an email with the URL to download the fixed version ( complete with fixed source ) and everyone else can now download from the URL in the first post to get the fixed "Lite" version.


Uncle Ho(Posted 2006) [#60]
@Gabriel: brilliant! thx! picking works now. at least as much as i could do with it (which is not much) :(

@kenshin: seems you are right :( the whole pick seems to work different now. your code did not work as well. "hascollided" or "meshID" is not available :(

by the way it is "cTVCollisionRESULT" now.

i tried this but it crashes at "test:cTV_3DVECTOR ":
Local Pick:CTVCollisionRESULT = pScene.MousePick(gMouseX, gMouseY, 1)
If Pick.IsCollision() 
  Local test:cTV_3DVECTOR = Pick.GetCollisionImpact()
  SetGadgetText textfield_r4 , String(test.X)
EndIf



kenshin(Posted 2006) [#61]
Just registered the Pro version. Thankyou Gabriel. The new website is nice.

@Uncle Ho: Glad to see you got it sorted out.

Starting tomorrow I'm going to begin adapting the 28 Tutorials supplied with 6.2 to work under 6.5. I think this will be a good expansion to the existing samples that Gabriel has supplied. It's also likely to turn up any further bugs in the wrapper. Anyway, I'll start posting the modified tutorials on the Glimmer Games forum tomorrow.


Gabriel(Posted 2006) [#62]
Great! Thanks for the support, and the tutorials sound great.

I wish I could get rid of the old site, and transition properly to the new one, but I'm still waiting for confirmation that everyone is happy with it before I do that.

In case anyone isn't aware though, the forum is at :

http://www.glimmergames.com/forum/index.php


Gabriel(Posted 2006) [#63]
New version up today with a few more bug fixes. Since the initial release, bugs with Atmosphere, Terrains, plains and now the water shader have been fixed.

Get the updated lite version from the download page above, and if you've registered for a Pro license, you should have just received your download link in email. If not, contact me.


Duckstab[o](Posted 2006) [#64]
Just Registered for Pro version great wrapper for an awsome engine well done..


Nikko(Posted 2006) [#65]
Could you release an .exe demo so we could see if the 6.5 version of the engine is worth paying the 150 USD to get the beta? I'm interested in the Landscape (water etc...)


Gabriel(Posted 2006) [#66]
No, beta users are not permitted to release EXE's until the closed beta becomes an open beta. There are videos on the TV3D site, perhaps those can give you an idea of the quality of the engine.


Nikko(Posted 2006) [#67]
Just registered to Truevision. Downloaded the beta package.
First impression : no samples?!!
How these pictures and video were made?

Well I've downloaded your lite version of the library in the hope to see something running...

First, the Import glimmer.tv3d65Lite does an error because the libraries in the archive are not here. I rename to Import glimmer.tv3d65 and now I've this error.


C:/Program Files/BlitzMax/bin/ld.exe: cannot find -ltv3dc65

Any idea why it doesn't work?


Dreamora(Posted 2006) [#68]
You forgot to copy the tv3dc65.lib over to blitzmax/lib folder most likely


Nikko(Posted 2006) [#69]
Right it works!

Hum, not very impressed by the result. Worse than the basic shaders demo from the Microsoft SDK. Far from what Torque can rander in 10 lines of code!


Dreamora(Posted 2006) [#70]
But cheaper than Torque + TSE can do it unless you want to start releasing stuff


Gabriel(Posted 2006) [#71]
First impression : no samples?!!

There are samples on the forums. Check the beta discussion forum for lots of interesting samples. Most people seem to start with the Meadow demo.

Right it works!

Hum, not very impressed by the result. Worse than the basic shaders demo from the Microsoft SDK. Far from what Torque can rander in 10 lines of code!

What result? You've only had a few hours, so I'd be surprised if you *had* coded anything with impressive results that quickly.

If you mean the samples I bundled with the module, of course they're not impressive. They're the simplest demos I could come up with to show how to use the engine. Not to mention that I had about a week of experience with the engine when I wrote them. I'm trying to help people use the engine, I'm not being paid to market Truevision.


Nikko(Posted 2006) [#72]
So far there are some issue with almost all the 3d engines. I've spent some time to test a lot (and I've registered a bunch!)

TV3d : the beta is hard to use because of the lack of information (need to browse the forums). The video are great, but the examples are ridiculous. The water is very very far from AAA games released 2 years ago (Farcry?) Also it is not stable, the terrain need to be re-written to be more shader friendly. Also it is more adapted to VB6, or .NET, most of the samples are written in these languages. AS of today, you cant release anything made with the BETA, and there is no final release date...Maybe in 6 months?

Torque : the shader version is going close to the final but there is still no shadows (stencil). Also Torque is made to run with the Torque script that is not fast. So if you want to do something a little bit more complicated you need to change the basic source code that is +500 000 line of code. Programming Torque is a little bit like modding HL2, but the HL2 engine is much better and free. The new terrain with Torque is mindblowing, well I can't say more because of the BETA status, but wow!

3Impact : it is easy to use, and well supported by Bmax. but there is no terrain (well octree, or adaptative terrain for doing huge spaces), no water and you can't create your own shaders!!! Frustrating...

Irrlicht : nice engine, maybe the best when the new wrapper version (1.1) will be upgraded. This engine seems to be the most complete so far, it supports a lot of formats, has a great terrain engine, supports all shaders, use global shadows ...

Renderware : a little bit old, the tools are awful and is more designed to be used from C++ (the v 6)...

Orgre : to complicated so it is almost impossible to maintain a wrapper. Use too much callbacks, made to be used from C++.


The rest is too expensive, or too messy or just not reliable...

Maybe the best solution is to code an engine with MAX in basic, so everyone will be able to change and upgrade it... It is probably what Mark is doing right now...


Dreamora(Posted 2006) [#73]
There are some missing in the equation:

SoW: OGRE based for rendering, great thing to start. Sadly I haven't had much time lately to get into it.

Yake: OGRE based and much easier to use. No Wrapper so far but out of my side, definitely the better idea than wrapping OGRE ^^

Then there is the open source one that was originally sold, created by Ant. Basing on OGRE for rendering as well. Can't remember its name thought.

How about Crystal Space or Nebula 2, just to mention those as well. But both aren't wrapped.


Nikko(Posted 2006) [#74]
?


ICECAP(Posted 2007) [#75]
Sorry to drag this thread back up again, but i just cant get it running. BMax keeps coming up with the message "Can't find interface for module 'glimmer.tv3d65lite'"

I put all the files in the right places, and its driving me crazy coz it just doesnt want to work.


Gabriel(Posted 2007) [#76]
The module is no longer name tv3d65lite, you need to use

Import glimmer.tv3d65


Whether you're using the lite or pro version. Sorry about that, but I felt it was necessary to make the chance so that any posted code worked with either version without change. It also makes it a little easier for me to update both versions together.


PaulM(Posted 2007) [#77]
Just bumping this. TV3D has gone into open beta (finally). According to the website it supports BlitzMax, but there isn't an included module, so I suppose it means it *can* be used with BlitzMax :)


Gabriel(Posted 2007) [#78]
http://www.blitzbasic.com/Community/posts.php?topic=72227

When I've got the remaining problem ironed out, I'll be uploading the module.


CodeGit(Posted 2007) [#79]
Guys, just be aware that TV3D 6.5 has some very restrictive licensing laws and the developers are not very flexible when it comes to changing them. From what I can understand you will have to display a watermark and it will only dissapear when you formally release a product. Unless you spend $500 to get a multi release version. I hate this type of restriction and nearly wasted $150. Be warned. :)
http://www.truevision3d.com/forums/tv3d_sdk_65/single_license_questions-t16179.20.html


Dreamora(Posted 2007) [#80]
Its a quite regular handling on profesional non kiddie engines actually.

Single product licenses for example or watermarking in the free version to spread the word about the used technology. (check out torque. unless you get the commercial license, you have to show their image for at least 4 seconds on the startup)


AJirenius(Posted 2007) [#81]
CodeGit: I don't really understand your concerns about this. On your devkit you won't see the watermark as I understand, only on machines with no license on it (demo's, beta's not considered final release).
If that helps protecting TV3D I reálly don't see this as a major factor for not buying it (as you did). I don't know if you have read further in that thread you are posting but I actually think it sounds like a pretty good deal anyway.

I am one of those working specifically on one title at a time and can probably count in those license fees as every released title starts bringing in a few bucks.


Filax(Posted 2007) [#82]
Hi

I have try to test MAXGUI + Wrapper but events seem not work
or i'm wrong ?




Gabriel(Posted 2007) [#83]
Hi Filax,

That code doesn't work for me either, so it's not you. At the same time, it shouldn't be a problem as I have TV running on a MaxGUI canvas inside a very complicated GUI app. I get all my events just fine. I've looked through the code and nothing really stands out as wrong.

You could try commenting out the call to SetAutoResize(true) as this is clearly asking TV to interfere with windows messages. Other than that, I don't really see any major differences between this code and the way I do it.

I'll keep fiddling, but perhaps someone else who uses TV can help too.


Filax(Posted 2007) [#84]
Argh !! :) Bad for me :) If anybody get a solution
i'll buy a licence for sure ! Because i want to dev my
hown tools... But i need a GUI :)


Uncle(Posted 2007) [#85]
If you comment out the PollEvents() function it seems to work. Not sure why, but this might be worth looking into?


Filax(Posted 2007) [#86]
Ah cool ! :) yes it work correctly ! great job :)
now i'll try to use differents gadgets to be sure...


Filax(Posted 2007) [#87]
Another test ,work correctly :)

Gabriel : I get problem to get my registration from your
forum ? Impossible to receive the email ? any idea ? :)




lo-tekk(Posted 2007) [#88]
Gabriel : I get problem to get my registration from your forum ? Impossible to receive the email ? any idea ? :)

Same here ! No activation mail. The support form also doesn't send a mail.


Gabriel(Posted 2007) [#89]
I've fiddled with the forum until I'm blue in the face, but I can't find anything wrong with it or figure out how to fix it. I'll manually approve you now ( assuming you've used a similar username and if anyone else has the same problem please let me know. )

I'm thinking on copying the useful stuff onto a new forum and ditching the old one. It clearly doesn't work properly and it causes the main site to slow down, believe it or not.


Filax(Posted 2007) [#90]
Hi Gabriel :)

I just purchase a licence of the wrapper :) can't wait :)

Just a question about licence key ? I have try the commands
like SetLicenseKey and SetBetakey but the command seem not
work, any idea ?

Regards


Gabriel(Posted 2007) [#91]
Hi Filax,

Thanks, I've received the notification. Neither SetLicenseKey or SetBetaKey are needed any more. SetLicenseKey has been replaced by a new registration system, and it's no longer in Beta, so you don't need a beta key.

EDIT: The email address you used to email me is bouncing my emails. I'm trying the one in your profile instead.


Filax(Posted 2007) [#92]
It work like a charm :) many thanks gabriel :) i'm going to
play with it :)