[K3d-development] Lurker is back: SoC ideas
Brought to you by:
barche
From: Rene J. <cen...@ta...> - 2007-03-17 08:44:37
|
Hi people I'm upgrading myself to lurker again. And as the annoying, curious busybody I really am, that will not happen in a very silent manner... Ach so. Here are a few suggestions that I myself had hoped to be able to contribute with in a time where the K3d code was a huge beast with a massively changing API. It never happened, but the need is still there. Seriously, these are not whimsical thoughts of little value, but features that I daily miss in the FOSS world! They all focus on the concept that K3d - unlike all other projects - HAS an ontological foundation which is object oriented, supports interconnection/visual programming out-of-the-box etc. etc. Such a framework would really be a dream to extend on. Sorry if these suggestions had already appeared on the list. Did scan it though. If you want me to go further with writing this stuff up, just ask me. I'm not a student. #1... CAD SYSTEM Using K3d as an implementation bed for a CAD subsystem. I've worked with SolidWorks which is a high-priced CAD system, and given the number of bugs and stupidly implemented features, I'd say that a clean implementation from scratch by a mathematically wiz-kid on top of a pre-existing OO-framework would give something to the FOSS world WHICH DOES NOT EXIST YET, AND IS **HIGHLY** NEEDED. Important concepts: - You model several PARTS which is then put together in an ASSEMBLY - You don't work with vertices and edges like in Blender, but with 2D SKETCHES made up from 2D PRIMITIVES (Circle, Rectangle, Line etc.). Once a sketch has been made, you apply a 3D FEATURE to it (Extrude, Spin, Cut-Through etc.). Now comes the scoop: You now have a 3D spaceous body. This body will have faces, which themselves (if they are flat, such as the sides of a rectangle extruded into a box) can become the drawing canvas of a new sketch. So to make a house with a door-frame: Make a Rectangle on the base XY-plane. Apply an Extrude. Apply a Hollow-Out/Shell-Out feature leaving a box which is not a solid thing, but rather six thin plates of iron. Select a face on the house and use it as a sketch-base where you can draw a Rectangle the size of your door. Apply a Cut-Through feature to that sketch, and tell it to cut all the way through to infinity in both directions just to be sure. - Parametric modelling taken to the extreme. You can supply a ton of CONSTRAINTS between all sorts of elements, and these constraints can often take hours to evaluate! Examples: Align the top face of a door-part with the top-face of the door-hole in the above example. Once you have done that, you have constrained the ability of the door to move. This shows when manually moving and rotating. The face that must keep aligned STAYS aligned, and you looses degrees of freedom. What is needed: - Most importantly a geometric analyzer, which can figure out the degrees of freedom of various elements - Hard to code features like: Shell-out, Fillet (rounding edges with, say 5mm fillets) - More stuff. Ask me if needed. I have given the subject some thought. #2... ARCHITECTURE SYSTEM This is actually different from #1. I suggested this years ago. Since K3d is fully object-oriented in a sense that even shows through into the UI (something is a mesh if it implements an interface, but it can be something else under the hood), making a "smart" set of objects and dedicated UI-widgets that helps modelling houses and cities a lot faster than if you had to deal in vertices, edges, faces. If you put in a window somewhere then both cutting the hole and attaching a child window object is automatically done. Cutting should NOT use booleans - that wrecks havoc on the topology - but something that cuts the target in vertical and horizontal parts). #3... GPU-BASED REALTIME RENDER ENGINE A recent idea. I have just finished rendering 800 frames in Blender. Although I used 7 machines and 3 friends, I still managed to push my deadline almost a full day. After the war, one of my friends (a gaming freak) asked me why that could take so long since he didn't think the result looked better than what he had seen in a recent game. I told him that in FOSS/Linux the developers are nerds, that have no clue what is really happening in the rest of the world. He was right of course. Anyone tracking NVidia and ATI can easily see that one powerful GPU and a lot of trickery could deliver almost in realtime the same or better result than what 7 powerful machines couldn't do in 24 hours. And so: Since K3d has a perfectly ready RENDER ENGINE PLUGIN architecture starting to make a juicy GPU realtime renderer would be quite easy given a certain amount of mentoring. Curse it I'm not a student :) Regards, Rene Jensen |