Page 1 of 1

[GSoC 2011] - Overall OGRE Development

Posted: Sat Apr 09, 2011 7:51 am
by Shaun
Personal Details

Name : Shaan Repswal
E-mail :
OGRE Forum Username : Shaun
Skype ID : shaun.reapswaal

Project Proposal

My work on the OGRE will be the addition of various features not only one specific area to concentrate on but different areas of interest for different types of users of the OGRE. I plan to optimize the core OGRE functionality by looking into and changing the core code, it will be a challenge and I like challenges. Apart form that I want to completely add support for the requested features in the "Help Requested" page of the OGRE wiki.

Working in different areas of the OGRE will benefit a broad scope of users specially since some of these users are regularly using it for their work (Reffering to the people who've requested for help in the wiki). And then there are certain features that I want to work on because of my own passion for the engine. Some of these features in my mind are from the core OGRE and other are extension modules.


I've picked up every single bit of work on my project which I strongly feel I want to work on and would greatly increase the workability, efficiency, user-friendlyness and in overall help in the development of the OGRE project as a whole. Now all this means a lot of work. And naturally I will not be able to complete everything, however my approach will explain as to how there is so much that I have picked up despite the fact that it may even seem unrealistic to some people out here. I will make a list of all the features that I want to work on as conceptualized entities in a list which is sorted out top-down priority-wise. That way I will be able to complete as much as can be done rather than completeing a few features and then calling it done.

The List

1. Completely go through all the mathematical functions, classes, processes/entities in the OGRE. And optimise them using shorter and better mathematical algorithms and formulae. Optimize code as well ----- (This is something I really want to work on as OGRE has beenin development for more than 10 years and the industries using with application for the OGRE have developed in themselves with respect to better practices by leaps and bounds. And so I'm sure that there are many areas in OGRE which can use revamping)

2. Terrain Manager and Generation
• More material generators. Fallbacks for different cards, detail texturing, rayleigh scattering
• Vertex compression
• Optimisation of the processed terrain page data file

3. Dual-quaternion skinning
• Implement dual quaternion skinning as an option for hardware skinning
• Expose support for this in vertex programs
• RTSS implementation for generating shaders

4. Add support for Google Maps and other web-based features in OGRE so that programmers can use features of google apps from "inside" the OGRE

5. Texture streaming

I thought texture streaming was already there, but when I checked out the help section I realized that it isn't. It's a pretty much standard thing in all game engines now and also other graphics rendering packages. So no problem I'll work on this as well.

This feature should support:
• Loading just the lowest N precalculated mipmaps from a DDS file as a low LOD texture, then loading the upper mips into a new texture (copying the lower mips into it)
• Alternatively, loading the LODs from 2 different textures, or loading from one high detail texture and shrinking during load for the low LOD (the least favourable option)
• Background thread processing of the above
• Material / texture unit enhancements to support configuring the above
• Shaders for fading between low/high detail (RTSS)

6. Animation frame callbacks
• Enhance the .skeleton format to include frame events in animations
• Allow listeners to be registered on AnimationState to receive event notifications
• Events raised must be aware of interpolation (skipping over the event, time distances)

These were the Primary features that I want to add. If the primary work is done. The project is a success. But I want to add other features as well. Eventhough I will not be able to do everything. I want to strive to do as much as I can.

7. Imposters
• Automating the process of creating imposters, ie rendering a sub-scene to a texture to use on a billboard to reduce rendering complexity. Should include detecting when the view needs updating due to the camera changing position, camera mirroring and multiple cameras.
• Impostor Geometry with Relief Textures

8. CHC/CHC++ Utility Framework
• Create an implementation of CHC/CHC++ that is usable with any hierarchical scene structure (ie not SceneManager specific, but usable from any hierarchical scene structure)

9. Scene Manager: Hybrid tree ------------------------- (Reeeally like this idea, but I think in terms of general user benefit the primary ones are more important at this stage so I will work on this if I get through them in the first month)
Hybrid tree implementation allowing for spatial partionning to be composed of various subtree part (octree, kdtree, aabbtree, quadtree) optimizing static geometry using best partionning possible.

8. Binary format support for scripts
Serializing materials, shaders, particle systems, compositor chains and such to a binary format. Meshs and all I get that part well.

9. A unit testing framework
An infrastructure that will enable us to define tests for OGRE and run them one after the other so we will know that status of the version, because OGRE is mainly graphic - a part of the infrastructure will be to enable running the test in a "record" mode to record a positive state - and take a screen shot, this screen shot will be compared to the result of the same test running in "test" mode.

10. Off-Screen Particles ------------- This is not long and it is simple. I might just take a break after this xD
Implement "GPU gems 3. Chapter 23. High-Speed, Off-Screen Particles" - ... _ch23.html

Why You're The Person for this Project
I'm a proficient programmer in many lanuages. Meaning I'm really good with C/C++. Code optimization, shorter algorithms etc I have experience in all of them. I may not be as good as the guys in the core development team of the OGRE. But I'm still really good and every year my skills become more stale I'm looking for some "real" work. It's "very" boring to have to make lame library management systems for college projects. I don't even feel like programming becauseof that sometimes, it sucks the drive out of me. So more or less this is something I've searching for for a long time, which means that apart from being efficient I will work a lot as well. I have no commitments in the Summer, and getting bored at my parents place with a boring part-time job, isn't a very fruitive activity that I'm passionate about. This gives me something to work on full-time. Plus I don't know many people in the city, my parents live in (which is where I will be in the Summers) and have no social life there. So that in itself gives me more time to work on my OGRE project. I work in the summers to pay for my college, and many times I don't like the job. But this is the perfect oppurtunity for me. I get to program full time as long as I want to "and" I get paid for it. I am very good at math. I also know a great deal of vedic mathematics, which is something I'm dying to apply here!

There was a time in my school, when I was learning C++ in the syllabus it was more than 3 years ago in my eleventh grade. I was so fascinated I always wanted to learn how to program that I took the book "Turbo C++" by Robert Lafore and finished it completely within the first two days (I missed school, ate, slept and learned C++). When we had to submit a project and it could be anything we liked. I decided to make a game. And I worked more than 9 hours in the worst-case scenario everyday, learned about the ax, bx registers and learned to make interrupt call to the BIOS. I made my own little sound driver. And created a game to click on little dots before they vanish to help increase hand-eye coordination in kids and increase performance for gamers who like to play FPS games. It had a lot more to it than clicking dots of various sizes and colours so it "was" pretty unrealistic at the time. However I finished the project in a little more than a fortnight. I love code.

I don't think I could ever be in a better position to work on this.


When I was a small kid around 5th grade I think. I was fascinated by the idea of hacking and being able to control massive flows of information around the world using the internet. The internet in itself was a supermassive booming entity back then, we didn't have the fastest internet connection in the world at the time, it was a Dial-Up connection which made funny noises with the MODEM xD And the maximum download speed I ever got on it was 3 KBps lol xD. As I learnt more about hacking, I came to a cross-roads of ethic and learnt other things about white-hats and black-hats at the time irc was not as polluted as it is now and a lot more people use to use it as well. And from white hats I slowly started learning about the Open-Source movement which was growing in momentum and still does till date. People coding free software for everyone to share. And I know quite a few suck folk myself. All of this had a tremedous impact on me at the time, I was still only a 6th grader. So almost four years ago when I wanted to create hardcore games, battle/war simulations. I came accross the OGRE. It wasn't "factually" the best, but it was free, opensource and in development for more six years, so it "was" the best for "me" :P . I took to it like a mosquito to blood. However at that time I couldn't spare the time, so learning it was a slow process. But eventiually I did. And now I can afford and want to be a part of the development team.

Anything Else

I am aware that my application submission is a few hours late. But it's my earnest request that you please consider my project proposal. I guarantee you that you will not regret this decision. Thank you.

Re: [GSoC 2011] - Overall OGRE Development

Posted: Sat Apr 09, 2011 8:18 pm
by spacegaier
Shaun wrote:I am aware that my application submission is a few hours late. But it's my earnest request that you please consider my project proposal. I guarantee you that you will not regret this decision. Thank you.
AFAIK, it is not up to us but the deadline was set by google. So I guess there is no way in this year anymore, I am sorry.

@Noman: Or am I missing something?

Re: [GSoC 2011] - Overall OGRE Development

Posted: Sat Apr 09, 2011 8:37 pm
by Noman
Yes. Google set the deadlines, and we can't accept you even if we wanted to.

This also looks like a rough copy/paste from the "Help Requested" section, which is not a well thought-out way to submit an application.

Re: [GSoC 2011] - Overall OGRE Development

Posted: Mon Apr 11, 2011 10:30 am
by Shaun
It's okay guys. I tried even though I was late so I won't get choked up about not having tried and ponder about the possibilities if only I had tried. And that is a good consolation prize in itself ;) And as for the copy-pasted section on my application, it was intentional. You know like when an assignment is given to you, you look at it, as it is? I put that stuff on my application because it was requested by the community. I could have changed the words and kept the same meaning. But I feel that the copy-paste approach is more practical for addressing anomalies and requests by the community. It feels like your looking at the original thing. You know what I mean?

Besides I can always give you guys a shoulder by being part of the community and helping development as a non-commissioned developer, even though I would have lesser time. I'm just glad that you guys replied.

Re: [GSoC 2011] - Overall OGRE Development

Posted: Mon Apr 11, 2011 11:07 am
by jacmoe
You are welcome to apply next year. Provided that we are accepted. :)

