Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Lightning Lights V1.20 - it's back, and it's been improved...

Author
Message
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 16th Mar 2008 13:58 Edited at: 27th Apr 2008 15:43
***********Latest News***********
Last Complete build:
[href]mythrada.distantstar.org.uk/lightning_lights_v1.20.zip[/href]

Please see latest post for info about demos with a few more features.
*******************************


Late last year I released Lightning Lights V1.0, a program designed to create visual effects with a minimum of effort. However, it had a poorly designed GUI, was almost totally keyboard driven and was incredibly limited (only 10 objects could be loaded! I must have been out of my mind ) So, over the last three or four months I've been redesigning Lightning Lights and virtually building it up again from scratch.

Improvements include:
A comfortable, Windows-style user interface
Support for 5000 items (objects or matrices)
Integerated Context Sensitive help (Just press F1!)
A smoother, higher frame rate file browser
Spotlights now have accurate representation on the "Cones and Spheres of Light" feature (i.e. the cones used to represent the spotlight actually line up with the spotlight, instead of pointing off in some other direction.)
It's going to be Free (Now that's a definite improvement!)

So, here's a comprehensive list of what Lightning Lights 1.20 can do:
= Completed, = in progress

Create Point- Spot- and Directional- Lights
Position Point- and Spot- Lights
Set Point- and Spot- Light Ranges
Rotate Spotlights
Set Spotlight Angles
Rotate Directional Lights
Point Directional Lights
Colour Lights
Select Multiple Lights
Colour Backdrop
Set Percentage Global Ambient Light (Redundant?)
Colour Global Ambient Light
Set Fog Range
Colour Fog

Load .X, .3ds and .mwdb objects/levels (I'm just starting work on MatEdit files)
Position, Rotate and Scale Objects
Ghost Objects
Set Object Properties
Set Object Ambient
Set Object Diffuse
Set Object Emissive
Set Object Specular

Export Source code for DB Classic or DBPRo!!!!!
Choose to export source code for:
Lighting effects
Load Objects
Set Object properties (Including DBC V1.20 object lighting commands)
Save native .Lit projects
Open native .Lit projects

Here's a screenshot, and a few links to some others. This is what Lightning Lights can do in about 60 seconds!

[href][/href]

[href]mythrada.distantstar.org.uk/Sunrise02.png[/href]
[href]mythrada.distantstar.org.uk/Night.png[/href]
[href]mythrada.distantstar.org.uk/BattleDawn.png[/href]

Unzip all 3 files included in the demo to the same directory - without them, the program will lock! To find out about a particular button, just hover the mouse over it and press F1 to access the Context Sensitive Help. When you've finished reading, just press F1 or click the "X" on the window that has appeared. That will return you to the main program.

IMPORTANT
There are still a few bugs in the system:
It's not mentioned in the help files, but when keying in floats you should only go to 6 significant figures. DBC floats can't be more accurate than that.

Textboxes differ from Windows standard textboxes very slightly - you have to press Return/Enter to confirm the value you have typed. Clicking anywhere with the mouse will revert to the stored value. I'm not too happy about this, but I don't know whether to change it or not.

So, there it is. DBC 1.13 users needn't worry about this being useless for their projects - once this version gets the OK, I'll build another version with DBC 1.13, exactly the same just minus the V1.20 object commands.

I've also been considering getting DarkGDK for a while now - if there's enough interest, I may port the code over from DBC to DGDK to give support to .DBO object files. I may be mistaken (so please correct me if I'm wrong) but I think DGDK is practically the same as DBPro (except that it's in C++), so Lightning Lights coded in DGDK might be better for those who use DBPro.

Let me know what you think of this, I can't wait to hear from you!

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 21st Mar 2008 02:20
Downloaded it and got a run time error 10 right after the loading screen.

Enjoy your day.
FredP
Retired Moderator
18
Years of Service
User Offline
Joined: 27th Feb 2006
Location: Indiana
Posted: 21st Mar 2008 02:27
Same here.

RIP Floating Skull unknown-2007 we will miss you in FPSC x10
AaronG
18
Years of Service
User Offline
Joined: 28th Oct 2006
Location: Millstone, NJ
Posted: 21st Mar 2008 05:36
You're missing a dll or something Rob.


8800 640mb GTS, 4gb RAM, 500gb HDD, Vista Home Premium, 3 Dual Panel Casing Fans
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 21st Mar 2008 13:00
Oh crikey!
Not sure what's happened to it, it worked fine in the editor and seemed OK when I first tested it. Maybe it's my use of ResHacker to change the icon... I'll try recompiling and get back to you later today.

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
FredP
Retired Moderator
18
Years of Service
User Offline
Joined: 27th Feb 2006
Location: Indiana
Posted: 21st Mar 2008 13:47
Quote: "Maybe it's my use of ResHacker to change the icon..."

That's usually not a good thing.I hear ResHacker is a pain.

RIP Floating Skull unknown-2007 we will miss you in FPSC x10
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 21st Mar 2008 14:11 Edited at: 21st Mar 2008 14:16
Quote: "That's usually not a good thing.I hear ResHacker is a pain."

Really? It didn't seem all that bad to me, and as it turned out it wasn't actually to blame.

It turned out that I'd made a mistake with the loading of my titlebar image - when its loaded, the computer looks for <LightningLightsDirectory>/Toolbars/03 Titlebar.bmp On my computer, when I ran it from the DB editor or as an EXE saved within the project folder, the file of course existed (it had t, or it wouldn't have compiled)

