[Accepted] Ogre Material Editor

Threads related to Google Summer of Code
User avatar
Hudson
Halfling
Posts: 60
Joined: Thu Sep 14, 2006 2:46 pm
Location: NY
Contact:

[Accepted] Ogre Material Editor

Post by Hudson »

Some discussion on this has begun through GSoC application channels, but I am posting it here as well.


A better formatted copy of this description, complete with figures, can be found at http://www.hudsonb.com/GSoC/ogre_material_editor.pdf


Synopsis

The goal of this project is to develop an editor for Ogre’s Material Framework. The Ogre Material Editor will provide the developer with Material Script and Shader editors, and allow them to enable/disable Passes and Techniques enabling rapid prototyping of new Materials. The Ogre Material Editor will be similar in appearance and functionality to the ATI RenderMonkey™ Toolsuite.


Project Details

In Ogre, all aspects of an objects visual appearance are encapsulated in a Material. The Ogre Material Framework is a robust system allowing the programmer to define one or more rendering passes and optionally, techniques for degrading gracefully based on a number of factors such as system hardware and/or level of detail.

The goal of this project is to enable the rapid prototyping of Ogre Materials through the development of an Ogre Material Editor. The Ogre Material Editor will allow a user to create a new Material, and add/remove/edit one or more Passes and Techniques. Users will be able to quickly select which Passes and Techniques are active, as well as modify parameters and view the effects of these changes in real time within the Ogre Material Editor Preview Pane.

ATI has developed the RenderMonkeyâ„¢ Toolsuite to address a similar need for the rapid prototyping of GPU Shaders. The features and appearance of the RenderMonkeyâ„¢ Toolsuite will be used as a model for the Ogre Material Editor.

The Ogre Material Editor will be developed using wxWidgets and Ogre. Both wxWidgets and Ogre are cross-platform therefore enabling the Ogre Material Editor to run on multiple platforms as well. If the Ogre teams prefers, the use of wxWidgets could be abandoned and it could instead be built with the user interface library of their choice. For example, with CEGUI albeit with some limitations, or possibly as a plug-in for the RenderMonkeyâ„¢ Toolsuite or Code::Blocks.


Benefit to the Ogre Community

One of the greatest advances in computer graphics has been the advent of programmable GPU Shaders. Ogre helps developers leverage this new technology through their Material Framework. The Ogre Material Editor will take this one step further by providing the Ogre community with a standard tool which allows them to quickly and easily prototype new Ogre Materials for use within their projects.


Deliverables

During development a weekly progress report will be submitted to my assigned Ogre Google Summer of Code (GSoC) Mentor. These progress reports will summarize the progress made towards the project schedule that is described in detail below. Based on these progress reports, my Ogre GSoC Mentor and I can work collaboratively to refine our goals for the following week.

This project will have two scheduled deliverables; a midterm deliverable on July, 9th 2007 and final deliverable on August, 20th 2007. The number and frequency of deliverables can be increased if desired by the Ogre team.

The midterm deliverable will be uploaded to code.google.com/hosting on July, 9th 2007. The midterm deliverable of the Ogre Material Framework is expected to provide the user with the ability to create and modify the material used on an “ogre headâ€
Last edited by Hudson on Mon Apr 16, 2007 1:33 pm, edited 1 time in total.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Post by Assaf Raman »

Nice idea. Let me suggest an improvement to it.

Well, I think that instead of writing ATI Render Monkey once more – it might be a better idea to write a "Render Monkey file format to ogre material converter", and a Render Monkey plug-in that will be able to show you how the shader looks in OGRE straight from Render Monkey.

More about Render Monkey plug-ins can be found here:
http://ati.amd.com/developer/gdc/Tatarc ... keySDK.pdf

I think that writing a new "OGRE based Render Monkey" is the same as inventing the wheel.
Watch out for my OGRE related tweets here.
buddy
Google Summer of Code Student
Google Summer of Code Student
Posts: 78
Joined: Tue Mar 29, 2005 3:35 pm
Location: USA

Post by buddy »

Assaf Raman wrote: Well, I think that instead of writing ATI Render Monkey once more – it might be a better idea to write a "Render Monkey file format to ogre material converter", and a Render Monkey plug-in that will be able to show you how the shader looks in OGRE straight from Render Monkey.
most interesting is that there is one (actually, two, one is complete rewritement from scratch) available for quite some time, even supports preview and python scripting: http://www.ogre3d.org/wiki/index.php/SoC2006_RmExporter and some people (non-author) were even able to extend it to support glslang shaders, http://www.ogre3d.org/phpBB2/viewtopic. ... 004#205004 .
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Post by Assaf Raman »

