Page 1 of 1

RenderMonkey exporter enhancement (submitted)

Posted: Thu May 04, 2006 9:44 am
by buddy
Hello folks!

I am interested in enhancing RenderMonkey exporter stuff as a part of summerofcode project. As a contestant, because it so happened that I am a student now, and I have some time to spare for this summer :).

Yes, it was me who posted the original announcement about this exporter awhile back on this forum. Actually I am the guy who wrote the exporter code (except for later modifications after it became Ogre-hosted).

So would it be interesting for the OGRE project to enhance this exporter as a part of SoC 2006?

I have noticed some interest in the following features (from wiki):

* More flexibility to export scripts (different directories, different material names, ...)
* Persistence of the export options in the workspace file
* More variable types supported by Ogre (camera in world space, ambient light color, ...)
* Project files for more IDEs
* Import Ogre .mesh files into RenderMonkey

these would not be so hard to implement I think.
As for me, I also could suggest:
* .zip backend.
* preview with Ogre (e.g. how would the material look in OGRE, or even in some environment?)
* improving intelligence (better handling of multipass stuff)
* scripting exporter with python to add more flexibility.
* rewrite most logic in python (and bundle interpreter with the exporter), so that people do not need C++ compiler to fix and tweak things.
* installer for the stuff.

is there some interest in the features above? could you suggest anything else?

Posted: Thu May 04, 2006 9:58 am
by Joshua
This is the #1 feature that our project could use, that is not yet scheduled for internal development. Definately interest here. :D

I believe Praetor made a similar post that you should check out. :wink:

Posted: Thu May 04, 2006 1:39 pm
by sinbad
Sounds like a worthy project to me, and being the original author you are ideally placed to do it.

proposal

Posted: Sun May 07, 2006 2:50 am
by buddy
[Project: OGRE]
[Title/Summary: RmOgreExporter (v2), FxOgreExporter]
[Name: Vladimir Sukhoy]
[Email: vladimir.sukhoy<A_T>gmail.com]

[Time Dedication for the Project]
3-4h (at least) on weekdays. 5-8h on weekends.

[Deliverables/Goals]

Existing RmOgreExporter codebase will be used to enhance the tool to a newer level of usability. A better level of integration between existing major shader/material designer software and OGRE engine is a major goal.

[Detailed]
Following features are to be completed as a part of the project.

Major Features:
* [pylogic] rewrite exporter logic in Python and bundle interpreter code with the software, so that users will be able to contribute and tweak the exporter for their tasks.
* [import] add import capabilities to the plugin, so that people can edit their existing OGRE materials in shader designers (RenderMonkey) and then export the result back into OGRE.
* [scripting] add scripting capabilities for "batch" export.
* [previewer] add optional preview capability to the tool.
* [fxcomposer] design other features and adapt the codebase so that the tool can be used with another shader designer and eventually implement FX Composer plugin as the result of this effort.
* [doc] document the code being developed and come up with "User's Manual".

Minor Features:
* [rmogl] support OpenGL branch of RenderMonkey (it is not supported in current version).
* [exflex] - more flexibility to export scripts (different directories, different material names...)
* [persistence] - make export/import options persistent in the workspace file.
* [zipbackend] - implement zip backend for export/import.
* [improv] - Improve tool intelligence to deal with inherent differences in shader designer's material model and OGRE material framework.
* [idefiles] - More makefiles/project files/solutions for more IDEs (e.g. MSVS .NET 2005, and MinGW support)
* [meshimport] - Import OGRE's mesh geometry files (.mesh) into shader Designers.
* [varsup] - More variables supported by OGRE: (camera in world space, ambient light color, ...)
* [installer] - Package the tool and provide installer.

[Tentative Schedule]

May-June 2006: pylogic, rmogl, exflex, persistence, zipbackend,
exflex, varsup, previewer
July 2006: import, meshimport, improv, fxcomposer
August 2006: installer, scripting, idefiles, doc and catch-up.

[Background with OGRE]
The original version of RmOgreExporter was developed by me for VeritableSoft LLC in 2004-2005. In early 2005 the exporter was made available for OGRE community. A little later the source of the exporter was released under MIT license (with me in the copyright holder list). After being released, the code was somewhat modified by the community, but I couldn't detect any major changes.

The fact that I am the author of the existing codebase is the key element in my assurance of being the best person to do this project.

I also did some development with OGRE before creating RmOgreExporter, but I do not have proper authorization from related employers to disclose the details of the work.

[Experience/Bio]
My resume is available at http://sukhoy.public.iastate.edu/soc2006/resume.htm

To summarize:
* I have background in C/C++ development for Windows and long-term
experience using major tools involved (All Microsoft IDEs and make-like tools).
* I have some long-term experience with Python scripting language.
* I have some long-term experience with 3D Programming.
* I am familiar with CVS and newer source control systems, like Subversion.
* I have prior experience with Summer Of Code as a participant.
* I have experience writing FOSS since 1998.
* I am a graduate student for PhD in Applied Maths at Iowa State University, Ames, USA.

[SoC 2005]
I developed proactive I/O library for Python. The description is available at http://pyasynchio.berlios.de/pyasynchio-about.htm. My mentoring organization was PSF (Python Software Foundation) and Mark Hammond (the author of PyWin32) was my mentor for SoC 2005. The project was reported successful to Google. The idea was to generalize asynchronous I/O capabilities present in today's OSes and create useful and convenient interface for Python and maybe other scripting languages. Existing designs (most notably, ACE Proactor pattern by Doug Schmidt) were studied. Eventually a poll()-like interface was implemented and the library was released (unfortunately only the Windows version of the library is currently available, although I believe the interface developed is both general and useful enough to be reimplemented on other OSes).