When I uploaded my demo, I assumed that because it worked on my computer, it would work fine on everyones - but when the program was run it would still look for <LightningLightsDirectory>/Toolbars/03 Titlebar.bmp and wouldn't find anything. Result - Runtime Error 10.

As a temporary solution, I'm just about to upload a new Zip file with the Titlebar in - just unzip all 3 files and the folder Toolbars. Keep the directory structure intact, and everything should work fine. (Fingers crossed...) I'll work on keeping the image within the DB exe later.

Oh, a couple of points about this version - it includes the save/open project routines but they aren't quite working yet. If you change a MagicWorld file within LL then the V1.20 Object Commands get messed up and .x and .3ds objects may not load. it's still a work in progress. Also, whenever an angle is displayed in a Lighting textbox it gets automatically formatted to 2 decimal places.

Sorry about that error!

[Edit] Revised demo uploaded!

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
FredP
Retired Moderator
18
Years of Service
User Offline
Joined: 27th Feb 2006
Location: Indiana
Posted: 21st Mar 2008 14:14
I'll try this one out and check it out.Thanks.

RIP Floating Skull unknown-2007 we will miss you in FPSC x10
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 28th Mar 2008 13:57 Edited at: 28th Mar 2008 13:58
OK, the program's now coming on in leaps and bounds! Sorry I haven't posted for the last week, but I had to finish off the Save/Open project routines before I lost track of what my arrays all meant (I'm not joking, either - my last project ground to a halt when I made a routine to write the data to a file, but couldn't figure out how to read it back in to the program). The link to the new demo file is at the top of the first post.

New features in this demo:

The way MagicWorld files are stored has had to be completely rewritten, so any projects you may have made that use these should probably just be deleted. In fact, it may be better to start from scratch on any projects you've saved - I'm not entirely sure I know what all the changes I've made are!

The load project routine makes you search for any files that were in the project but can't be found at the specified directory. You must locate the file, or you can't continue. Note that if a file within a MagicWorld level is missing, it'll just be replaced by a cube - I can't do anything about that, as it's part of the MagicLoad Function.

I've almost completed the Export source code routine. You can export the code to load and manipulate objects or mwdb files, and of course the code for the lighting effects. You can also choose to use relative pathnames for your project, but this isn't recomended at the moment - unless all files share the same main directory, the program may lock. Also, you source code for directional lights is not exprted - I've still got to implement the format float routine on the Light vectors (DBC won't compile a number like -1.456e-007, so I need to make it a decimal).