Good point buddy.
Then my suggestion is also not relevant.
Watch out for my OGRE related tweets here.
Vectrex
Ogre Magi
Posts: 1266
Joined: Tue Aug 12, 2003 1:53 am
Location: Melbourne, Australia
x 1
Contact:

Post by Vectrex »

it could be made as a plugin/part of OgreStudio or one of the other editors/viewers. I think OgreStudio has changed it's license now to be more commercial friendly so it sounds good. Although I think it's windows only right now
Dom
Halfling
Posts: 57
Joined: Wed Jul 14, 2004 10:12 am
Location: Berlin

Post by Dom »

FX Composer 2 from NVidia will ship with a free Mental Mill version. Mental Mill allows to compose shaders using graphs. At the end of my blog entry you will find links to the PDF and press releases.

Maybe you can save effort & time if you can partly rely on this and nail down a solid pipeline by writing the tools and converters it needs to fit the gaps between Mental Mill, FX Composer2 and OGRE ?
big_o
Goblin
Posts: 279
Joined: Sun Feb 19, 2006 1:08 am

Post by big_o »

Ogre studio is now open source and already has a mostly functional material editor, and it builds with SharpDevelop. It is c# though, so it is pretty much Windows only.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Post by Assaf Raman »

big_o wrote:Ogre studio is now open source and already has a mostly functional material editor, and it builds with SharpDevelop. It is c# though, so it is pretty much Windows only.
Port it to mono and it will be multi platform.
http://www.mono-project.com/Main_Page
Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. Sponsored by Novell (http://www.novell.com), the Mono open source project has an active and enthusiastic contributing community and is positioned to become the leading choice for development of Linux applications.
Watch out for my OGRE related tweets here.
User avatar
Hudson
Halfling
Posts: 60
Joined: Thu Sep 14, 2006 2:46 pm
Location: NY
Contact:

Post by Hudson »

I believe NVidia's FXComposer 1.8 only supported HLSL, will 2.0 support multiple languages? The PDF you provded doesn't mention it but the Mental Mill articles say Mental Mill does.

FXComposer2 is supposed to provide a plugin-in SDK, hopefully I can get a hold of it early next month to see what is possible.

This project was inspired by the Project Offset Editor, and the Crysis "Sandbox" Editor.

The Crysis GDC "Sandbox" videos are what really sparked my interest in this project. If you haven't seen the videos I suggest you check them out here.

You can see their integrated material editor in action at 7:10 in this video: http://server1.crysis-online.com/video/ ... 20Demo.wmv.
User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
x 3
Contact:

Post by Praetor »

I don't want to sway overall judgment in regards to this being an SoC project, but I will say a few general things. I welcome all types of editors, and material editors I think are especially important. Since I made the editor in Ogre Studio I can say honestly that it has been put on hold. For how long I can't say. While it is "functional" I would say it is far from where I'd want it to be. I'd love to see a well-crafted, useful material editor. I like the setup of RenderMonkey, so I agree it is a good base or model for it.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Post by Assaf Raman »

Praetor wrote:I'd love to see a well-crafted, useful material editor. I like the setup of RenderMonkey, so I agree it is a good base or model for it.
I think that a good result required a bigger commitment then the scope of time that the summer of code allows. A good material editor is a big project (at least if you want to build a better tool then the existing one by Praetor). When you look at last year projects – the only finished projects were the infrastructure ones – not the tools. A tool is not a static thing – it needs to be adapted and developed constantly. I maintain a small tool (much smaller then the one suggested here) and I can tell you that it is a never ending job.

After the summer Hudson will go back to study (as he should) and the tool will freeze. (Same as the billboard cloud tool from last year).

I think that a possible project that Hudson CAN do is – to be mentored by Praetor – and they will both define goals to improve the editor in Ogre Studio.

Praetor is here to stay – so he will be able to help with adapting the tool to the next versions and fixing minor bug in the future.
Watch out for my OGRE related tweets here.
User avatar
syedhs
Silver Sponsor
Silver Sponsor
Posts: 2703
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 51

Post by syedhs »

Make it small, but 100% achievable. If it sounds too safe, then probably we will need to have development iteration. Upon completion of first development, then estimate the time for the next. What is important is for the project to be usable and useful after SoC completes.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Praetor wrote:I'd love to see a well-crafted, useful material editor. I like the setup of RenderMonkey, so I agree it is a good base or model for it.
I second that! I think that this project could do a lot for the Ogre content creation pipe-line!
And it looks like it's on! :D
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
x 3
Contact:

Post by Praetor »

Yeah, I can't wait for this one. Ogre's material system is so good, it deserves an editor that does it justice.
User avatar
smernesto
Halfling
Posts: 78
Joined: Wed Jan 03, 2007 12:49 am
Location: Bogota, Colombia

Post by smernesto »

Take a look, this is the material editor of Unreal Engine 3
http://www.unrealtechnology.com/screens ... Editor.jpg

The source: http://www.unrealtechnology.com/html/te ... ue30.shtml

Ernesto Gutierrez
User avatar
Hudson
Halfling
Posts: 60
Joined: Thu Sep 14, 2006 2:46 pm
Location: NY
Contact:

Post by Hudson »

Thanks for the link smernesto.

I've seen a similar type of interface in Project Offset's Offset Editor:

http://www.projectoffset.com/images/sha ... _large.jpg

It's definetely something I woud love to add, in fact I elude to it in the "Future Work/Graphical Material Composer" section of the proposal posted above.
User avatar
smernesto
Halfling
Posts: 78
Joined: Wed Jan 03, 2007 12:49 am
Location: Bogota, Colombia

Post by smernesto »

hehe, yeah, Both have a similar GUI.

Your project will be great, I was thinking that this will be a good addition to the Ogre Tools

Good Luck.
redmonk
Kobold
Posts: 39
Joined: Sat Sep 23, 2006 10:09 am

Post by redmonk »

syedhs wrote:Make it small, but 100% achievable. If it sounds too safe, then probably we will need to have development iteration. Upon completion of first development, then estimate the time for the next. What is important is for the project to be usable and useful after SoC completes.
I think this is the most important! Have you thought at QT for the interface?
User avatar
Hudson
Halfling
Posts: 60
Joined: Thu Sep 14, 2006 2:46 pm
Location: NY
Contact:

Post by Hudson »

I've never used QT. I have some experience with wxWidgets, which elminates the learning curve. This really makes it the best choice for me given the amount I would like to accomplish in a relatively short amount of time.

Additionally, sinbad has stated in the past, and recently reiterated on his blog, that any cross platform tools his creates would use wxWidgets. So I'm hoping that by using wxWidgets now I may ease the pain of integrating with any future (or past) tools that might pop up for Ogre.
Last edited by Hudson on Tue Apr 17, 2007 5:17 pm, edited 1 time in total.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

That's right.
WxWidgets is used by a lot of Ogre coders, which means that you don't have to reinvent much.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
x 3
Contact:

Post by CaseyB »

And really, the editor itself is the project, not the underlying tech, so might as well go with the solution that will get you up and running sooner so you can dig into the good stuff! ;)
Image
Image
redmonk
Kobold
Posts: 39
Joined: Sat Sep 23, 2006 10:09 am

