Re: [osg-users] Teaching an intro to graphics course

2008-11-14 Thread Simon Hammett
I'll have a look this weekend. ty.

2008/11/14 Wang Rui [EMAIL PROTECTED]:
 Hi Simon,

 As Alberto Luaces said, there is an external library for OSG to support
 various polygon technologies, osgModeling
 (http://code.google.com/p/osgmodeling/) is completely new work and not
 familiar to others. But there have been already Bezier, NURBS, extrusions,
 revolutions (constructed by a profile rotated specified angles) and lofts
 (constructed by lofting a series of curves that define the cross section on
 a specified path) functions, also the boolean operation based on BSP tree of
 geometries.

 A future version will conclude the subdivision function (Loop and Sqrt3, and
 easy to add more) and a new NormalVisitor with 6 methods to calculate the
 weights and generate normals. It will be released in 1-2 weeks but you could
 check out the SVN version now.

 Hope it will help if you have a similar plan. The project is LGPL and you
 may use it freely, although tons of bugs in it at present. :)

 Wang Rui


-- 
The truth is out there. Usually in header files.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-13 Thread Alberto Luaces
Hi, 

did you miss the osgModeling project from Wang Rui?

http://article.gmane.org/gmane.comp.graphics.openscenegraph.user/34981/match=osgmodeling

http://code.google.com/p/osgmodeling/

El Sábado 08 Noviembre 2008ES 02:09:42 Simon Hammett escribió:
 2008/11/7 [EMAIL PROTECTED]

  Thanks Simon,
 
  A CSG library would be a great idea to work on.  I needed one of those
  for some work I did with Northrop Grumman.  The generalized extrusion
  function is cool too, maybe for a single student or as a feature of the
  CSG library.  I didn't look too deeply, but does the gts library work
  with OSG?
 
  -- Rick

 Err, I don't think so.

 I only did a really quick look (read: google search) to see if there
 was a suitable library
 for my particular needs that would feed OSG, but drew a blank.

 Taking the output of GTS and feeding that into OSG is probably trivial,
 but I think writing the mesh generators that input to GTS in a nice way,
 with good LOD support and decent documentation would be a fair amount of
 work.

 I'm working on a CAD related library for work purposes which has an end
 of year deadline, so I can't afford to get bogged down with an immature
 project.

 For my needs I'm just going to write the small sub set of generators
 (e.g. cylinder, box, polyline/contour extruder) I need that output
 directly into OSG even though
 I'm just going to be duplicating stuff that's almost certainly been
 done many times before.

 From a style point of few, I'd like to see a CSG library that emulates
  boost,

 more than OSG. OSG needs to support a more restricted compiler environment
 than boost aims for; as such it has to avoid the special template tricks
 that boost makes
 extensive use of.

 Mind you a proper boost style template library is probably far beyond
 most students.

 From your other email:
  Like I mentioned, I would really like to start off with OpenGL and then
  show how OSG helps.

 Thinking back on my computing related education I think if I wanted to
 teach computer graphics myself I would do it the other way round to you.

 I would start off by playing TF2 for half an hour with them and
 then firing up the source:sdk  and Hammer and showing them the level
 design and the
 model editors.

 Then go back from that to show how OSG can make those things
 happen and then tag on a bit of the lower level OpenGL stuff right at the
 end.

 For the really bright students it doesn't matter which way round you do it,
 but for the less interested boring them to death with low level details
 isn't going to help them. :)

 Good luck with the course.

 --
 The truth is out there. Usually in header files.
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-13 Thread Wang Rui
Hi Simon,

As Alberto Luaces said, there is an external library for OSG to support
various polygon technologies, osgModeling (
http://code.google.com/p/osgmodeling/) is completely new work and not
familiar to others. But there have been already Bezier, NURBS, extrusions,
revolutions (constructed by a profile rotated specified angles) and lofts
(constructed by lofting a series of curves that define the cross section on
a specified path) functions, also the boolean operation based on BSP tree of
geometries.

A future version will conclude the subdivision function (Loop and Sqrt3, and
easy to add more) and a new NormalVisitor with 6 methods to calculate the
weights and generate normals. It will be released in 1-2 weeks but you could
check out the SVN version now.

Hope it will help if you have a similar plan. The project is LGPL and you
may use it freely, although tons of bugs in it at present. :)

Wang Rui