I've also started work on formatting the floats displayed in textboxes - for positioning a Point- or Spot-light you're restricted to 2 decimal places, or 5 when you start going into exponentials (i.e. position >=1000000).

I really need feedback on this demo, especially as regards ease of use. I could also do with knowing how long it takes the save/open project routines. They're blindingly fast on just 7 or 8 objects, but I could do with someone getting the object count up to more realistic levels and leeting me know if a progress meter would be in order.

Oh, and by the by - there's a deliberate error on one of the buttons on the Export toolbar. Can you find it?

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 3rd Apr 2008 18:57 Edited at: 3rd Apr 2008 18:58
Right, this is probably the final build of Lightning Lights v1.20. HTML help documents have yet to be produced (although with the context sensitive help there probably isn't much point), I intend to put the program in a Windows installer at some point, and I need to finish rebuilding my website to host this - but I think the program itself is done (there might be the odd bug buried somewhere in it, but I think I've managed to catch them all!)

http://mythrada.distantstar.org.uk/lightning_lights_v1.20.zip

There's one new feature in the program - shadow lighting. Pasky's 20-line challenge code snippet to create shadows on other objects or matrices was fascinating. By specify negative colour values, it was possible to create a "DarkLight" that darkened the objects in the scene instead of lightening them. This screenie from LL possibly takes the effect to an extreme, but I think it's quite good at showing off what the program can achieve:



To use the control, all you have to do is click the "colour light" button, and enable the Shadow checkbox (sorry if it looks a litte squeezed in, but it was an afterthought). The bad news with this feature is that I've had to slightly modify the .lit file format to acomodate it, and any projects saved using earlier demos will have to be scrapped.

The only supported file formats at the moment are .x, .3ds and .mwdb (MagicWorld). For the time being, I'm not planning on adding support for MatEdit files or recoding the program in DGDK to add support for DBO objects. Sorry if any of you were after these features, but I've not really had any feedback on the program and I'm wary about putting too much more effort into the thing. I'm not saying that Lightning Lights will never be expanded - I'm always open to suggestions, and I can always be contacted here or though my website...

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 3rd Apr 2008 21:46
@RTR

I downloaded your program and gave it a try. I think the interface is very clean, very quick and responsive. Your color selection dialog boxes are very nice - I like the shade control (+ -) . Your text entry boxes work well. All in all it's a very nice, organized and clean interface. The program itself is easy to use and mostly intuitive. It's a good application overall.

The loading dialog is very responsive and quick. It's one of the better ones I've seen programed in DBC. One porblem I had with it is I couldn't access any other drives except the root that the main exe was installed on. It would be nice if all of the drives could be accessed. This prevented me from testing lots of models because I didn't want to shuffle things around on my hds and just used whatever was on my testing hd where your program resides.

For positioning a model, I would like to see an increment control where I could set how much the model moves with the mouse. It seems to be set at 1 unit. It would be nice to be able to change that.

I would like to see some kind of point of reference . A grid, or an on screen axis. Something to have a reference for where objects and lights are being placed in the 3d world.

When I loaded an additional model after having rotated and placed a previous model, it seems the camera view switched to the new model loaded and I had no idea where my other model was. Maybe it was replaced?

Maybe, you could include a listbox that has all of the currently loaded models posted, always visible off to the side. If you click on a name, the camera view will switch to that model. I noticed you have a select object option, but it doesn't change the camera view to point at it - so if it's out of view, I have no idea if it is selected. Or perhaps include a panoramic button where the camera will center itself between the average distance of all models loaded and back up until all models are within it's field of view. Or, whenever a new model is loaded, instead of the camera pointing at it (make sure autocam off is set) have the model always placed in relation to the camera and whatever direction it is facing.