Re: [GSoC 2011] - Overall OGRE Development

Posted: Mon Apr 11, 2011 12:12 pm
by spacegaier
Shaun wrote:Besides I can always give you guys a shoulder by being part of the community and helping development as a non-commissioned developer, even though I would have lesser time. I'm just glad that you guys replied.
You are always welcome to do that. Best way to start is by tackling first small items from our bug tracker and provide a patch for them, that will then be reviewed by a team meber and applied to our code base if approved. More information about the process and the needed links can be found on our front page.

Re: [GSoC 2011] - Overall OGRE Development

Posted: Tue Apr 12, 2011 5:00 pm
by Shaun
Spacegaier, I sure will man ;) But for now I got my exams to take care of. My Semester ends this 4th of July. You will see some major contributions from me right then and there. And by the way, Could you guys give me a briefing on OGRE's architecture? I want to know what it's base is so that I know what all to learn up on if I want to change the core code of the OGRE. OGRE uses two different pipelines for it's rendering, right? One is the DirectX pipeline and the other is the Opengl pipeline right? And are you guys worried about the fact the Opengl as of late does not boast the rendering capabilities that DirectX does? I think instanced rendering is one of those. What libraries do you guys use to code the real thing in OGRE?

And thanks jacmoe and Spacegaier, I feel a lot better now :D

Re: [GSoC 2011] - Overall OGRE Development

Posted: Tue Apr 12, 2011 5:03 pm
by Shaun
And I'm sure we're gonna make it to GSoC next year as well ;) Let's just show them we're more than worthed this year. Let's aim to make the OGRE better than some of those proprietary Game engines or rendering engines out there, maybe even better than cryengine. :P hehehe! I can be a little ambitious sometimes xD

Re: [GSoC 2011] - Overall OGRE Development

Posted: Tue Apr 12, 2011 5:28 pm
by spacegaier ... chitecture

Yes, Ogre usses the two mentioned renderes underneath. But I have no clue of the details. Never realy digged deep in the Ogre code base myself...

Re: [GSoC 2011] - Overall OGRE Development

Posted: Thu Apr 14, 2011 9:28 am
by Shaun
I'll check it out. Thanks man ;)