[GSoC 2012] Ideas from community

Threads related to Google Summer of Code

Re: [GSoC 2012] Ideas from community

Postby dark_sylinc » Tue Mar 20, 2012 11:06 pm

Wolfmanfx wrote:* Create a heavy scene to showcase OGRE's performance (which we could use to optimize the culling - maybe a city of boxes)

I'm afraid you will be quite disappointed. Ogre's performance is below other AAAs engine standards (Anvil engine, CryEngine, Frostbite 2)
I'm struggling to get 1.000 of rendercalls @20 fps, while Anvil engine is doing three times those render calls at the same frame rate (in both cases, not being GPU bound)

Profiling reveals the compositor wastes a lot of time parsing the scene manager multiple times (when using something other than render_quad) and there are A LOT of cache misses.

The lack of threaded culling makes this even worse. Furthermore, with DirectX 11 threading model, it's possible to process a scene and batch render calls in multiple threads in a very concurrent way:
  • One thread handles shadow rendering.
  • One thread handles main scene
  • One thread handles environment mapping (i.e. reflections)

Ogre's already struggling to get a high amount of entities in scenes doing main scene's & shadow's rendering in the same thread. When I add env. mapping (one pass, not 6) the amount of cache misses inside the scene manager is gigantic.

I'm afraid, as someone suggested, fixing this may require some strong redesign of the Ogre core. For instance, automatic reference counting of pointers goes against a concurrent system. Singletons don't help (as it's very easy for programmers to make a mistake and access a singleton when it isn't safe to do so)

* Refactor OGRE's Scenegraph to support CHC++ and other advanced techniques (tuan's scenemanager could be used as a base)

The industry is moving away from those fancy "advanced techniques" while going for a more raw-power approach taking advantage of the "buy more CPU cores" trend. And since most of those algorithms tend to increase the number of cache misses, that makes them an uglier option.
Using a software rasterizer for occlusion queries is quite a popular one these days.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
 
Posts: 789
Kudos: 160
Joined: 21 Jul 2007
Location: Buenos Aires, Argentina

Re: [GSoC 2012] Ideas from community

Postby Wolfmanfx » Wed Mar 21, 2012 12:46 am

I am not disapointed at all because i know that OGRE will perform quite bad :) but i think to have a big scene will help to see the hotspots quite easier.
But every big change has to start small.

@CHC++
It would help to get something like up and running (The are test cases out there which show that CHC++ performs twice as fast on consoles in contrast to Hierarchical ViewFrustumCulling).

...software rasterizer for occlusion queries...

Yes true Frostbite/CryEngine have done this and also UMBRA is using this technique.
User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
 
Posts: 1426
Kudos: 98
Joined: 03 Feb 2006
Location: Austria - Leoben

Re: [GSoC 2012] Ideas from community

Postby Mako_energy » Thu Mar 22, 2012 3:32 am

Personally I try to use as little of ogre as I can for my project, using just as a renderer wherever possible. That said anything that enhances the core is where I'd like to see more progress.

@dark_sylinc
+1
I don't really know anything about the technical details of ogre and what all and why things slow it down, but in general if there are area's where rendering performance in a rendering engine can be increased then work should be done there. It does sound like a lot of work the way you described it, but I'm sure that whole thing can be broken down into smaller tasks and one or two of them can be made into really good GSoC projects.

Also in the spirit of using Ogre as "just a rendering engine", I recently posted a Feature Request for making the resource system more modular. In what I use Ogre with, I have a partially constructed resource system that I want to use for all my I/O, which is helpful in general plus gives me complete control for how it integrates with our non-standard threading strategy we have planned.
User avatar
Mako_energy
Halfling
 
Posts: 99
Kudos: 3
Joined: 22 Feb 2010

Re: [GSoC 2012] Ideas from community

Postby Sqeaky » Fri Mar 23, 2012 6:27 am

As much as making tools sounds like a good idea, Ogre is a strong piece of software because it is focused. If tools are made as part of the Core of Ogre then I suspect there will be less attention to rendering performance and quality, something that dark_sylinc pointed out we definitely need more of. I do think the Ogre community should do something more active to foster an environment where people want to make more and better tools, the Apache foundation sure did.

