ModelEd
Version 0.11
vandals1@home.com

2/21/99

I don't see myself doing much more work on the model editor since school has been getting in the way. If I make updates to it I will post them here but I have no idea what will happen. This program was made for me to learn and it did a very good job. Now that I learned what I wanted to learn I am moving on to new things and maybe I will add them to the program when I get a chance.

2/15/99 -- Later

Well I have been trying to implement the selection in the preview window and I have run into some problems. Since I am letting OpenGL do the transformations of my objects I have no idea what the coords of the triangles are. I could cycle through each triangle and translate it and rotate it but I don't want to do that. I have a feeling I am just going to use OpenGL's capability for selections.

2/15/99

Made lots of misc changes to the program thanks to some feedback that I have recieved. You no longer need a 3 button mouse. I reworked somethings so that you can now use a 2 button mouse just fine. ModelEd is now at Version 0.2b because I added LOTS of things to the program so I felt that it warrented a whole new version. Still no selection in Preview window but I am working on it. I am thinking about using OpenGL's gluPickMatrix () to do the job but I don't know much about it and I would rather do the selections myself. I might juse use gluPickMatrix () for the time being and then when I know more I will do it myself.

2/14/99

Did some work on the program today. I added lots of little features that make things easier on the user. I added the ability to load pre-made models. There is now a menu for prefabs and it will insert them into the current model that you are working on. Also added the ability to change the color of the way most things appear in the editor. Lots of misc things that people wouldn't notice unless they had the source. I am pretty happy with the program as of now and I actually created some models today so that is good.

2/13/99

Well I am going to release ModelEd for general use if anyone wants to use it. It doesn't have tons of features but it works for what I want it to do. Download it here. Make sure you read the Readme.txt before you run the program so you have some idea about what you are doing. Also I suggest using a OpenGL accelerator with a desktop color depth of 16. If you have anything lower like 256 colors nothing shows up right. Also you need to have a 3 button mouse. The next official version that I will release will, I hope, give you the ability to select triangles in the Preview window. I need to investigate a method to do this. I might have to redo lots of things thats why I am saving it for a new version.

2/10/99

Finally got shading into the preview window. Still needs tweaking for minor things but its in and working. It took me a while to figure out to get the correct normal for each triangle but I finally was given a tip in a newsgroup about a solution to my problem. Here is a screenshot of the shading in action. I plan on adding more features to it now that it is in place. I think the next task on my list is going to be the use of ray casting for the selection of triangles.

2/07/99

Well nothing new to report really. Tried some new methods internally with the program to make things work better. I am still researching raycasting to use for the selection of polygons in all views. I would really like to implement a selection technique for the preview widow. It would be very beneficial. I have encountered some problems in trying to implement this. One problem is that in the preview window I let OpenGL do the transformations and rotations of the model. This becomes a problem when I have to test to see if the triangle is being clicked on. What I am thinking about doing is just doing the rotations and translations myself and keeping them in a temporary model and then have that drawn to the screen. Also since im not aiming for speed I can just calculate everything real time. I don't really have a good idea about how this will work so I am just taking wild guesses.

2/05/99

Added in keyboard mapping support. It is VERY primative but it suits me for what I am trying to do. If I want to make it more robust it will be easy to do. Currently ModelEd looks for the file 'keys.dat' at load time and loads the keyboard mappings from it. If it does not find it the program will use defaul mappings. If it is found the mappings in the file will be loaded. The file is structured like this: <command> <key>. An example of a line would be something like this "point_next space" or "move_down arrow_down". Again its very simple but it works. I was thinking about using a binary file for the keyboard mappings but it would defeat the purpose of it since I want the mappings to be there so people can change the layout of keys easily if they don't like the default. I bumped the program up to Version 0.1 since it is turning into a real program with features. I got the dialogs implemented for Open/Save/About and now I just want to wander through the code to weed out bugs before I make any type of official release.

2/04/99

Decided to release a test or whatever you would like to call it. Download it here. Try and break it and stuff and email me suggestions.

2/03/99

Well I finally fixed the rendering context swittching problem. I have no idea why it was doing what it was doing or what was causing it, all I know is that its gone now and I am happy. I have been really busy recently so I havn't had time to implement anything really that new or great. I have a new screenshot to show off whats going on with the modeler as of now. I will take some time this afternoon to add new stuff and iron out problems that have been poping up.

2/01/99

Here is a screenshot of ModelEd. Its very rough but just shows what I have going so far.

2/01/99

I hate school and its pointless for me to be there. Now that I have that outta my system on with coding type stuff. I have been working on the non GLUT version of my program and it has been going well. I have been stalled for the past few days because of weird errors that I am getting with rendering context switching. The errors are completely random and I havn't the slightest idea about whats causing them. I have been digging through the OpenGL docs in MSVC and looking on the web but I still havn't found all that much.

1/31/99

Man o man I wish I would have started using raw Win32 and OpenGL with this project. Things work so much more smoothly than they did with GLUT. I no longer have to code around things and I can now use keypresses and mouse buttons at the same time, I never got this working in GLUT. I did learn a lot with the GLUT version so that was what made the new version of it come so quickly. I have pretty much all the features working now, I just need to re-add all the windows and I will be golden. This wont happen probably till tomorrow or later since I am playing with buttons and things like that. Well off to code...

1/30/99