Posted: Sun May 07, 2006 3:24 am
by Lioric
Im not sure this will be accepted as "you will need to do new work for the project"

Posted: Sun May 07, 2006 3:41 am
by buddy
Lioric wrote:Im not sure this will be accepted as "you will need to do new work for the project"
Interesting.
You claim that the features I intend to implement are not new? I thought that they were not present in the plugin. And just in case - no, I do not want to get paid for "just" releasing the source code. None of the features above is implemented (at least by me or anyone I know :)) at this point, and you will have to trust me on this :).

Posted: Sun May 07, 2006 4:22 pm
by Lioric

Posted: Sun May 07, 2006 5:47 pm
by BlasterN
The original version of RmOgreExporter was developed by me for VeritableSoft LLC in 2004-2005.
You are the right person. Good Luck.

Remember this new feature when you have to do the impoter.
http://www.ogre3d.org/docs/manual/manual_20.html#SEC106 (3.1.6 Copying Materials)

Posted: Sun May 07, 2006 5:53 pm
by nfz
I've used the current RM Ogre exporter a fair bit, looked at the code, and the items listed in Major and Minor features are definately new.

Posted: Sun May 07, 2006 8:14 pm
by buddy
BlasterN wrote: Remember this new feature when you have to do the impoter.
Thanks. It seems I will have to catch-up with OGRE a little bit, since it seems that these docs/features were not available when I did the original plugin.

Posted: Sun May 07, 2006 8:29 pm
by buddy
I read the FAQ/Terms for SoC 2005 and I read the FAQ/Terms for SoC 2006 too. If I didn't do so, I would not probably insist on my eligibility.
Lioric wrote:Please read the student faq
I suppose you mean this one:
Yes, as long as you meet all other requirements for program eligibility. Also, please be sure to note in your application your previous relationship with the project. For Summer of Code 2006, you'll need to do new work for the project.
Ok, but I assume that I am eligible, since I am a full-time PhD student and I am not from Cuba etc.
It seems that I noted in my app my previous relationship with the project.
As for new work - I intend to do several major features, which, I think, in the code will translate to 2x or 3x (or more?) size of the codebase of the original stuff I submitted and I hope the result should be quite a bit more usable and comprehensive compared to what we have at the moment. Does this qualify for the "new work"? I am pretty sure it does.

I really do not understand the reason why you claim I am probably not eligible. Could you clarify the exact reason you think I fail to understand something with the above FAQ or anything else related to SoC requirements?

Posted: Mon May 08, 2006 3:21 am
by gzmzhen
Hey buddy, from what I read in the faq, it seems like you will definitely be eligible; you only have to do something new as in not simply update your old project, but increase the capabilities. You are eligible from what you talk about in this topic.

Posted: Mon May 08, 2006 2:15 pm
by sinbad
I agree, extensions / new features on existing projects are definitely eligible.

Posted: Mon May 08, 2006 5:25 pm
by Lioric
Dont take it personal, i was just suggesting to take it into account, in case you dint, it can be relevant to your application as there are some threads in the SOC Administrators group where a similar cases was discussed

Posted: Mon May 08, 2006 10:11 pm
by buddy
Lioric wrote:Dont take it personal, i was just suggesting to take it into account, in case you dint, it can be relevant to your application as there are some threads in the SOC Administrators group where a similar cases was discussed
I'm ok with that :).
I tried to find the relevant post in Summer-Discuss, but failed, only found this one:
http://groups.google.com/group/Summer-D ... ba9c37cbed
and the response from Chris is pretty much what I would expect him to answer.

So I assume you mean closed administrators group I have no access to. So how could I take into account something I never saw and never knew? Something that was not in FAQ and was not clarified explicitly (like "an author of some library cannot work on its major improvement as a part of SoC 2006"). I think there are *a lot* of improvement-oriented and rewriting and refining projects out there and I am pretty sure many of those will be accepted. Heck, I even think that the majority or closely so of SoCers won't start from scratch. I also remember dozens and dozens of such refinement projects from SoC 2005. So, I really have trouble understanding these matters.

I would understand that, if, say, I had all these features done and stored on my hard drive :) and just said in my app that I want to get paid for the release of their source code. Than definitely there is nothing to pay for because the work is already done. Other than that, (and one can go up to arbitrary high level of conspiracy theory, if has enough desire to do so :)) I see no reason to disqualify my entry because of "not being new work".

Ok, if other guy (not me) would submit the same or closely proposal, do you want to hint that he would be eligible? That is kind of... strange.
So I still insist that the work I propose is "new". Moreover, I still think that the amount of effort I will have to put into the features above is even greater than the effort required to build existing codebase (just to mention - I plan to rewrite that codebase in scripting language, and that is a first step).

Is it possible to disclose the information you claim was in that closed list? I would really like to see the reason behind my disqualification, just for my background for future or something.

Posted: Mon May 08, 2006 10:38 pm
by Lioric
Dont over-analize it, it was an advice
If you are aware of this, you are sure of your work, and you did some research about this, then its all ok

how wrote "desqualification" in the first place?

You need to keep this in its original context, just a suggestion so you take it into account

Posted: Mon May 08, 2006 11:27 pm
by buddy
Lioric wrote:Dont over-analize it, it was an advice
If you are aware of this, you are sure of your work, and you did some research about this, then its all ok
I'm ok with that. Right now we are going into something which is likely to be classified as flame :).
Lioric wrote: You need to keep this in its original context, just a suggestion so you take it into account
Thanks. I tried my best to do so, but path of logic drove me into conspiracy theory and I hardly see any way I could avoid that. No offence intended, as I mentioned.