Something to keep in mind, though you are probably already aware, as this appears to be written in DBC 1.2, if someone uses the export created by this and they are running and earlier version of DBC, the scene will be lit a bit differently. The main culpits being the global ambient light settings vs 1.20 object lighting. There is a balance, but it can be tricky to achieve.

All in all, good job! The light controls seem to be easy to manage and I can see the results in real time. I did have trouble trying to figure out the cones of light option.

Enjoy your day.
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 5th Apr 2008 23:24 Edited at: 5th Apr 2008 23:28
Wow, thanks for your comments Latch! I was beginning to think that no one was interested in Lightning Lights - you've no idea how glad I am to be proved wrong! I'm only sorry it's taken me a couple of days to post back, but I didn't get your message right away and I also wanted to think about what you'd said before I posted.

Quote: "It would be nice if all of the drives could be accessed."

I agree with you on that one - so I've just added it to my code! You're limited to just the first 255 drives on the computer, although I don't think that should be much of a problem for anyone! (Actually, I've often wondered what happens when you work your way through to drive Z and then add one more...)

Quote: "I did have trouble trying to figure out the cones of light option."

Yes, that one can be a little awkward. The problem is that they are the size of the light, so if the light has a range of 3000 units then the cone will be 3000 units in size and so it may not appear on screen unless you really pull back with the camera. Then, with cones of light, they are only displayed for spotlight outercone angles that are less than 180 degrees. The resizing calcs involve tan, but tan(180) is infinity and Tan(n) for n>180 is smaller and smaller so for larger angles, the cone would shrink!

Quote: "When I loaded an additional model after having rotated and placed a previous model, it seems the camera view switched to the new model loaded and I had no idea where my other model was. Maybe it was replaced?"


No, your first object won't have been replaced. Each time an object's loaded, it comes in at 0, 0, 0 and the camera is repositioned to:
0, 0, (-2*Object Size(NewObject)). My thinking at the time was something along the lines of "Any new object you load will of course be the next one you scale/rotate/position , so you'll want to see it". I think you're right to question the wisdom of this - maybe I should just leave the camera alone when loading new objects, and if you wish to see them, you go to the camera mode and use this:



It's not the listbox you suggested, but when it's fully implemented it'll enable you to 'jump' to a particular object and get it centered on screen. I plan to have the toolbox only appear in the camera mode, and allow it to be turned on or off (though default is on). It'll even work for MagicWorld levels, allowing you to select individual components.


Quote: "I would like to see some kind of point of reference . A grid, or an on screen axis. Something to have a reference for where objects and lights are being placed in the 3d world."

I'm not too sure how I'd create a grid (make a matrix?), but what if I were to make a 3D object that sits in the top left hand corner and shows which way the X, Y and Z axes are pointing? This is only a sketch I made in paint, but would this be any good?



Quote: "For positioning a model, I would like to see an increment control where I could set how much the model moves with the mouse. It seems to be set at 1 unit. It would be nice to be able to change that."

I agree with you, but after reading what you said I was wondering if each control (Position, Rotate and Scale) should have their own increment value. What if I was to determine it based on the Objects Size? You know, something like this:



but leaving the light controls unaffected. It did occur to me to put some textboxes on the Export Toolbar, but that might seem a little buried and out of the way. What do you think?

Thanks once again for your comments, and I can't wait to hear from you!

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
Diggsey
18
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 6th Apr 2008 01:05
Look awesome