2008/11/8 Simon Hammett [EMAIL PROTECTED]

 For me Geometry handling and generators.

 I've spent part of today writing a generalised extrusion function but I'd
 be highly
 surprised if this hasn't been done 10,000 times already.

 I couldn't find such a function in osg.

 If it is there, then maybe you could get your students to help with
 the documentation in the code and on the website. ;)

 Also a high level CSG library would be fantastic.
 I'm doing CAD stuff and it would be so much faster if I could just specify
 things like 'intersect a cylinder with this box'

 This might be relatively straight forward, if the CSG library generates
 meshes to feed to:

 http://gts.sourceforge.net/

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread Simon Hammett
For me Geometry handling and generators.

I've spent part of today writing a generalised extrusion function but I'd be
highly
surprised if this hasn't been done 10,000 times already.

I couldn't find such a function in osg.

If it is there, then maybe you could get your students to help with
the documentation in the code and on the website. ;)

Also a high level CSG library would be fantastic.
I'm doing CAD stuff and it would be so much faster if I could just specify
things like 'intersect a cylinder with this box'

This might be relatively straight forward, if the CSG library generates
meshes to feed to:

http://gts.sourceforge.net/


2008/11/7 [EMAIL PROTECTED]

 Hello All,

 I am going to be teaching my first semester as a part-time adjunct
 professor at BYU-Idaho.  I am really EXCITED!  We will be teaching an intro.
 to graphics course that has not been taught before at this school.  Our
 focus will be on juniors and seniors wanting to get out in the industry and
 do something.

 Our thought is to take a direction slightly different from the traditional
 graphics course that works students through writing their own low level
 graphics operations through writing their own phong shader and rudimentary
 ray-tracer.  We know we need to teach the fundamentals with vector and
 matrix math, etc. (a linear algebra class is already set as a
 pre-requisite), but our thought was that we could focus on OpenGL and teach
 how these concepts are important even while working on this relatively high
 level API.

 Once we have the fundamentals down and an idea of how OpenGL works, I
 wanted to introduce the students to OSG and how a scene graph helps.
 Another big goal is to teach them how to participate in an Open Source
 community.  Ultimately I would like to have the students work on final
 projects that they might be able to submit to the cause.  There are SOOO
 many great things they could learn from this effort.  I hope we are not
 trying to shove too much into a 3 credit hour class, but I am excited to see
 how it goes.

 So, we have a few ideas about the things I think we should cover, but I
 would love to get some feedback from this great community about things that
 you would teach in this kind of course.  I know I want to introduce them to
 the coding standards and the submission guidelines you have on the website.
 Are there other things we should consider on that front?  (should we
 pre-screen the submissions before we send them off to you?).  What kinds of
 projects would you recommend the students might be able to work on?  The LWO
 and LWS readers are near and dear to my heart, so I was going to have them
 work on features there, but I am certainly open to suggestions.

 Thanks,
 -- Rick

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
The truth is out there. Usually in header files.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread Paul Martz
Hi Rick -- Congrats, this sounds like a great undertaking.
 
I have somewhat similar plans you might be interested in. My intent is to
set up an internship program with CU Boulder and take in two interns
starting in January. While I will expect real work out of them (to be open
sourced, either as an OSG contribution or a standalone project), I also
intend to teach them 3D graphics. Like you, I'll focus on using the
higher-level API, and only teach the low-level stuff as a means to
understanding the end.
 
Like you, I'm also afraid that this will be like drinking from a fire hose
-- way too much material for a semester-long internship. Hopefully, if the
interns do well through the January-April semester, I can convince them to
stay on over the summer and really put to use what they've learned for solid
code production.
 
Between the curriculum Bob Kuehne and I have developed for out OSG courses,
and the material I intend to create for this internship program, I hope to
finally have enough material to create the long-awaited OSG Programming
Guide book.
 
On the subject of final projects suitable for a semester course...
 * A set of replacements for the ShapeDrawables that use Geometry as their
base class. The benefit would be that code could easily access and modify
the vertices, they could be exported to FLT, etc.
 * A new polygon decimator that can remove boundary vertices (a limitation
of the existing osgUtil::Simplifier).
 * I've always thought it would be useful to write an export osgPlugin that
dumps out an HTML document per node, with the document displaying info about
that node and containing links to parent/children/siblings. This would be a
great analysis tool for any OSG developer.
 * Finally, there are always several new OpenGL extensions that could be
