Jump to content
  • Advertisement
Sign in to follow this  
taesen00

OpenGL OpenGL for high school

This topic is 4350 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

At the high school where we work, I have been approached about offering a class in Computer Graphics for the students. Initially, I felt this topic would be too advanced, but my students are pretty smart. I think I'll be cutting out a lot of the theory and mathematics involved and focus more on OpenGL programming. Each student that takes this will need to have completed (with an 85% or better) our Introduction to Computer Science class, which is the equivalent of a Programming I and II university classes. I don't believe OpenGL will be much trouble for them. Right now, we use Microsoft's Visual C++ 2005 Express as our IDE and compiler. Naturally, we use C++ and will do so in the Graphics class. Any suggestions or ideas on this class? Anything from projects, structure, general implementation is welcome. I had a thought of using Nehe's tutorials from nehe.gamedev.net, but it's been said that that may be too advanced initally. Text wise, I'm planning on using the red book, but I welcome any further suggestions.

Share this post


Link to post
Share on other sites
Advertisement
I think the redbook should be used like a text book and you should adapt the NeHe tutorials into lesson plans... I am at high school age and learnt opengl from NeHe's tutorials.

Share this post


Link to post
Share on other sites
I don't think you should use NeHe's actual code as basis, although the progression of the tutorials is probably acceptable for a lesson plan.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by taesen00
I think I'll be cutting out a lot of the theory and mathematics involved and focus more on OpenGL programming.



I really think that a good understanding of the Theory (and math, but theory moreso) is important for effective use of OpenGL.
Far too often beginners get into trouble when the know how to copy and paste opengl api calls from tutorials, but really have no idea what's going on behind the scenes. ("why won't my rotations work in the right order?",etc)

If I remember correctly, late HS is about when students start learning about matrices and linear algebra; both of which tie directly into the math and theory behind opengl. It's a perfect opportunity to illustrate to them the practical usage of the stuff from math class...

Share this post


Link to post
Share on other sites
I would start off by showing advanced concepts. Describing arictecture first, going through open sourced engines(Quake 1). I would skip some of theory, but still apply basic concepts. Example rendering triangles, creating a cube, etc. Then I would jump from there to loading BSP trees. For a high school class, I don't think its important to manually draw worlds, or shapes in general.

One thing thats important is to see the relationship between Level editors and a opengl renderer. Stick with simple lighting such as pre-generated lightmaps, and bring UP OpenGL shaders, say what there used for, and make students learn that on there own if they wish. Offer it like extra credit. Students should know how lists work, and same with extensions.

Once your past the basics, you should know introduce a pre-done framework that does logging, file handling, etc, sense that stuff is not exactlly what that class is all about.

Translating worlds is important, for camera movements. It seems like this would be a AP level class, so I don't think its unreasonable for students to adding a gaming layer on there own to pass commands to a rendering class.

Thats just some ideas, I would require the students to demonstrate they know C++ kind of fluentlly and know OOP. They should know strong concepts of pointers as well, and how memory is used.

If its a year class I would keep more of theory, but if its a semester class, your going to need to drop alot of the nit picky stuff. it is very important to know what is going on behind the scenes, but it should be more of a college class that fills in those gaps, while you just go over some of those gaps if that makes sense.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by eviltwigflipper
I would start off by showing advanced concepts. Describing arictecture first, going through open sourced engines(Quake 1). I would skip some of theory, but still apply basic concepts. Example rendering triangles, creating a cube, etc. Then I would jump from there to loading BSP trees. For a high school class, I don't think its important to manually draw worlds, or shapes in general.

One thing thats important is to see the relationship between Level editors and a opengl renderer. Stick with simple lighting such as pre-generated lightmaps, and bring UP OpenGL shaders, say what there used for, and make students learn that on there own if they wish. Offer it like extra credit. Students should know how lists work, and same with extensions.

Once your past the basics, you should know introduce a pre-done framework that does logging, file handling, etc, sense that stuff is not exactlly what that class is all about.

Translating worlds is important, for camera movements. It seems like this would be a AP level class, so I don't think its unreasonable for students to adding a gaming layer on there own to pass commands to a rendering class.

Thats just some ideas, I would require the students to demonstrate they know C++ kind of fluentlly and know OOP. They should know strong concepts of pointers as well, and how memory is used.

If its a year class I would keep more of theory, but if its a semester class, your going to need to drop alot of the nit picky stuff. it is very important to know what is going on behind the scenes, but it should be more of a college class that fills in those gaps, while you just go over some of those gaps if that makes sense.



Yeah... if you want to teach them to be a bunch of Modders
I suggest a more 'academic' approach. There is more to OpenGL than first person shooters. Why not delve into the field of Scientific Visualization?

a simple first lesson might be:
given this Real topographic elevation data, let's create a 3d model of this section of land; and color code it based on elevation.
Now lets color it based on the slope of the land. Combine that data to decide what locations the following type of tree can grow, now render the trees(simple billboards).
Doesn't that sound much more educational than "lets learn how to load a quake map"?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
...
and as a Special Surprise, at the end once the 'serious' landscape task is finished, introduce them to moving the camera via mouselook, add simple collision detection, and let them 'walk' across it - the beggingings of a simple first person shooter.

Share this post


Link to post
Share on other sites
Start showing them some features that will motivate them to use OpenGL (no in depth explanation, just showing what is possible).

Then start with the basics: setting up an application, render a triangle, render some more complex object, moving objects around (simple matrix ops) etc.
It doesn't make sense to jump right into advanced concepts like level loading or BSP-Trees if they won't even have an idea of what they mean and what is behind them.

Your students should be familiar with matrix and vector math to some degree but you could show them how to do transformations and why the order of transformation is important (like scaling x rotation x translation).

Then if they got the basics start a course project by developing some simple engine (for whatever purpose you want). Have the students discuss features and possible implementations. Teach them application architecture and have them make a decision on which architecture to use.

Overall, you should always try not to have too long boring periods in which only theory or basic coding (code that doesn't have any conceivable use for the students) prevails. Try to keep them motivated by having them experience their own little successes until they master the basics. Then they should be able to start the engine project.

At the end of the class you finally could propose writing some term papers on advanced concepts like BSP-Trees, SceneGraphs etc. and have the students implement them into their engine. Up to then they should have the knowledge they need to dig further into 3D design.

Share this post


Link to post
Share on other sites
if u do go with nehe
make sure u go with the glut version + not the win32 version

download both versions to see why

certainly better than what i got at school http://en.wikipedia.org/wiki/Logo_programming_language

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!