As for all the calls for procedural generation, that really sounds cool, but I think it should be a plugin. I think Ogre Core needs more help at the moment.

I also like the idea of separating out or at least modularizing the resource system. It as a separate library would be really cool and allow it to advance faster without detracting from the high performance rendering that Ogre really should be doing. I do not know how feasible that is, but it would make it easier to create applications that share a larger amount of code. One could remove rendering on the server version of the application, or leave out unneeded loading tools when it is duplicated effort.
Need an alternative to a single threaded main loop for a game: https://github.com/BlackToppStudios/DAGFrameScheduler/
--Sqeaky
Sqeaky
Gnoblar
 
Posts: 24
Kudos: 0
Joined: 19 Jun 2010

Re: [GSoC 2012] Ideas from community

Postby nikki » Sat Mar 24, 2012 8:27 am

Hmm, how interested are you guys in the NVIDIA Optix integration?
User avatar
nikki
Old One
 
Posts: 2729
Kudos: 10
Joined: 17 Sep 2005
Location: Princeton, New Jersey, USA

Re: [GSoC 2012] Ideas from community

Postby duststorm » Sat Mar 24, 2012 3:55 pm

Procedural terrain generation techniques are interesting, but indeed might be better for a plug-in.
It would be nice if such a plugin could work automatically but also allow you to use it with brushes in an editor like Ogitor.
If you are looking for more concrete ideas concerning procedural terrain generation, have a look here: viewtopic.php?f=11&t=68026
It has some really nice ideas.

But.. since this is not core rendering engine related this probably wouldn't qualify all that well for a GSoC project. (of course you could always try, with a well worked-out proposal ;))
User avatar
duststorm
Minaton
 
Posts: 905
Kudos: 79
Joined: 31 Jul 2010
Location: Belgium

Re: [GSoC 2012] Ideas from community

Postby xiaoxiangquan » Sat Mar 24, 2012 4:59 pm

Thanks!
Then I think I should draw my attention to the Terrain System, which is a core business.
For example, generating a extremely large world to test or to show the power of the new Terrain System:
- Paging Component works well ?
- Efficiency of generating global normal maps and light maps( in a background thread )
- LODs and things like this
Then do some enhancement, I think.
xiaoxiangquan
Google Summer of Code Student
Google Summer of Code Student
 
Posts: 102
Kudos: 13
Joined: 20 Mar 2012
Location: China

Re: [GSoC 2012] Ideas from community

Postby duststorm » Mon Mar 26, 2012 2:47 pm