implemented in OSG... How about a Drawable that supports ARB_draw_instanced,
for example?
 
Let's keep in touch as our two programs progress.
 
Paul Martz
Skew Matrix Software LLC
http://www.skew-matrix.com http://www.skew-matrix.com/ 
+1 303 859 9466
 
 



  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Friday, November 07, 2008 12:26 PM
To: osg-users@lists.openscenegraph.org
Cc: [EMAIL PROTECTED]
Subject: [osg-users] Teaching an intro to graphics course


Hello All,

I am going to be teaching my first semester as a part-time adjunct professor
at BYU-Idaho.  I am really EXCITED!  We will be teaching an intro. to
graphics course that has not been taught before at this school.  Our focus
will be on juniors and seniors wanting to get out in the industry and do
something.

Our thought is to take a direction slightly different from the traditional
graphics course that works students through writing their own low level
graphics operations through writing their own phong shader and rudimentary
ray-tracer.  We know we need to teach the fundamentals with vector and
matrix math, etc. (a linear algebra class is already set as a
pre-requisite), but our thought was that we could focus on OpenGL and teach
how these concepts are important even while working on this relatively high
level API.

Once we have the fundamentals down and an idea of how OpenGL works, I wanted
to introduce the students to OSG and how a scene graph helps.  Another big
goal is to teach them how to participate in an Open Source community.
Ultimately I would like to have the students work on final projects that
they might be able to submit to the cause.  There are SOOO many great things
they could learn from this effort.  I hope we are not trying to shove too
much into a 3 credit hour class, but I am excited to see how it goes.

So, we have a few ideas about the things I think we should cover, but I
would love to get some feedback from this great community about things that
you would teach in this kind of course.  I know I want to introduce them to
the coding standards and the submission guidelines you have on the website.
Are there other things we should consider on that front?  (should we
pre-screen the submissions before we send them off to you?).  What kinds of
projects would you recommend the students might be able to work on?  The LWO
and LWS readers are near and dear to my heart, so I was going to have them
work on features there, but I am certainly open to suggestions.

Thanks,
-- Rick


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread rpingry
Thanks Simon,

A CSG library would be a great idea to work on.  I needed one of those for
some work I did with Northrop Grumman.  The generalized extrusion function
is cool too, maybe for a single student or as a feature of the CSG library.
I didn't look too deeply, but does the gts library work with OSG?

-- Rick


For me Geometry handling and generators.

I've spent part of today writing a generalised extrusion function but I'd be
highly
surprised if this hasn't been done 10,000 times already.

I couldn't find such a function in osg.

If it is there, then maybe you could get your students to help with
the documentation in the code and on the website. ;)

Also a high level CSG library would be fantastic.
I'm doing CAD stuff and it would be so much faster if I could just specify
things like 'intersect a cylinder with this box'

This might be relatively straight forward, if the CSG library generates
meshes to feed to:

http://gts.sourceforge.net/

On Fri, Nov 7, 2008 at 12:26 PM, [EMAIL PROTECTED] wrote:

 Hello All,

 I am going to be teaching my first semester as a part-time adjunct
 professor at BYU-Idaho.  I am really EXCITED!  We will be teaching an intro.
 to graphics course that has not been taught before at this school.  Our
 focus will be on juniors and seniors wanting to get out in the industry and
 do something.

 Our thought is to take a direction slightly different from the traditional
 graphics course that works students through writing their own low level
 graphics operations through writing their own phong shader and rudimentary
 ray-tracer.  We know we need to teach the fundamentals with vector and
 matrix math, etc. (a linear algebra class is already set as a
 pre-requisite), but our thought was that we could focus on OpenGL and teach
 how these concepts are important even while working on this relatively high
 level API.

 Once we have the fundamentals down and an idea of how OpenGL works, I
 wanted to introduce the students to OSG and how a scene graph helps.
 Another big goal is to teach them how to participate in an Open Source
 community.  Ultimately I would like to have the students work on final
 projects that they might be able to submit to the cause.  There are SOOO
 many great things they could learn from this effort.  I hope we are not
 trying to shove too much into a 3 credit hour class, but I am excited to see
 how it goes.

 So, we have a few ideas about the things I think we should cover, but I
 would love to get some feedback from this great community about things that
 you would teach in this kind of course.  I know I want to introduce them to
 the coding standards and the submission guidelines you have on the website.
 Are there other things we should consider on that front?  (should we
 pre-screen the submissions before we send them off to you?).  What kinds of
 projects would you recommend the students might be able to work on?  The LWO
 and LWS readers are near and dear to my heart, so I was going to have them
 work on features there, but I am certainly open to suggestions.

 Thanks,
 -- Rick

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread rpingry
Thanks Paul,

