From: Markus W. <mr...@tn...> - 2008-05-28 12:21:34
|
Hi everyone, I hope this is the right place to ask these questions. We are currently working on a university computer graphics project. The task is to implement a simple scene (which in our case is a pyramid and crypt room), having the choice between using standard glut functions or OpenSG. We gladly chose OpenSG ;) That said, all of us have little to no knowledge of more complex C++ programming and had no experience with OpenSG before starting the task. We worked our way through the tutorials but some questions remained unanswered for us, which we hope to be able to solve with your help. 1) We'd like to be able to navigate the scene using the Walk Navigator. As I understand it this navigator also checks for object intersection and blocks movement through objects. In the documentation I saw the possibility to set a ground and world for the navigator. Is this needed or optional. Currently our Navigator seems to work partially - when hovering over the ground and switching to walk, the view "snaps" back to ground level. Two problems arise though: the navigator seems to stop when reaching a wall (simple plane in our case), the view penetrates the wall though, additionally the navigator gets stuck - unable to move back. Second problem is that it happens that the view tilts to one side. I tried to set an UpVector, but with no success. Do I need a ground object? I seem to remember from old times with Performer that if no ground was given a ray was cast "downward" to check for a ground? 2) Fly and Walk Navigator: When clicking left or right mouse button the view only advanced one frame. When keeping the button down _and_ moving the mouse, the scene moved forward. I tried to fix this by connecting the glut idle callback to the display function. Now keeping the mouse button pressed seems to work. Pressing and moving seems to speed up the movement alot though. Shouldn't this be a consistent speed? What are we doing wrong? 3) Lighting and Shadows: We are trying to light a simple room with a couple of pillars with 2 point lights and 1 directional light. Point light problems: The shadows cast seem to be correct mostly, although some shadows seem to be in wrong places. Is this because point lights do have a direction although they should be omnidirectional? Spotlight: The Spotlight seems to correctly light the pillars, but not the floor. The floor gets lit by the other lights correctly though, so normals should be ok. 4) mgr->SetStatistics(): I tried to use the Statistics view I saw in a couple of the tutorials. Setting this to true though doesn't change our scene display. Is this because we are using a shadow viewport? Sorry if these questions might sound a little naive, but we are out of clues. Any help or pointers to the right direction are greatly appreciated. If anyone has the time or interest to look at the code it is located at our svn: http://code.google.com/p/cg1-project-wookies Many thanks Markus W. |