It's a shame it's not written in dbp, because you could use my ViewGUI plugin and probably have about 1k fewer code lines (Your GUI looks great, but I imagine that it's rather a hassle to create every bit of it in code!)

Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 6th Apr 2008 11:58 Edited at: 6th Apr 2008 12:02
Thanks Diggsey! You're right, though - it was rather a hassle to add each piece to the code. But I did manage to break it down into a few templates, so in the end all I had to do was change the variable names.

Quote: "It's a shame it's not written in dbp, because you could use my ViewGUI plugin and probably have about 1k fewer code lines"

I'd agree on that one - yor ViewGUI looks great from your screenies (but I'm unable to run it as I don't have DirectX9.0c. Really must do someything about that, it starting to get annoying...)

Did you hear about the escapologist's funeral? He was buried on June 25th, 26th, 27th, 28th...
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 8th Apr 2008 09:18
@RTR

Quote: "maybe I should just leave the camera alone when loading new objects"


Well, in my opinion, I would always place the object relative to where the camera is facing. Keeping your original distancing in mind it's easily accomplished with:



Of course you could adjust y to always be 0 so the object is at "ground level" when it's loaded. This way, your new object is in view, selected, and can be easily moved around and placed within the current scene. Because the whole scene is in one view (camera window so to speak) shifting the camera away from what you were just working on when a new object is loaded can be disorienting, and not seeing a newly loaded object can be a bit confusing.

Quote: "I'm not too sure how I'd create a grid (make a matrix?), but what if I were to make a 3D object that sits in the top left hand corner and shows which way the X, Y and Z axes are pointing?"


For me, I like to see where the ground is, and have some idea at what height and position I'm placing objects relative to each other. A matrix or a plain or a grid object can all suffice depends on how concerned about performance you are.
Well, I've tried testing a matrix versus a plain textured as a grid, vs a grid object. Without getting into great detail, the grid object had the best performance in my tests when set to the same relative dimensions as the other two - plus it's easier to texture than a matrix. You could even avoid the texture and just set it to wire frame but that might only look so so. You could also have a toggle button that shows or hides the grid. It's up to you and what you like your program to do and you might want to avoid cluttering up your interface with extra buttons and gizmos.

Quote: "I agree with you, but after reading what you said I was wondering if each control (Position, Rotate and Scale) should have their own increment value. What if I was to determine it based on the Objects Size?"


Try it out, test it, see if it makes sense. Does the right mouse click do anything? Maybe the left button moves things as you have it currently set, and maybe the right button moves things at .01 or something for fine tuning.

Enjoy your day.
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 10th Apr 2008 00:12
Thanks for your suggestions Latch. I did try adding text boxes on the export menu to control the movement step values (only implemented them for position object though), and within about 30 seconds I'd fallen in love with it. But about 30 seconds after that I was getting irritated with having to keep nipping back to the export mode to change it. I'll have to add it to each individual toolbar - it'll be a nightmare updating all the screen coordinates, but I think it'll be worth it. Thanks also for that camera code snippet, I'll add it in the next day or so.

My attempts at an axes pointer have unfortunately proved fruitless. I managed the 3d model, but it became distorted owing to perspective once DBC repositioned it away from the screen centre. So I'm no concentrating on a grid.

Here's what I've got so far (the media is in the attached zip file):



At the moment it's a combo of object and matrix, but that's just because my first test involved matrices and it's proved a useful guide for accuracy. Coding the grid (and even a snap to grid feature) shouldn't be too hard, but making the grid is proving harder than I imagined. I've made a cuboid with zero height in Anim8or, but I can't fine-tune the texture coordinates to allow a perfect match between the major grid square and the matrix. Any ideas? (3D model-making isn't my strong point...)

Oh, and here's a download link to the enhanced demo - it includes multiple drive support, the Quick view object feature in the camera mode, and also has a grid using matrices (the minor grid always follows the selected object. Shame its so heavy on polys, but a total of 12500 is a bit excessive!)

http://mythrada.distantstar.org.uk/lights_refinement_test.zip

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!

Attachments

Login to view attachments
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 10th Apr 2008 05:02
Quote: "Shame its so heavy on polys, but a total of 12500 is a bit excessive"

Why so large? Why not just 10 x 10 or 20 x 20? Does that mean you're creating it at about 80 x 80? You could even have just a single solid ghosted plain (just so there's a reference as to where the ground is and you can see through it). When I get a chance, I'll check out the demo.

Enjoy your day.
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 15th Apr 2008 15:31
Just an update, to let everyone know what's been happening. I've fully implemented the ability for the user to specify how far an object or light gets moved/rotated/scaled (scaled isn't for lights, obviously). If you specify 0.1 as a step value then each arrow key press will move the item forward 0.1 units, while clicking and dragging will move the item (0.1*Mouse_Move_Amount).

Unfortunately, when playing around with extreme values I found that my text box images weren't big enough - a value of "-1.23456e+008" has the "8" hanging over the edge of the textbox. I've started work on a enlarging all the textboxes, but this is going to muck up most my screen coordiantes. Give me a week and it'll be sorted (but you never know, I just may get through it faster).

After that, the only outstanding features are MatEdit support and the grid control (but I'm still struggling with the accuraccy and textures.)

Quote: "Why so large? Why not just 10 x 10 or 20 x 20? Does that mean you're creating it at about 80 x 80?"


I used a 2500x2500 matrix divided into a 25x25 grid (25*25*4 = 2500 polys) and then a 100x100 matrix divided into a 50x50 grid (50*50*4 = 10000 polys). It's pin sharp accuracy, but still one heck of a lot of polys. A ghosted "Ground level" plain sounds like a good idea, but if it's going to be there I'd like to make it do something useful.

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 18th Apr 2008 22:05
I haven't had a chance to download the new demo but you may be able to handle the grids as smaller objects. Don't rely so heavily on the matrix intersection points themselves (if you have a 50 x 50 matrix, assumingly you are using the matrix points between grid cells as your reference points). A matrix or an object is already sized according to world space. So if a 4x4 grid object is 1000 units x 1000 units in world space, you don't have to rely on it's vertices which are based on 4x4 but you can use any of the world space coordinates up to 1000x1000.

For example, you could overlay a 10x10 or a 20x20 texture grid on your object or matrix. Since the object is 1000x1000, the intesecting points would be 1000/10 or 1000/20 increments. You could still lock objects to the grid but by using world space coordinates instead of matrix intersection points (i'm guessing at your method because of the size and polycount you submitted).

Quote: "Unfortunately, when playing around with extreme values I found that my text box images weren't big enough - a value of "-1.23456e+008" has the "8" hanging over the edge of the textbox"


What you can do instead of rewriting the size of your textboxes is to have horizontally scrolling values. If your text values are written offscreen to a small bitmap before they enter the box, you can capture and paste only the viewable portion that should fit in the box. While the text box is active, any use of the arrow keys (or you could make a scroll bar graphic) will reposition the offscreen capture to only the area that would fit in the view of the text box giving the illusion of scrolling text. This way, you can have one size text box but a virtually unlimited size number (based on the widest bitmap you can have and if you are using strings, 255 characters).

Enjoy your day.
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 27th Apr 2008 15:41
Ok, I've finally managed to get the grids sorted out (sorry for the delay) and almost added all of the associated controls. As before, there's a major grid of 2500x2500 (divided into 25x25) and a minor grid that's 100x100. You can choose how large each tile on the minor grid is, but you're restricted to 10x10, 5x5, 2x2, 1x1 or 0.5x0.5. Rather than trying to get DB to generate a particular tile size as the user specified, I'm afraid I went for the easy option and built my own objects! Poly count has been improved significantly - the major grid is 104 polys while the minor grids range from 812 to just 52 polys!

The grids have 4 controls at the moment:
Show/Hide Grid - Shows or hides the grids

Minor Grid Tile Size - a spin edit box that lets you adjust the size of the minor grid

Move Major Grid - four buttons that allow you to reposition the main grid so that it's under your objects. If the minor grid falls outside Major grid (when the selected object is moved outside the grid) then the Minor Grid gets hidden. I've fixed all grids at y=0, as a reference point.

Snap To Grid - this feature only works if you set the minor grid tile size to 10x10 or 1x1. It works by rounding the object's X and Z coorinates to the nearest 10 (10x10 grid) or 1 (1x1 grid), meaning that the object always winds up on a grid line. I haven't yet managed to work out how to make DB round to the nearest 5, 2, or 0.5,k but it shouldn't take too long (famous last words...)

I'm not sure if the "Snap to Grid" is a bit awkward to handle, but I think it does provide a good level of fine-tuning. Also, the grids suffer severely from pixel swimming at low levels. I set it so that above a height of 100, the grids switched to wireframe view, as each strip on the grid will then becomes three lines and so give the grid the weight it needs to stand out. Unfortunately, at small heights you can easily see the wireframe so I've had to switch back to the 'full' view. I don't always get away with that little trick, I was wondering if you had any suggestions?

Anyway, here's the demo:

http://mythrada.distantstar.org.uk/lightning_lights_trial_grids.zip

Can't wait to hear from you!


Oh, and I've finally added the code to position an object in front of the camera when you load a new one. It's one heck of an improvement - thanks Latch!!

I'd also like to ask about the planned MatEdit support before I get started on it - do you think I should let users access and set individual matrix properties, or could I just leave the MatEdit level as though it were a single "Object" file that can never be altered?

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 7th May 2008 02:44
I couldn't see a grid of any kind. How do I activate it? I saw a control to show grid, it was checked but I don't see any grid. I also don't understand how to move the camera around.

Quote: "I'd also like to ask about the planned MatEdit support before I get started on it - do you think I should let users access and set individual matrix properties, or could I just leave the MatEdit level as though it were a single "Object" file that can never be altered?"


Well, you might want the ability to control the aesthetics of the matrix (the lighting, transparency, wireframe, ghosting) but all the other elements are controlled by MatEdit itself (texturing, size, shape). It depends on where you want to go. Is your program going to be a complete world editor? If so, then you can have your own matrix controls. If you are going to import other files, then let the program that made them control the aspects and you just import the file.

For example, if someone loaded a MatEdit file into lightning lights and you allow them to alter it, if they go back to MatEdit to work on it some more, the changes that were made in Lightning lights wouldn't be in the file (unless you create an exporter to exporter the altered matedit file back out).

It all depends on where you want to go. The way it is looking, it's on its way to being a total world editor. So far, it is a great program - very easy to use, very nice looking. I tried the context sensitive help and that seems to work well.

Enjoy your day.
Robert The Robot
17
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 9th May 2008 14:32
Quote: "I couldn't see a grid of any kind. How do I activate it? "

Whoops! Forgot to mention, the grid is a plain with zero thickness, so when the camera is at exactly zero, the camera views the plain "Edge-on" and it vanishes!

Use the camera mode to adjust your height. Up/Down arrow keys for forwards and backwards, Left/Right arrow keys for turning left and right. Use Shift and the Up/Down arrow keys for moving up and down the y-axis. Use Control and the Left/Right/Up/Down arrow keys to rotate about the X- and Z- axes (Can't remember the order off the top of my head!).

Quote: "Well, you might want the ability to control the aesthetics of the matrix (the lighting, transparency, wireframe, ghosting)"

OK, I'll see what I can do. It shouldn't be too hard to add that as a feature (it's just a question of adding a load routine, assigning the components a 4 letter code, and copying most of the MagicWorld routines). It might take me a few weeks to get this in though - I've got exams coming up, and I've spent the last few days working on a Limb-based animator that sort of got abandoned a few months ago.

But with lightning Lights, after reading your post I'm starting to wonder if perhaps I should turn this into "Lightning Levels"! It did cross my mind to do a level editor a while back, with a matrix terrain editor and a kind of "Dot to dot" 3D object editor (though that would have been rather limited).

I'll have a think, maybe start designing some toolbars, and see what I come up with. Watch this space?

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!

Login to post a reply

Server time is: 2024-11-24 06:11:06
Your offset time is: 2024-11-24 06:11:06