Lots of great project ideas.
We are looking for text book kinds of materials.  Do you have
recommendations in that regard, perhaps something you and Bob have already
written?  Like I mentioned, I would really like to start off with OpenGL and
then show how OSG helps.

-- Rick




Hi Rick -- Congrats, this sounds like a great undertaking.

I have somewhat similar plans you might be interested in. My intent is to
set up an internship program with CU Boulder and take in two interns
starting in January. While I will expect real work out of them (to be open
sourced, either as an OSG contribution or a standalone project), I also
intend to teach them 3D graphics. Like you, I'll focus on using the
higher-level API, and only teach the low-level stuff as a means to
understanding the end.

Like you, I'm also afraid that this will be like drinking from a fire hose
-- way too much material for a semester-long internship. Hopefully, if the
interns do well through the January-April semester, I can convince them to
stay on over the summer and really put to use what they've learned for solid
code production.

Between the curriculum Bob Kuehne and I have developed for out OSG courses,
and the material I intend to create for this internship program, I hope to
finally have enough material to create the long-awaited OSG Programming
Guide book.

On the subject of final projects suitable for a semester course...
 * A set of replacements for the ShapeDrawables that use Geometry as their
base class. The benefit would be that code could easily access and modify
the vertices, they could be exported to FLT, etc.
 * A new polygon decimator that can remove boundary vertices (a limitation
of the existing osgUtil::Simplifier).
 * I've always thought it would be useful to write an export osgPlugin that
dumps out an HTML document per node, with the document displaying info about
that node and containing links to parent/children/siblings. This would be a
great analysis tool for any OSG developer.
 * Finally, there are always several new OpenGL extensions that could be
implemented in OSG... How about a Drawable that supports ARB_draw_instanced,
for example?

Let's keep in touch as our two programs progress.

On Fri, Nov 7, 2008 at 4:37 PM, [EMAIL PROTECTED] wrote:

 Thanks Simon,

 A CSG library would be a great idea to work on.  I needed one of those for
 some work I did with Northrop Grumman.  The generalized extrusion function
 is cool too, maybe for a single student or as a feature of the CSG library.
 I didn't look too deeply, but does the gts library work with OSG?

 -- Rick


 For me Geometry handling and generators.

 I've spent part of today writing a generalised extrusion function but I'd
 be
 highly
 surprised if this hasn't been done 10,000 times already.

 I couldn't find such a function in osg.

 If it is there, then maybe you could get your students to help with
 the documentation in the code and on the website. ;)

 Also a high level CSG library would be fantastic.
 I'm doing CAD stuff and it would be so much faster if I could just specify
 things like 'intersect a cylinder with this box'

 This might be relatively straight forward, if the CSG library generates
 meshes to feed to:

 http://gts.sourceforge.net/


 On Fri, Nov 7, 2008 at 12:26 PM, [EMAIL PROTECTED] wrote:

 Hello All,

 I am going to be teaching my first semester as a part-time adjunct
 professor at BYU-Idaho.  I am really EXCITED!  We will be teaching an intro.
 to graphics course that has not been taught before at this school.  Our
 focus will be on juniors and seniors wanting to get out in the industry and
 do something.

 Our thought is to take a direction slightly different from the traditional
 graphics course that works students through writing their own low level
 graphics operations through writing their own phong shader and rudimentary
 ray-tracer.  We know we need to teach the fundamentals with vector and
 matrix math, etc. (a linear algebra class is already set as a
 pre-requisite), but our thought was that we could focus on OpenGL and teach
 how these concepts are important even while working on this relatively high
 level API.

 Once we have the fundamentals down and an idea of how OpenGL works, I
 wanted to introduce the students to OSG and how a scene graph helps.
 Another big goal is to teach them how to participate in an Open Source
 community.  Ultimately I would like to have the students work on final
 projects that they might be able to submit to the cause.  There are SOOO
 many great things they could learn from this effort.  I hope we are not
 trying to shove too much into a 3 credit hour class, but I am excited to see
 how it goes.

 So, we have a few ideas about the things I think we should cover, but I
 would love to get some feedback from this great community about things that
 you would teach in this kind of course.  I know I want to introduce them to
 the coding standards and the submission guidelines you have on the 

Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread Simon Hammett
2008/11/7 [EMAIL PROTECTED]

 Thanks Simon,

 A CSG library would be a great idea to work on.  I needed one of those for 
 some work I did with Northrop Grumman.  The generalized extrusion function is 
 cool too, maybe for a single student or as a feature of the CSG library.  I 
 didn't look too deeply, but does the gts library work with OSG?

 -- Rick