Well today I am starting on the pure Win32 / OpenGL version of my program ModelEd. Yes it has a name now, I admit its lame but oh well. GLUT while great for making apps quick is not robust enough for what I am trying to do. Many times I encountered situations where I had to code around GLUT so that I could acomplish what I wanted to do. I knew I was going to run into this problem so its no big surprise. I will spend the next few days coding up the Win32 version. I don't think that it will take all that long to do since the mass of the code has already been written and I will just need to tweak it to work correctly without GLUT.

1/29/99

All sorts of stuff done today. I redid the triangle format from plain-text to a binary file just because its more fun having it like that :) I also added vertex / triangle snapping to the grid. They will snap if they are within 0.25 of the grid. I should make this changable. The grid is now accurate and is a good tool for creating models so I am happy about that since previously it was horridly innacurate. Before the changes I made the grid was just a rough estimate of to where you were in space and it was just about pointless in having it. Now its like using graph paper. I made TONS of internal changes to the program that are pointless to explain but it allowed me to clean up the code. The method that I am using to select triangles sucks majorly and I need to find a new method to select triangles that works.

1/28/99

Lots of misc stuff added. You can now select triangles by clicking on their borders or inside of them. The method that I am using to select a triangle when you click inside of it is a modified version of an algorithm that was shown to me on the comp.graphics.algorithms FAQ. It works grat other than the fact that it does not do well when you select a line. So I used the distance from a point to a line formula to test if a point is on a line. It seems to be working ok. I don't know if this is the best method to be using but its working for me so I will keep it until I find something better. I want to investigate ray tracing and see what I can do with that. It seems interesting and I would like to investigate it further. Here is a current screenshot (142k) of what I have up and running so far. Sorry for the large images but I don't feel like cropping all of the useless stuff out of the shot. I am going to work on the keyboard support some more and write up a small doc on how to use what is currently in the program and I might post a test version of the app. It needs a name first though :/

1/27/99

I added the preview view late last night and its working now. The triangles are flat shaded as of now but I am thinking about using some sort of lighting for it. I really don't know what I am going to do with it. New addtions to the program should start coming more slowly now as I refine things that already exist and add small new features that will help along the way. The task that I am going to start on today is the ability to slect a triangle by clicking on a line that makes up that triangle. As of now you can only click on the points of the triangle and it gets very annoying. The rest of toay I will spend searching for a way to figure this out.

1/26/99

Well I added the final views to the program. So as of now I have x,y,z - axis views. They were very easy to implement, just changing x's to y's in the code etc etc. Here is a screenshot (97k) of what the program looks like with the different grid scaling modes and scaling of the object itself. I am going to implement the preview view tomorrow if I have time and then start adding features and making the program usable to someone other than myself. I am using the GLUT OpenGL library for this program for a few reasons. One its portable to multiple OS's and I like that. Also I am using it for time reasons. I don't have all the time in the world to work on this app, maybe a few hours at most every few days. Since GLUT basically handles everything for you and you just have to supply it with callbacks for what you want its very easy to develop with. If I would have been using straight Win32 API like I normally would I would still be messing around with the different views. If I didn't have to goto school and waste time there I would have ample time to do it without GLUT.

1/26/99

I did a major overhaul of the code today. I added the view down the x-axis and in doing so I created serveral gerneralized functions for triangle movement, scaling and rotation. This is much better than before where each window had its own routines for movement etc. I knew I would have to do this but I was just putting it off until I began to add other windows to the program. Also generalized some of the graphics functions. I hope to add the view down the y-axis later today and then I might post a screen shot before I add the preview view. Once I have all windows working properly I can move on to other features that I want to implement. I might make the preview shaded or wireframe, maybe both. I want to hae textured models but that is getting a bit ahead of myself.

1/25/99

Rather than study for finals I added a few more features to my modeling program. I added a third modeling mode today, MODE_POINTS. Basically this mode allows you to edit the individual vertices that make up a triangle. The other modes that are present at the time are MODE_EDIT and MODE_MOVE. Edit mode allows you to add triangles and move mode allows you to rotate and translate triangles. Scaling was added and it scales the object by +/- 0.25 each time you scale it. You can copy and delete triangles from any mode. I am about ready to implement the 3 other viewing windows, this is just a matter of copying and changing code that is present at this time. After I have the 4 view windows working (x,y,z-axis and preview) I will add model saving and loading and see how that works and the progress from there. One important feature is adding shortcuts to the keyboard that are easy to use and that make sense. I will worry about this when the time comes.

1/24/99

TONS of stuff done. Triangles can be added, moved, copied, deleted and rotated as of now. Still have to click on a vertex to move the triangle but I will fix that in due time. Cleaned up the code for vector management. Squashed some bugs that were causing weird behavior. Most of the stuff that I did today was organization type stuff that will allow me to add onto the program more easily. Changed lots of naming conventions, this still needs lots of work. My next task is to allow the movement of individual points to reshape triangles. The movement and point selection code is already in place its just a matter of implementing it. I will post a screenshot here once I have something worthwhile.

1/23/99

Got more work done on my little model viewer. Removed the point adding stuff and replaced it with triangles. Triangels can be moved around , deleted and that type of stuff. I hope to add in rotation tomorrow or whenever I have time to implement it. I also want to perfect the triangle moving system since its a tad lame now. Need to add a function to snap a triangle to the grid or to its neighbor so that edges can be aligned. Also need to add ability to edit individual points of a triangle. Lots of work to be done.

1/22/99

Started working on 'XProject'. XProject isn't going to be the name of the final program I am just calling that because I wasn't creative enough to think of a name. I am going to try and create a simple model editor for use in the programs that I write. I will just update this page with my progress when I have time to work on it.


Copyright © 1999 Nate Miller
Started 1/22/99