Post by redmonk »

I agree with the guys! Hudson what are your ideas for the material editor?
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2
Contact:

Post by Kencho »

May I suggest to add all the features as a list in the wiki page? That should be a reference for all the future planning and priorisation.
The idea is that you have those features (requirements), define small tasks to get those features working, and develop each task in small time but completely. That's one of the principles of agile development, by the way, so if you're interested in Scrum/XP, these kind of habits will help you a lot.

Also, by having the project info placed at a single location helps finding the info and enhances visibility for both the developers, other projects' developers, and every of us! :)
Image
User avatar
milliams
Gremlin
Posts: 172
Joined: Fri Feb 16, 2007 1:47 am
Location: Portsmouth, UK
Contact:

Post by milliams »

Maybe have a look at http://www.unrealtechnology.com/screens ... Editor.jpg. Of course it looks similar to the rest of them but it might be good for ideas.
User avatar
Game_Ender
Ogre Magi
Posts: 1269
Joined: Wed May 25, 2005 2:31 am
Location: Rockville, MD, USA

Post by Game_Ender »

If there is an official SOC project for this I should really get my cross platform wxOgre (it aisctually works on Linux!) control out and we also need support for parent/external windows handles on the Mac platform.

Good luck on your editor, and wxWidgets a great choice.
Post Reply