Err, I don't think so.

I only did a really quick look (read: google search) to see if there
was a suitable library
for my particular needs that would feed OSG, but drew a blank.

Taking the output of GTS and feeding that into OSG is probably trivial,
but I think writing the mesh generators that input to GTS in a nice way,
with good LOD support and decent documentation would be a fair amount of work.

I'm working on a CAD related library for work purposes which has an end
of year deadline, so I can't afford to get bogged down with an immature project.

For my needs I'm just going to write the small sub set of generators
(e.g. cylinder, box, polyline/contour extruder) I need that output
directly into OSG even though
I'm just going to be duplicating stuff that's almost certainly been
done many times before.

From a style point of few, I'd like to see a CSG library that emulates boost,
more than OSG. OSG needs to support a more restricted compiler environment than
boost aims for; as such it has to avoid the special template tricks
that boost makes
extensive use of.

Mind you a proper boost style template library is probably far beyond
most students.

From your other email:
 Like I mentioned, I would really like to start off with OpenGL and then show 
 how OSG helps.

Thinking back on my computing related education I think if I wanted to teach
computer graphics myself I would do it the other way round to you.

I would start off by playing TF2 for half an hour with them and
then firing up the source:sdk  and Hammer and showing them the level
design and the
model editors.

Then go back from that to show how OSG can make those things
happen and then tag on a bit of the lower level OpenGL stuff right at the end.

For the really bright students it doesn't matter which way round you do it,
but for the less interested boring them to death with low level details isn't
going to help them. :)

Good luck with the course.

--
The truth is out there. Usually in header files.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Teaching an intro to graphics course

2008-11-07 Thread Jean-Sébastien Guay

Hi Rick,

We are looking for text book kinds of materials.  Do you have 
recommendations in that regard, perhaps something you and Bob have 
already written?  Like I mentioned, I would really like to start off 
with OpenGL and then show how OSG helps.


Hehe, you do know that Paul wrote OpenGL Distilled, don't you? Without a 
doubt, one of the best OpenGL books around. Along with the Red and 
Orange books, every OpenGL developer should have it. For a course, I 
would say you only need that one, and let the really interested students 
get the others if they want to continue down that path.


For a more general CG reference I would highly recommend Real-Time 
Rendering (now at 3rd edition) by Tomas Akenine-Möller, Eric Haines and 
Naty Hoffman. I've said it before on this list, this book is a 
must-have. Its breadth is astonishing (it covers almost any CG topic 
short of the really really advanced stuff) and when you need to go more 
in-depth on a given subject, it has a ton of references to point you in 
the right direction. (side note: on their site 
http://www.realtimerendering.com/ there are PowerPoint slides for a 
course, you could use that for inspiration if you want)


Not sure you can tell all your students to buy two textbooks for a 
class, but those are the two I would suggest: OpenGL Distilled and 
Real-Time Rendering. Perhaps you can pair the students and get each pair 
to get the two books (one per student) so they can benefit from both 
without buying both.


Anyways, good luck with the class. I agree with Simon: get them hooked 
with some nice visual results (games like TF2, Crysis, Mass Effect, etc. 
and perhaps some demos - see http://en.wikipedia.org/wiki/Demoscene) and 
then when they're really interested in the pretty pictures you can start 
teaching them how it's done.


One really important part is showing them early what the difference is 
between a pre-rendered animation and real-time stuff. That way they can 
appreciate the amount of work that goes into making things look that 
good even though it's real-time, and how you need to be ingenious to 
develop tricks and cheats in order to make it look like you're doing 
things that should be impossible to do in real-time. IMHO, that's the 
best part of what we do.


J-S
--
__
Jean-Sebastien Guay[EMAIL PROTECTED]
   http://www.cm-labs.com/
http://whitestar02.webhop.org/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org