We closed this forum 18 June 2010. It has served us well since 2005 as the ALPHA forum did before it from 2002 to 2005. New discussions are ongoing at the new URL http://forum.processing.org. You'll need to sign up and get a new user account. We're sorry about that inconvenience, but we think it's better in the long run. The content on this forum will remain online.
Page Index Toggle Pages: 1
Ideas? (Read 3208 times)
Ideas?
Oct 2nd, 2005, 4:24pm
 
Hi all,

I'm interested in extending the functionality of Processing for a college project this year and was wondering if anyone had any suggestions of something that is currently missing from processing and which would make a good and even invaluable addition to it. I'm interested in working on the 3D side of Processing. Any suggestions would really be appreciated.
Re: Ideas?
Reply #1 - Oct 2nd, 2005, 5:06pm
 
It's hard to say what kind of core functionality is missing, there are certainly things in the 3d rendering engine that'd be nice, but not essential (stencil buffer, bump mapping, custom shading (cel shading?), reflections/refractions).  

But perhaps it'd be more useful to look into something more of a plugin or specific-use extension of the language.  For example, object model loading (animation?), scene loading (bsp, scenegraph, portal), outdoor space (LOD support?).  With some generalized forms of these features, one could go further in designing games that run at an acceptable rate.  If you're not interested in games (gasp!), these same things could be used for general virtual reality (architecture walkthrough).

I've personally recently started working with more advanced features in OpenGL (stencil buffer, for one, but will be sure to move on to shaders soon enough), and it'd be neat to see some of this kind of stuff in Processing.

Marcello
Re: Ideas?
Reply #2 - Oct 2nd, 2005, 7:59pm
 
if i were your advisor, i'd be curious to see ways of simplifying how one does 3D. more high level structures, a means to load objects, a simple object model (see amit's bspace stuff), etc. it needn't be overdone like java3d which makes a massive scene graph of everything, but just being able to get some 3D data into p5 and manipulate it programmatically would be big. proper implementation of a stencil buffer that would handle selection of 3D objects would be tied to this as well. basically, it's too tough to do 3D, and there are lots of ways it could be simplified and improved.

the renderer itself could use lots of work, but that's probably not "research" enough for your project. and besides, if you want to do advanced 3D, you should just use opengl, not p5.
Re: Ideas?
Reply #3 - Oct 3rd, 2005, 5:07am
 
Hey guys, thanks for the replies Smiley

Basically I know P5 is definitly not for pushing games first however even though I'd probably be more interested in that I believe what would be more impressive is the ability to provide regular users an ability to do advanced work but without the hassle (ie. P5 Wink). What I believe I will end up doing is extending the functionality and then creating a few POC work to show it in action as my project.

Only problem is Im not able to pinpoint what exactly to relate it to, as I'm fairly new to 2D/3D (nehe OpenGL tutorials, playing with api) so its hard to just pick something. Especially as I need to write up a detailed proposal/plan by friday and Ive been going in circles :x

So far, say for instance if I was to do this I could encorporate the following (thanks to your ideas):

* Easy 3D shape creation
* Collision Detection (not sure if this would work at all, given my basic knowledge of 2D collision detection)
* stencil buffer / shading
* bump mapping
* custom shading (cel shading?)
* reflections/refractions

That look decent enough to you guys or anymore I can add? I'm assuming (from what ive gathered with a brief look at the source) the path for doing this would be Java + OpenGL so it should still be fairly fast. Plus it would help me learn OpenGL better at the same time Smiley
Re: Ideas?
Reply #4 - Oct 3rd, 2005, 5:48am
 
My only comment on that list is you have two very different sets of ideas in one group.  I would recommend picking one path and sticking to it.

On one hand you have 3d shape creation and collision detection, which both deal with the geometry aspects of Processing (plus they would be work well as plugins), and on the other you have everything else which is internal and deal with the rendering aspects of Processing (which would most likely have to change the inner workings of the processing rendering engine).

I would suggest picking one or the other.  

If you go with geometry consider basic shapes, and/or model loading, and if you are looking at collision detection, consider perhaps even a primitive physics engine.  With things like level of detail in model display, and various clipping/optimization routines for allowing processing to deal with numerous instances of objects, you'll have plenty to do.

If you go with rendering, things like stencil buffer, shading, bump mapping, and especially reflections/refractions are probably enough on your plate as it is, but you could flesh this out with some solid demos of these features in action (I can imagine a nice visual demo that demonstrates things like realtime shadows, motion blur, reflections, and so on---all which are realistic projects if you understand the core concepts necessary here).

As far as what you'd learn, in the first case you'll have a hands on look at how to work with real scenes and objects, and how professional games and programs deal with 3D.  The plugin you create will have real application in a wide range of 3d projects.  I personally believe proecssing has the potential for some nice game development, and this would certainly help there.

In the second case you'd really get into the internals of how a 3d rendering engine works, and how these different effects are actually implemented in software (if you made a simulated pixel/vertex shader engine, you would also get a good view on programmable shaders work).  While such improvements are more for visual eye candy than anything else, I'm sure the processing crowd would be happy to have access to these kinds of tools.

So I guess it's a question of which you like working with more, polygons or pixels? Wink

Marcello
Re: Ideas?
Reply #5 - Oct 3rd, 2005, 11:34am
 
If you're wanting to add bump-mapping into processing, I wrote a little example sketch that may help to get you going to building a more generalsied bump-mapping system for processing.

The example is here:
http://www.hardcorepawn.com/Bump/

Unfortunately it was coded for ALPHA and not BETA, so some small changes are probably needed (BImage -> PImage and the like)
Re: Ideas?
Reply #6 - Oct 5th, 2005, 12:43am
 
Again thanks guys Smiley Ive chosen my project, and it will be the ability to allow people to easily alter a 3D model. ie. stencil buffer, cel shading, etc (as discussed above).

One modification would be the ability to import 3D models. I've been looking into X3D as a basis for the model layout. So, something like:

Code:

blah = new 3DModel();
blah.loadModel("/home/me/mymodel.xml");
blah.celShade();


An addition to this would be animation of the models, and a simple .play(); method (or something similar). I reckon this will keep me very very very busy anyway and should make a good project (if all goes well). I'm writing up my Project Proposal document now! If anyone has anything else to add or some hints/tips/whatever I'd greatly appreciate it.

Thanks for the help so far Cheesy


ps. What you guys think of YaBB I used to code for it back in its early days (around 4 years ago now), then moved to its PHP/MySQL equivilant YaBB SE and then SMF. I don't code there anymore though due to time constraints like this and college work :\
Page Index Toggle Pages: 1