[SoC 2008] Ogre Material and Shader Library

Threads related to Google Summer of Code
Tenttu
Halfling
Posts: 74
Joined: Mon Dec 13, 2004 1:56 pm

Post by Tenttu »

Unfortunately my proposal did not get accepted.

However I'll be writing this during the summer, but financed through our company. But I can't make it available to the public, atleast not with the same license.

Highway
Halfling
Posts: 54
Joined: Sat Mar 08, 2008 8:53 pm

Post by Highway »

How it is possible to use #include in a CG shader. I try to use a modular approach, but it never finds the included file. Can someone help me out on this issue?

Tenttu
Halfling
Posts: 74
Joined: Mon Dec 13, 2004 1:56 pm

Post by Tenttu »

The file you want to include has to be in one of your resource locations.

User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16
Contact:

Post by KungFooMasta »

Unfortunately my proposal did not get accepted.
:(

I was looking forward to this too!
Creator of QuickGUI!

User avatar
FrameFever
Platinum Sponsor
Platinum Sponsor
Posts: 414
Joined: Fri Apr 27, 2007 10:05 am

Post by FrameFever »

Tenttu wrote:Unfortunately my proposal did not get accepted.

However I'll be writing this during the summer, but financed through our company. But I can't make it available to the public, atleast not with the same license.
What the hell??? :evil: What was the reason?

that was the best project this year, which could be really usefull for Ogre.
...wait I will call Sergey, there must be a mistake.

User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16
Contact:

Post by KungFooMasta »

that was the best project this year, which could be really usefull for Ogre.
Yah I thought so too.. (not to be negative about other projects, but this is obviously the project which would have most impact on Ogre users, not everybody knows how to use shaders and has an artist to write them..)
Creator of QuickGUI!

Tenttu
Halfling
Posts: 74
Joined: Mon Dec 13, 2004 1:56 pm

Post by Tenttu »

I would have a radical suggestion, on how this project could be done.

A system like chipin would be used to collect funding for the project and at certain milestones part of the project would be released. The speed of the development would be dependant on the funding.

A creative commons license probably would suit fine for this kind of library. Such as http://creativecommons.org/licenses/by-sa/3.0/

The milestone schedule would probably be something like:
0-500$ - Basic framework.
501-1500$ - Advanced shadow and lighting materials.
1501->$ - Everything

A preliminary list of effects that could be in the library can be found at:
http://iceflakestudios.com/tapanivalkonen/matlib.pdf

I am currently writing complete design/plan document for the project and it will be ready in the near future. As it's not ready yet, this post is just an announcement for what can be done if there are enough interested users, atleast on irc the reception was good.

User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16
Contact:

Post by KungFooMasta »

If there are a lot of others interested, it would be worthwhile. (meaning I can only contribute a little, haha)

Also, would deliverables include documentation, for example "Intermediate Tutorial 7"? This way everybody would be able to benefit from it, especially newcomers that ramp up to speed using the tutorials.
Creator of QuickGUI!

User avatar
FrameFever
Platinum Sponsor
Platinum Sponsor
Posts: 414
Joined: Fri Apr 27, 2007 10:05 am

Post by FrameFever »

@Tenttu

I don't like this Idea, that is not what OpenSource means.

I mean Steve has also not asking for money, when he starts programming Ogre. Now you have to make the first step.

When you program this shader and make it Open Source under the LGPL, you will give something huge back to the community. Thats what opensource is for.

Tenttu
Halfling
Posts: 74
Joined: Mon Dec 13, 2004 1:56 pm

Post by Tenttu »

KungFooMasta wrote:If there are a lot of others interested, it would be worthwhile. (meaning I can only contribute a little, haha)

Also, would deliverables include documentation, for example "Intermediate Tutorial 7"? This way everybody would be able to benefit from it, especially newcomers that ramp up to speed using the tutorials.
The documentation for sure would be an important part in the project. Of cuorse the quality of the result has to be greater in a project like this and also the progress should be shown with screenshots, plans etc.
FrameFever wrote:I don't like this Idea, that is not what OpenSource means.

I mean Steve has also not asking for money, when he starts programming Ogre. Now you have to make the first step.

When you program this shader and make it Open Source under the LGPL, you will give something huge back to the community. Thats what opensource is for.
Actually Ogre wouldn't be close as great as it's currently without the numerous donations from the ogre users.

I understand your point, but I don't agree with it. What funding gives you is shorter development time and more finalized projects. Imo this is definately missing from most of the great ogre addon project, they are initially ready, but not ready for prodution use. With donations the authors could put alot more time into them.

This kind of shader library would take year/s to be developed if done only couple hours a day, in a normal open source fashion. Thats why noone has done it. The funding would help to squeeze the time into months as it would allow me to work full time with the project.

There is also recent and very good example where this kind of method has worked. A joomla <-> phpBB3 bridge was written in this way, before this project the integration attempts had being very hacky and unstable.
http://rocketwerx.chipin.com/rokbridge

User avatar
FrameFever
Platinum Sponsor
Platinum Sponsor
Posts: 414
Joined: Fri Apr 27, 2007 10:05 am

Post by FrameFever »

I would suggest to make a poll in the general forum.
something like "Does Ogre need a standard shader material library?"

In the GSoC Forum are not so much users that can view your request.

Would be interesting to read what Sinbad will say to this problem.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

On the acceptance issue, if we had the option we would accept every good GSoC application, but we have a limit. For what its worth, had we had one more slot from Google this would have been accepted.

The fact that NVIDIA, ATI and others already maintain shader libraries, which are not that difficult to use in your Ogre apps, was a factor in the relative ranking. A pre-built shader library would be useful yes, but when there are too many applications to accept some have to lose out, and core features tend to be preferable to content. And to be frank, a prebuilt library would help people get started, or those unfamiliar with shaders, but most people using Ogre at a serious level end up writing / customising their own shaders anyway, we're not at the stage yet where a generalised approach scales all the way up. Not that it isn't useful, but tough decisions had to be made.

As for the money element, hey, welcome to the real world. People give their time freely to open source, but in that time they will do what they want. I created Ogre because I wanted to, hence why getting paid wasn't an issue. However, with less free time these days I can't guarantee to do everything the community wants - and if there's something specific and time-consuming that I personally don't assign a high priority to, the only way you'll get me to do it quickly is to pay me.

As for documentation etc, when it comes to features I add I tend to document them well because that's my style, but someone else might not like doing that. If you're not paying them, you can't complain about the result - you get whatever they are willing to freely give, and thank them for it. In our free time, everyone is entitled to do just what they're willing to do; there's some give and take certainly, I make time to do things I don't particularly want to do sometimes just because I want to help someone, because I like their project, or they've given things back to the community too, etc. But I'm also quite happy to ignore people's requests when they don't suit me - my free time, my rules :) It's the same for everyone.

