I've got Cat-Clark subdivision working to any depth. Two items that still need to be addressed in the subdivider: It doesn't yet calculate for UV coordinates(simple). And it doesn't know how to recalculate just a portion of the mesh (Bit more complicated, but I have a strategy). Currently it is entirely OpenGL 1.2 code. My main focus is now on selections and shaders.
Okay, it's been just short of four years. The goal never died, just the progress. Actually, after the last update I did
accomplish mesh subdivision, and it actually worked rather slick. Then I drifted away from development, went through several
hard disk reformats, and lost all previous source code. So I've restarted from scratch. The project was an absolute beginner
level learning exercise four years ago, and it has been again. The only real difference is the hurdles are recognizable once
I'm looking back at them. The big point is, I figured out how to structure my mesh to grow as subdivision points are added,
and how to keep those points separate from the main control mesh.
The system has changed slightly. I'm 100% Linux now. Development is in C++ using Code::Blocks IDE and wxWidgets 2.8 w/ wxSmith.
Old news... BentFX is currently in the planning stages...
At this time the plan is for it to be implemented in C++, using OpenGL and wxWidgets.
I've got a few bits of source put together, yet there is nothing that's even worth uploading at this time.
Design Goals...
Functional, but limited set, of core modelling tools, with the main focus on an intelligent, streamlined, extensible interface.
Comprehensive, robust API, allowing not only plugin functionality, but also allowing the core program to be used as a module from within other projects.
API extensible IO, allowing loading and saving in the widest range of 3D formats.
Understandable code! This is a learning experience for me, and I would hope that down the line, the code will be a good learning tool, for those interested.
Update Sept. 1, 2006...
Just a quick screen shot to show what I've got : (
It's loading Wavefront OBJ files. The file IO framework still needs a great deal of work to get it "modular".
It loads, edits, and displays OpenGL 1.Old materials. (no textures yet)
I'm using a half-edge approach for internal polygon structure. I've got it loading and iterating faces at a good pre-optimized level. I still need to get the vertexes properly structured at load time, so I can iterate the neighbor edges efficiently.
It isn't very close to doing any subdivision yet, but if you understood the last sentence about vertices and edges, you knew that. : ) Have Fun!!!
Update Sept. 2, 2006...
I didn't work on any of that stuff I talked about before. : )
I worked mainly on display stuff... Textures, component display, screen aspect, etc. (pic below)
26 December 2011
I've got rudimentary selection working, using unique colors with a dedicated selection buffer. Also setup background to toggle between solid
color, gradient or a skybox. Worked a little toward getting shaders working. Decided to put that off till I've got the mesh draw routine OpenGL
3+ compatible. Trying to hash out in my mind how to best format vertex buffer objects for efficiency. I've set on a February 1st initial
pre-alpha source release. It really isn't an editor yet, but the mesh object may be interesting to some. Though if the facebook or web traffic
is any indictation, nobody cares.
4 December 2011
Just basic stuff. No sound. (gotta get that sorted).
1 November 2011
I've got level 1 subd working, but because of the data structure level 1 is entirely different than more detailed levels.
This is due to the fact that level 1 is defined by the edges, the verts, and the face center. Higher levels depend on a 2d
arrays of points contained within halfedge traits. I've done this before but it really wasn't optimal. The arrays have to
grow and shrink as subd level changes, and I'm working on how best to do this. On the upside? From here on in everything's
a quad.
26 October 2011
Using Blender's Suzanne as a test object. At least it's not a stinking teapot.