If you want more concrete ideas for a proposal, track down the status of the Ogre::Terrain paging (last year's GSoC project).
I believe it still needs work before it is in a fully useable state (why it didn't go into Ogre 1.8 ).
User avatar
duststorm
Minaton
 
Posts: 905
Kudos: 79
Joined: 31 Jul 2010
Location: Belgium

Re: [GSoC 2012] Ideas from community

Postby Domi » Tue Mar 27, 2012 5:19 pm

I was thinking of real-time fluid simulation using SPH, pretty much similar to what happened here: viewtopic.php?f=11&t=59439

It should come with working surface extraction (probably using the ideas from the NVidia demo), full integration into the Ogre Scenegraph and support for exporting fluid scenarios from editors, such as 3DMax etc.

Naturally, the simulation would have to be done on the GPU, and thus requires OpenCL support (I am thinking OpenCL is the best choice, since DirectCompute and CUDA both are not portable enough).
Of course that limits GPU computing power for the rendering itself, but since physics simulations are expensive, games with a lot of interactive fluids on contemporary hardware tend to be simpler anyway (I am thinking From Dust: http://www.youtube.com/watch?v=1Y8l8kEI354).

Edit: From what I understand, the Ogre core is not supposed to contain any physics simulation. So I am guessing that this or something like an Inverse Kinematics solver would not be too valuable for the project?
Domi
Gnoblar
 
Posts: 1
Kudos: 0
Joined: 27 Mar 2012

Re: [GSoC 2012] Ideas from community

Postby jacmoe » Wed Mar 28, 2012 8:59 am

IK in Ogre would be appreciated by me! :D
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - Ogre project wizards for VC 8-10, Code::Blocks and KDevelop.
OgreAssimpConverter - command-line to convert models to Ogre format.
TwOgreGUI - wrapper for AntTweakBar GUI library.
I accept donations | Me on Google+
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 21024
Kudos: 161
Joined: 22 Jan 2004
Location: Denmark

Re: [GSoC 2012] Ideas from community

Postby duststorm » Wed Mar 28, 2012 9:09 am

jacmoe wrote:IK in Ogre would be appreciated by me! :D

Very good idea!
+1 on IK (Inverse Kinematics) by me ;)
User avatar
duststorm
Minaton
 
Posts: 905
Kudos: 79
Joined: 31 Jul 2010
Location: Belgium

Re: [GSoC 2012] Ideas from community

Postby Transporter » Wed Mar 28, 2012 3:08 pm

Xavyiy wrote:As Thoran and Brocan have suggested, I think finishing the DX11 render system should be the highest priority for this year GSOC. And by finishing the DX11 render system I also mean adding to the Ogre core the needed abstraction classes for dealing with the new DX11/OGL3+ features, which IMHO is a quite hard task if we want to keep the consistency which characterizes to Ogre.

Agree :!: A converter to convert SM3 to SM4 is interesting, because DX11 is not working with SM3. Tessellation and Displacement Mapping would be very nice features which increase the power of Ogre compared to other engines like Torque3d etc.

My second thought was Ogitor, too. But there are already enough comments to that topic.
Transporter
Gnoll
 
Posts: 671
Kudos: 73
Joined: 05 Mar 2012
Location: Germany

Re: [GSoC 2012] Ideas from community

Postby duststorm » Wed Mar 28, 2012 3:18 pm

Transporter wrote:A converter to convert SM3 to SM4 is interesting

I think that would be a more general thing outside of the scope of Ogre.
Anyway it would probably better to support DX11 and skip 10, since all hardware that supports 10 also supports 11, so the duplicate effort wouldn't really pay off.
User avatar
duststorm
Minaton
 
Posts: 905
Kudos: 79
Joined: 31 Jul 2010
Location: Belgium

Re: [GSoC 2012] Ideas from community

Postby Alexiss » Thu Mar 29, 2012 12:49 am

While we're on the water subject, I don't know if this would be elligible as a GSOC project but, I was thinking about porting this http://vertexasylum.com/2010/10/30/gpu-based-water-simulator-thingie/ to Ogre.

This is something I would be interested in applying for, granted it is elligible, and there is some interest from the community.

Video :




The idea would be to tightly couple the water simulation port with Ogre::Terrain, so that anyone can easily add water to its terrain.

I believe it would be a logical extension to the terrain feature, and water is a subject that often comes up in the forums.
Although there already are several excellent solutions (OgreWater, Hydrax, probably others I am unaware of ...), none feature this level of control.


Geometry: I've already delved into the demo source code, and a quadtree is used to display both the terrain and water.
Therefore, it would make sense to use Ogre::Terrain::OgreTerrainQuadTreeNode to implement the water in Ogre.
Shaders: They are all written in HLSL. I would most likely port them to CG for maximum compatibility.
Pre-processing: The demo takes a heightmap as input, so it wouldn't be a problem to make use of Ogre::Terrain float data for water data computations.

Editing: (ie. adding spring sources, viewing the pre-processing simulation, ..) either :
  • Extend the Ogre::Terrain sample to add water editing features
  • Use IWE (Intuitive World Editor) which is a world editor for Ogre I've been working on for several months now.

In regard to IWE, It already features, among other tools, full Ogre::Terrain editing, and would provide a full Terrain editing environment with the addition of water.
I would of course make it FOSS (which is something I am already planning to do, regardless of this).

Let me know what you think !
Alexiss
Halfling
 
Posts: 74
Kudos: 11
Joined: 10 Aug 2011

Re: [GSoC 2012] Ideas from community

Postby jacmoe » Thu Mar 29, 2012 12:21 pm

Would be better if it was integrated with Ogitor - I am highly biased here! - which is open source and has been since it's first release years ago.
I like IWE, but I don't like duplicate efforts. :)
And I like the idea.
Why not submit a proposal?
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - Ogre project wizards for VC 8-10, Code::Blocks and KDevelop.
OgreAssimpConverter - command-line to convert models to Ogre format.
TwOgreGUI - wrapper for AntTweakBar GUI library.
I accept donations | Me on Google+
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 21024
Kudos: 161
Joined: 22 Jan 2004
Location: Denmark

Re: [GSoC 2012] Ideas from community

Postby Xavyiy » Thu Mar 29, 2012 3:45 pm

Hi all!

Well, it has been about two weeks since we knew we was accepted in the GSoC and honestly still there isn't any proposal which in my opinion fits the GSoC idea and the most important: current Ogre needs. (Core-related improvements)

Please, don't take my words as offense words, that's the last thing I want to do.

We've been talking about the fact that Ogre is getting old in this thread: viewtopic.php?f=4&t=30250&start=150#p453778 since dark_sylinc re-started it a week ago, and there're some very good ideas/proposals for redesigning Ogre in general.

Obviously there are too much redesign ideas in this thread, too many for being able to make this huge redesign reality. So ,instead of making this whole redesign at the same time, I want to highlight the following fact: "Lots of cache misses: The way SceneNode creation is handled, is just very memory non-local." , and suggest a GSoC proposal for it.
There is a lot information about this topic in the same thread, specially in the last posts, which can be used as a strong initial point for the proposal, but it can be resumed in:

1. Modify the Ogre SM for pre-allocate big chunks(one per hierarchy level) of nodes, and also of its data: vectors(positions, scales, ...) and matrices, and use this data-oriented scheme for all node-related calculations (respecting almost -or all- the same current Node interface)
2. Add SSE/AVX/NEON optimizations for node transforms, being able to process 4(or 8 with AVX) transforms at the same time. That will need storing some data in SoA instead of AoS, more info here: viewtopic.php?f=4&t=30250&start=175#p454096
2. Little demo app, in order to show the performance boost.

Also, it'll be very cool if dark_sylinc can be the mentor, I think he's the most indicated person.

So, if you are a student and you like the idea, just open a proposal on the forum!

------------

Also I would really like to see a DX11 proposal.

BTW, here is my opinion of current proposals:

Volume Rendering with LOD aimed at terrain ( viewtopic.php?f=13&t=69449#p453641 )
I like the idea of a volume terrain component for Ogre, but ONLY if it gets COMPLETELY finished, well-documented and provides a great sample app.

CHC++ ( viewtopic.php?f=13&t=69415 )
Promissing. Specially if tuan is the mentor (he has a huge experience/knowledge in this field).

Easily moddable Zombie Game Demo ( viewtopic.php?f=13&t=69547 )
I don't think this requires a GSoC slot. The reason for that is that furthermore it's not an Ogre-core related project; it doesn't require a mentor and I also doubt a full modable game with decent art can be accomplished by just one person in the GSoC time-period.

Demo and Improve the Terrain System ( viewtopic.php?f=13&t=69553 )
I like the idea of a random terrain generator component for Ogre, BUT: If, at the end, it's renderer-agnostic... why in Ogre and not as a separated lib?
This is why I would suggest finishing(fixing bugs and fully testing it) the last year GSoC terrain project and giving some less importance at the random terrain genereator part.
This way it could became a very important proposal for Ogre itself (integrate last year GSoC terrain project code + some improvements) and also you'll be able to showcase it with the random terrain generator.

Xavier
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
 
Posts: 845
Kudos: 84
Joined: 12 Apr 2005
Location: Albacete - Spain

Re: [GSoC 2012] Ideas from community

Postby xiaoxiangquan » Thu Mar 29, 2012 5:48 pm

Xavyiy wrote:Demo and Improve the Terrain System ( viewtopic.php?f=13&t=69553 )
I like the idea of a random terrain generator component for Ogre, BUT: If, at the end, it's renderer-agnostic... why in Ogre and not as a separated lib?
This is why I would suggest finishing(fixing bugs and fully testing it) the last year GSoC terrain project and giving some less importance at the random terrain genereator part.
This way it could became a very important proposal for Ogre itself (integrate last year GSoC terrain project code + some improvements) and also you'll be able to showcase it with the random terrain generator.
Xavier


Thanks very much!
I have decided to reduce the work of terrain generation, for example, just implement one simple algorithm to let it work.
Then draw more attention on the improvements, and maybe integrate last year GSoC terrain project code as your great suggestion.
Another idea is to integrate it into ogitor. If someone has tried Far Cry 2's Map Editor, he'll know that is really awesome!

The extension of the terrain generator will be done after the GSoC.

I'll adjust my proposal soon :)
Google Summer of Code 2012 Student
Topic: "Improve and Demo the Terrain System"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: masterfalcon
xiaoxiangquan
Google Summer of Code Student
Google Summer of Code Student
 
Posts: 102
Kudos: 13
Joined: 20 Mar 2012
Location: China

Re: [GSoC 2012] Ideas from community

Postby duststorm » Fri Mar 30, 2012 12:26 pm

I also think, as I hinted to in the topic, that finishing last year's GSoC terrain project and expanding on it is the most interesting.
We first need good support for large terrain before it can be expanded upon.
Of course once it's there there are some really interesting things that could be done with it, for example:
- terrain generation (automatically or using brushes)
- water, rivers
- roads on top of terrain (I've shortly looked into doing an ogitor plugin for this but due to a lack of time I never got far, OgreProcedural could be useful in achieving this too)
...

Most of these things would fit better into an editor like Ogitor instead of Ogre itself. However maybe these functionalities could be offered by abstracted components that can be used by editors like Ogitor.
User avatar
duststorm
Minaton
 
Posts: 905
Kudos: 79
Joined: 31 Jul 2010
Location: Belgium

Re: [GSoC 2012] Ideas from community

Postby xiaoxiangquan » Sat Mar 31, 2012 5:47 am

Proposal updated. Reduce the work of terrain generation, and instead complete last year's terrain project.

Have a look here: viewtopic.php?f=13&t=69553
Google Summer of Code 2012 Student
Topic: "Improve and Demo the Terrain System"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: masterfalcon
xiaoxiangquan
Google Summer of Code Student
Google Summer of Code Student
 
Posts: 102
Kudos: 13
Joined: 20 Mar 2012
Location: China

Re: [GSoC 2012] Ideas from community

Postby Shadowrom » Thu Apr 05, 2012 8:56 pm

First of all, Ogre is great! I really love it and I have lots of respect for the whole Ogre team! Keep on the great work :)

Things i'd like to see done:

:arrow: Refurbish Ogitor and DotSceneLoader and integrate them into Ogre.
:arrow: Finish off DirectX 11
:arrow: NVidia OptiX
Shadowrom
Gnoblar
 
Posts: 2
Kudos: 0
Joined: 04 Apr 2012

Re: [GSoC 2012] Ideas from community

Postby kornerr » Fri Apr 06, 2012 2:38 am

Having read about different core enhancements, I vote for it. Plugins are much less frequently used, but core is the base of everything.
kornerr
Greenskin
 
Posts: 110
Kudos: 5
Joined: 04 Dec 2005
Location: Russia

Re: [GSoC 2012] Ideas from community

Postby UT2007 » Wed Jun 06, 2012 9:50 am

nickG wrote:3)Apex


Not sure what this one is :S

nickG wrote:6)Nvidia Optix integration


This one would be interesting.



Its a kind of physicx, i am sure you will tell it can goes with a plugin :) but here what Apex is, Apex means Nvidia Apex

http://developer.nvidia.com/apex
UT2007
Kobold
 
Posts: 29
Kudos: 5
Joined: 17 Feb 2012

PreviousNext

Return to Google Summer Of Code

Who is online

Users browsing this forum: No registered users and 1 guest