If you don't want to do something enough to do it in your free time, that's your own business and IMO totally unassailable. Sometimes it's not that you don't want to, it's just that you have 20 other things you could be doing with that time (e.g. a family, leisure time, other projects) so something has to give. For me, payment allows me to spend more time during the day on it - I already do quite a lot of unpaid work in my day time for Ogre (right now in fact), but I have to draw a line somewhere, or I'd be destitute - payment makes a 'space' where I can do that work or bump it up the priority list. Otherwise, I'd have to be doing something else that *does* earn money in that time.

So saying money isn't a factor in open source is wrong. There are lots of people who get paid to work on open source - and that way, some of the less fun jobs get done. Volunteer work and commercial work can absolutely co-exist. I feel an obligation to this entity I created so I probably do more of the 'non fun' stuff than I otherwise would - but it's all about motivation. Money can sometimes be a necessary motivator, at some times and for some things. We prefer naked enthusiasm of course, but that can only go so far before the coffee and bisciuts need paying for again :)

Tenttu
Halfling
Posts: 74
Joined: Mon Dec 13, 2004 1:56 pm

Post by Tenttu »

A plan for the project is now available at:
http://iceflakestudios.com/tapanivalkonen/matlib.pdf
sinbad wrote:The fact that NVIDIA, ATI and others already maintain shader libraries, which are not that difficult to use in your Ogre apps, was a factor in the relative ranking. A pre-built shader library would be useful yes, but when there are too many applications to accept some have to lose out, and core features tend to be preferable to content.
The shader libraries of NVIDIA, ATI etc are a good base to write your own shaders. Shader library within ogre that is extendable and automaticly works on all lighting and shadow conditions etc is exactly what Ogre does for fixed function rendering. Both of them would wrap low level graphics functionality into higher level interface.

I understand the selection of this years GSoC projects. Mentors also have a lot influence in the selection process.
sinbad wrote:And to be frank, a prebuilt library would help people get started, or those unfamiliar with shaders, but most people using Ogre at a serious level end up writing / customising their own shaders anyway, we're not at the stage yet where a generalised approach scales all the way up.
All of the available modern commercial game engines, such as CryEngine 2, Unreal Engine 3, Soure Engine etc, offers a library of shaders that is extendable. On those platforms there is no point on rewriting the shaders for every game developed with them. This shouldn't be any different with Ogre. Writing shaders from scratch to every project can be compared to writing of DirectX or OpenGL wrapper for every project.
sinbad wrote:we're not at the stage yet where a generalised approach scales all the way up.
I disagree. The ogre material/shader system is rarely used to even close to it's full extent. Of course there are things that could be done for it to make things even better, but it's definately possible to use the current system for general solution. No one just hasn't done it or released their work to the public.

Post Reply