F-UI - 3D UI Lib Demo

Community Forums/Showcase/F-UI - 3D UI Lib Demo

Odds On(Posted 2004) [#1]
CLICK HERE to download.

I'm about 80% done with this GUI lib so I thought I'd get some feedback :)

F-UI is a 100% 3D GUI, but the gadgets are rendered pixel perfect and appear exactly as they would if they were 2D. This basically means you can create applications and game-interfaces without having to worry about dodgy 2D drivers etc.

It also means that the GUI is amazingly fast, and you can treat the gadgets like any other blitz entity (transparency, alpha blending etc)

Anyway, CLICK HERE to download the compiled demo.

This demo is purely for feedback so please let me know if you have any suggestions etc, and tell me what kind of framerate you get.


Odds On(Posted 2004) [#2]
Here's a screenshot for people who won't download anything without one :)

fui_demo.jpg

All the gradients are done with vertex colors, and textures are really only used when text is involved! :)


Pepsi(Posted 2004) [#3]
Screenshot looks very nice! I like the "keep it 3D" concept of this gui. Downloading now...

Edit:

Very Nice! :)))
At 1024x768x32, I was getting around 280fps.


fredborg(Posted 2004) [#4]
Very cool! Although the demo would be nicer if the info text wasn't flashing, and the windows were opaque :)


Shambler(Posted 2004) [#5]
OO, looks very nice! 1500 fps

One problemo is that in full screen mode only, the black text and fps display are just black blocks instead of text characters.

Works fine in windows mode though.

[Edit] Whats going on! I just ran it again to take a screeny for you and now it works fine in fullscreen too O.o


Beaker(Posted 2004) [#6]
Really nice. Can you rotate the windows?

Its quite fast as well.

Can we see a snippet of source?


Odds On(Posted 2004) [#7]
Hi, thanks for the feedback :)

Fredborg, the info text is flashing to show that it's 3D basically.

Shambler, not sure what happened there... I'll keep an eye out for it. Can't believe you got such a high FPS!

MasterBeaker, yes you can rotate the windows... one of the effects I tried out was to make the windows start 100% transparent and slowly rotate and fade in to view.

Source code won't be available until it's released. What do you guys think is a reasonable price?


fredborg(Posted 2004) [#8]
How is the rendering working? Does the gui use a seperate camera?


Odds On(Posted 2004) [#9]
It uses whatever camera you want the GUI to be displayed on. In the demo there are some wireframe objects which means that the scene is being rendered twice (Forgot to mention that). The only reason I done that was to give more realistic FPS readings. Applications that don't need to render the scene twice will obviously be faster than what is shown in the demo.


Beaker(Posted 2004) [#10]
Chris - I meant example source using the UI library commands to show something simple like open a window and accept events etc.


GW(Posted 2004) [#11]
"What do you guys think is a reasonable price?"

Free! ;)


Odds On(Posted 2004) [#12]
Ah ok, sure I don't see why not :)

CLICK HERE to download the source for the demo.


Odds On(Posted 2004) [#13]
Thanks for the suggestion GW. I'll take that into consideration, hehe :)

Actually, I might make it free for personal use and only charge if you're going to use it in a product you intend to release.


GW(Posted 2004) [#14]
Nice!

FYI:
Text does not work in 16bit mode. showes up as black blocks.

If it matters i have a geforce ti_4200/128


Odds On(Posted 2004) [#15]
Thanks GW, this is the problem Shambler was having... 16 bit only allows for R, G, B values (8 bits each) so I'll have to think of something for 16 bit mode.


Ricky Smith(Posted 2004) [#16]
I really like it a lot - Blitz3dUI - cool !
Get 224 fps full screen 1024 X 768 32 bit
GeForce4 mx
Athlon 1.2


R0B0T0(Posted 2004) [#17]
Great stuff, I'm getting about 900-1000 fps at 1024*768 fullscreen here. I've used blitzUI, and this looks even more promising.


Zethrax(Posted 2004) [#18]
Will this GUI lib use separate calls for the user input checking and GUI gadget drawing routines?

The reason that I ask is that I've implemented a basic event system in a Blitz3D application that I'm working on, to keep the idle time CPU usage to a minimum.

Basically it uses a 'do_update' global variable as a flag. If any user input is detected or any other processes are performed which require that the display be updated then the 'do_update' variable is set to true. If 'do_update' is set to true then RenderWorld, 2D drawing operations, etc, are performed, and the 'do_update' variable is then set back to false. Otherwise, a Delay( 20 ) is executed in place of the update routines.

Using this method, my app shows up in Task Manager as using 0% of the CPU (under 0.5%) when idle. As I said though, the input routine needs to be separate from the graphics update routine for this event system to be implemented. It would also be very useful if the GUI's input routine returned a global flag indicating if an update was required, and if the GUI's update routine cleared this flag.


jfk EO-11110(Posted 2004) [#19]
Looks pretty good. Like those hollywood nsa apps.


Odds On(Posted 2004) [#20]
Thanks for the comments and feedback.

Axeman, there are a few global flags that contain the IDs of certain active controls. If there is an active input box then app\actInputBox will contain the handle of the active input box, otherwise it will be 0.

I also use a similar technique to save CPU time when my applications are idle so I will probably add a FUI_IsAppIdle( ) function to determine if the application can be set as idle (eg no mouse movement/clicking, no active input boxes etc)


JoeGr(Posted 2004) [#21]
Looks great Chris. I for one will happily pay for this when its finished. I'd just like to know though whether it will use similar syntax to BlitzUI (which I'm currently using) and if it will be possible to convert BlitzUI code to the new system without a lot of trouble.

My only other concern is not being able to use it in 16-bit mode. Do you think you'll be able to fix this?

Thanks,


mrtricks(Posted 2004) [#22]
I have same question as JoeGr - I love BlitzUI and would like to convert my code for this when it's finished... Looks lovely - 581fps on my system


Odds On(Posted 2004) [#23]
The syntax is very similar, but it won't be possible to convert BlitzUI code into F-UI code. I will be able to fix the 16 bit problem, but to what extent I'm not sure... I'll let you know how it goes.


IPete2(Posted 2004) [#24]
Chris,

What an inspiration, do a gui in 3d - the speed of the demo is fantastic and it looks so cool!

Great work man!

IPete2.


Odds On(Posted 2004) [#25]
Just an update...

I fixed the problem with block text in 16bit mode. It was down to the RGB format being slightly inaccurate, so all I did was check for a range each side of the RGB value (user-definable, default is 20)

The following gadgets are now supported in some form or another:
- Windows
- Menus (Unlimited sub menus)
- Tabs
- Folding Panels
- Buttons (Can be grouped to create toggle buttons)
- Check Boxes
- Combo Boxes
- Group Boxes
- Image Boxes
- Labels
- List Boxes
- Progress Bars
- Radio Buttons
- Scroll Bars (Horizontal and Vertical)
- Sliders (Horizontal and Vertical)
- Spinners (Integer or Float)
- Text Boxes
- Tree Views
- 3D Viewports

All gadgets apart from 3D Viewports can be made transparent and blended how you like.

As mentioned above there is a complete 3D line lib included in the registered version and I will also include functions for creating open/save/color dialogs etc from the Win32 API (also only available in the registered version).

I plan to release the source code sometime on Saturday 14 February. The price is still undecided but it will probably be around £20.

The source code will be available for free to try with various features excluded.


koekjesbaby(Posted 2004) [#26]
just curious, did my 3dline code help you in any way?

it looks amazing, i easyly get 1600 fps (i really didn't knew it was possible... :)

edit: oh, wait, i was wrong, that was 1024x768 in windowed mode, in 1152x864 fullscreen i get around 2200 fps. man. that's insane.


Odds On(Posted 2004) [#27]
I got the concept of creating 3D lines from someone on here (I don't think it was you, unless you changed your name), but I developed my own version because the one that was posted didn't work on all machines.

2200 fps is impressive! What's your system spec?


Beaker(Posted 2004) [#28]
Chris - if you want a forum for it on playerfactory then just let me know.


QuickSilva(Posted 2004) [#29]
Will you include an editor for making your GUI like your excellent BlitzUI one?

Jason.


Odds On(Posted 2004) [#30]
There will be an editor for F-UI, but it probably won't be ready for the release date.


Ricky Smith(Posted 2004) [#31]
Sounds like the Ultimate Gui for Blitz3d - no more 2d slowdown - When will the full version be available to purchase on Feb 14th as well ?


fredborg(Posted 2004) [#32]
How does it handle a resizeable window? (The Blitz window, not a F-UI window)


Odds On(Posted 2004) [#33]
Smiff, yea, Feb 14 is the release date for the full version.

FredBorg, I haven't tested that yet but I'll let you know when I do. It should be able to handle it fine, it's just a case of seeing how it copes in realtime.


JoeRetro(Posted 2004) [#34]
Downloaded the demo and all text is blocked or blacked out using any of the resolution settings, full screen or window.

Specs:
Dual PIII Xeon 733mhz
512MB ram
Dual TNT 2
DirectX 9.0b


sswift(Posted 2004) [#35]
I like the name. :-)


Zethrax(Posted 2004) [#36]
Looks great!

One suggestion I have though is that the toggle buttons could do with more definition in their indented state to make it easier for the user to recognize that they're indented.


Odds On(Posted 2004) [#37]
P-Q4, can you download the new demo (same location) and tell me if the text is still blocky? If it is, can you send me a screenshot?

Anyone else can feel free to download the new demo as well if they want. Bear in mind that the demo is only to test the blocky text and may be buggy.

I included f-ui.decls so you can take a peek at the current command set.


Odds On(Posted 2004) [#38]
sswift, thanks :)
Axeman, thanks for the suggestion.

I'm quite pleased with the feedback so far, there appears to be plenty of interest, and the more people that appear interested the cheaper I'll be willing to sell it for :)


Bremer(Posted 2004) [#39]
I like and use your BlitzUI and because I am moving into using b3d this looks very interesting. The demo shows great promise.


sswift(Posted 2004) [#40]
So when is Screw-UI coming out? :-)


Bot Builder(Posted 2004) [#41]
ah man.. looks nice.. I'm using blitzui for RBE (rigid-Body-Editer), and thought this would be cool because it already has grid functions. right now, my grid is a textured quad, and I know that 2d over 3d causes problems on some cards :( ohwell. Maybe a lite version or somthing for opensource? although I don't know what the difference between lite ad full would be. oh well. Looks great.


Mathieu A(Posted 2004) [#42]
It looks awesome , very fast and beautiful!! great job


Odds On(Posted 2004) [#43]
sswift, you didn't need to explain your joke ;)

bot builder, since F-UI is only source code there's no easy way to make a lite version.


sswift(Posted 2004) [#44]
"sswift, you didn't need to explain your joke ;)"

Just making sure. :-)


Sweenie(Posted 2004) [#45]
Is the demo with the FPSinfo available somewhere, because when I run the latest demo it's extremely slow.
But it's probably because of the crappy gfxcard in my workcomputer.

CPU: P4 2.5Ghz
RAM: 512 MB
GFX: Intel 82845G

Gonna test the demo at home later tonight.
Will most probably get a better result with my Geforce card.


Odds On(Posted 2004) [#46]
The current demo is using an experimental rendering method. It's rendering the window and the gadgets, then the 3d viewport (twice), then the menu which could explain the slowness. But I only have an Athlon 1800 so I don't know why it's so slow... maybe your gfx card.


Odds On(Posted 2004) [#47]
I reuploaded the demo with some changes and also added a framerate counter to the statusbar. You can turn V-Sync on/off from the View menu.


mrtricks(Posted 2004) [#48]
Just tried it - brilliant stuff! I love the way you've linked it to standard windows functions like Save dialogue and Colour picker. Can't wait for the finished version of this.

One question? In the resizable windowed version, can you sense each frame how big the window is and adjust the sizes of the gadgets accordingly, so they stay the same size regardless of the main window size?


Odds On(Posted 2004) [#49]
The resizable window version is just graphics mode 3. I wouldn't recommend it for anything to be honest. The way to make a resizable app in Blitz3D is to start in graphics mode 2 and do some stuff to the window with API. This will be included in the final release... to use it you will probably just need to do:

FUI_MakeAppResizable( )


Sweenie(Posted 2004) [#50]
Hmm, 320x240 in Windowed mode gives me 5500 FPS, 320x240 in fullscreen mode gives me 78 Fps any other mode than that gives me 2 Fps or Less.


Odds On(Posted 2004) [#51]
CLICK HERE to download the new gadget demo.

Sweenie, I just uploaded a demo that uses a more standard rendering method... can you try it out and let me know how it works? Windowed mode is what I'm most interested in, since that's what most people will be using.

Also try minimising the windows and see if that helps.

This demo contains ALL currently supported gadgets apart from menus and viewports (tree views and text boxes aren't quite functional yet), and full screen mode now has it's own mouse cursor complete with drop shadow (looks identical to the XP mouse arrow) :)


JoeGr(Posted 2004) [#52]
Chris, the gadget demo runs well here (actually *very* well in fullsceen mode) but the (F-UI) demo in your sig barely runs at all I'm afraid. I tried it on a few different computers using various modes and got <3 fps most of the time.


Odds On(Posted 2004) [#53]
Ok, I'm gonna have to find a different rendering method for the 3d viewport gadgets... thanks for the feedback everyone.

Oh btw, I have written a converter that will transform BlitzUI code into F-UI code... I didn't have to make any changes to the converted code in order to make it compile with F-UI either :) I'm not guaranteeing that will be the case for everyone though, but even if it isn't it should be close enough.


Imphenzia(Posted 2004) [#54]
Chris - I love the look of the 3D GUI and I'll buy it when it's available! I'd pay $10 for it, or is that shamelessly low?? :D

I am already a fan of BlitzUI and when I saw this 3D one I was a bit disappointed that I'd probably move away from BlitzUI - until I realized it's the same author so I can only expect improvements.

Great work!


Odds On(Posted 2004) [#55]
Thanks Imphenzia, how does $15 sound? :)

To everyone, I just uploaded a new demo (Get it from the link in my sig) which should hopefully give you a nice framerate with the 3d viewports.


poopla(Posted 2004) [#56]
Are we able to custom skin buttons and such? If this could be used to design menu systems for games I will buy it. Otherwise I have to continue coding my own.


Imphenzia(Posted 2004) [#57]
Ok, I can stretch to $15 too! A lot of work goes into this sorta stuff but at that price bugs can not be accepted! :) j/k

I found a funny behaviour just now. I ran it in full screen and the color picker, font chooser and file dialogs that I am guessing are native windows stuff get all corrupted (maybe someone has mentioned this already, too many posts to double check :D)

Oh - and will u be able to change font colors, specific window colors - and like SR said - can you skin it? Or are we talking $25 now?? =)


Bremer(Posted 2004) [#58]
The new demo works like a charm on my computer and I am looking forward to a release of this and I wouldn't mind spending $15 on this.


poopla(Posted 2004) [#59]
Ill pay 25 if I can skin stuff and make actual graphical menus and splash menus. Otherwise, like I said, no need for it.


Bot Builder(Posted 2004) [#60]
I'd pay $15 if you can tell if the mouse is on the 3d rendering, and not a menu/window/gadget/etc. And, it'd be nice to have a quickie 'editer app starter' that comes with code for the menu, along with opening files/closing files (although it doesn't actually DO anything), Recent files, Help-file integration, etc. maybe have it open up a window with a 3d viewport and a grid when you open a file. This would be very nice for RBE.

bot builder, since F-UI is only source code there's no easy way to make a lite version.


I mean like take out a bunch of gadgets and stuff, like blitzplay lite in comparisent to pro, although maybe more severe. Personally, I only need windows, 3d viewports, combo boxes, labels, buttons(as long as it has group capability, check-boxes, text boxes, and tree-views. This would make a very nice system, perhaps too nice. maybe take out combo-boxes and tree-views. so basically, take a 19 gadget(probably more aswell) system and make it a 6 gadget system with possible other detrements.


Sweenie(Posted 2004) [#61]
Ok, tried the new demos.
This time it wen't smoother. :)
Not sky high FPS with my GFX-card but it works.
640x480 Windowed, about 58 FPS
800x600 Windowed, about 40 FPS
1024x768 Windowed, about 24 FPS
With an Intel 82845G


Beaker(Posted 2004) [#62]
All very nice. Found one little thing, there is a pixel gap between menu items (in your demo at least) so you can end up selecting no menu item when you click.


Odds On(Posted 2004) [#63]
Wow, now that's what I call serious feedback :D

The GUI will be fully skinnable... to give you an idea, here's how you would skin the windows minimise button:

http://www.legacygames.co.uk/min.bmp

The following is a current list of definable colours and skin properties (all can be loaded from a skin file)

http://www.legacygames.co.uk/colours.txt
http://www.legacygames.co.uk/skin.txt


I'm not sure why the dialogs are causing a problem in full screen mode... but when you alt+tab out and then back in it goes back to normal (anyone got any ideas?)

bot builder, there will be plenty of example source code and I'll make sure I include all the things you listed (integrated recent file list is a good idea, thanks :)). You can tell if the mouse is only over a 3d viewport as well.

MasterBeaker, the gap is there because a 1 pixel spacing was specified in the skin settings (MENUDROPDOWN_SPACING) I will make it so the menu doesn't close if you click between these gaps.


Pepsi(Posted 2004) [#64]
The dialogs are part of windows gui in which will not work well amongst DirectX FullScreen mode out right. This has always been the case and documented somewhere in the DirectX SDK's bloated documentation.

With Blitz3D, we dont have lower level access to DirectX's 7 DirectDraw surfaces where we could blit the dialogs to a seperate surface ( not a mesh surface! A DirectDraw surface ) and render dialogs in a "smoother" way.

The demo also locks up on me. I think it locks up right when a dialog pops up which would make sense to me( ie: cause of the DX thing ). I run off of Win2K and have to ctrl-alt-del , go to task manager and end task the demo.

I would suggest just make your own dialogs with your much "nicer" looking gui! :)


mrtricks(Posted 2004) [#65]
I would suggest making your own dialogues too, to keep the design in an app consistent and also, it takes a while on my computer for the Windows dialogue boxes to appear - and when they do it, the Blitz program stops rendering until you go back to it. Having said that, I'd probably just make my own Save dialogues etc.

The one thing I would love to see is properly resizable application windows, not just display mode 3.

And yes, if it was all fully functional with full documentation and gave consistent performance regardless of system (and hopefully came with an editor and the gadgets were all fully skinnable!), I'd happily pay $15.


Odds On(Posted 2004) [#66]
I will include custom dialogs as well, I just prefer to use the windows dialogs in windowed mode because custom dialogs are limited to the x, y, width and height of the blitz window.


Techlord(Posted 2004) [#67]
Chris Fuller,

Just wanted to say BlitzUI is AWESOME. FUI looks as if it will be equally great.


Imphenzia(Posted 2004) [#68]
When can we expect it? I want to buy it NOW =)


Odds On(Posted 2004) [#69]
F-UI 3D is just about ready for release. I purchased a domain name on Friday and had the entire website running by this morning, now I just have to wait for the company that will be handling the payments and processing to get back to me. Unfortunately this could take a few days to sort out, but then again I thought the domain name and hosting would take a week just on it's own :)


Bot Builder(Posted 2004) [#70]
Just a tiny tip that might help you somehow - While I was working on my RBE(which uses blitzui), I found a better way of knowing that the pointer is on/off the 3d viewport. It's actually quite simple, however has one evil bug. All you do is take the current pixel value at the pointers position before drawing the gui, then after drawing it take the pixel value at the previous pointer position, and compare. if they are the same it's the 3d viewport. If they're different, it's the gui. simple enough. the problem comes up when the color on the gui exactly matches the one on the 3d viewport - but I don't care.


Ricky Smith(Posted 2004) [#71]
You can try this too - this is what I use

If  app\overWin = Null Then
      ;the mouse is not over any window
      ;so do my stuff - entity pick,move etc
End if



Bot Builder(Posted 2004) [#72]
whoah! didn't know you could do that... well, I'm still gonna use mine because if the menu extends off a window (and into a 3d viewport), it doesn't work. I'm gonna incorperate that into my routine though.


Ricky Smith(Posted 2004) [#73]
You could check the following variables to see what kind of events have taken place that frame. This should be done before updating the gui as the events are reset each frame
app\Event 
app\WindowEvent 
app\MenuEvent 
app\GadgetEvent


If app\MenuEvent=0 then no menu active.
if app\Event=0 then no events at all etc......


Litobyte(Posted 2004) [#74]
Great piece of work Chris ;)
Will be free for non commercial projects and testing ?

Cya


Odds On(Posted 2004) [#75]
The best way (IMO) is to use the following:

If app\overWin = Null and FUI_NoActiveGadgets( ) = True
;mouse is not over a window and there are no
;menus or combo boxes open.
End If

Litobyte, there will be a stripped down version for testing.

Just to update you on the progress of F-UI 3D, the payment and processing system has been set up and is almost ready for use... most major credit cards are accepted along with PayPal, purchase orders, money orders, phone orders, mail/fax orders, personal checks and cash in any currency.

There's still some testing to be done and documentation to write for F-UI 3D but you can expect a release sometime this weekend.


Litobyte(Posted 2004) [#76]
Oh, so, even the uncommericial version(talking about a non commercial use FULL version) will require paying the 11.67 Eu?


Odds On(Posted 2004) [#77]
Yes


Litobyte(Posted 2004) [#78]
Ok, cool, it sounds a fair price to me, for a such nice 3D GUI.

What's the price for the commercial instead ?
Don't tell me is an 100 ?

:P


Odds On(Posted 2004) [#79]
Hehe, the price is fixed at $15 no matter what you want to use F-UI 3D for :)


mrtricks(Posted 2004) [#80]
Have you managed to iron out the performance? There were some wildly different reports of frame rates earlier...


Odds On(Posted 2004) [#81]
The insanely varying framerates were due to the render tweening method I was using in the examples. Now that I've removed that, the framerates are sane again, hehe.


Mousey(Posted 2004) [#82]
$15 is well priced. I will be buying this for sure. Hopefully it will be available for purchase early in the weekend, so that I can enjoy two full days of testing! :)


JoeGr(Posted 2004) [#83]
That's good to hear Chris. Is there any chance we could have updated versions of the demos for testing?


Imphenzia(Posted 2004) [#84]
Mousey - I'm with you! I need it asap too :)

Chris - Will it come with a GUI designer?


Odds On(Posted 2004) [#85]
As more and more features are added to the full version the demo version will probably be updated if there are any features in particular that I want to showcase.

I'm not sure if the GUI designer will be ready for release, but there will be one :)