Notes for Homework 11
- IMPORTANT NOTE: Depending on the ability of your home computer, you may
not be able to complete this assignment from home! The Linux machines in room 301 MLH will work for this
assignment. Please test your preferred machine and plan ahead, in case you need to work in the lab.
- NOTE: Make sure to update your webpage with images from this assignment!
- Download the "shader_template" required for this assignment:
- Windows executable only or source.
- Linux executable only or source.
- Linux executables can also be copied from "/group/class/c151/hw11_LinuxExecutable/" on DIVMS machines.
- Linux source can also be copied from "/group/class/c151/hw11_template/" on DIVMS machines.
- Note: To compile and run this shader program, you need GLEW installed.
- The Windows executable comes with the GLEW DLL.
- Problems may occur with multiple GLEW DLLs in your path. If so, delete the one that comes with the .zip file.
- The Windows source does not come with GLEW. You will need to download it.
- The Linux source files do not come with GLEW. You will need to
download it if you use a home machine.
- The README will include instructions for how to compile in the lab machines.
I will download and install GLEW there.
- The Linux executable comes with the GLEW dynamic libraries, and should run as-is.
- Information about vertex shaders
(the original, detailed specification is available here)
- Information about fragment shaders
(the original, detailed specification is available here)
- Another example vertex shader.
Debugging the message: "(*) Error! GL_ARB_vertex_program OpenGL extension not supported by current graphics card!"
This message can mean one of three things:
- You're running this program on a machine that does not
support the necessary extension. Goto 301 MLH!
You
CANNOT run this on a machine in 301 MLH and display it
elsewhere, even if both machines have good enough graphics
cards.
- You've got conflicting GLEW libraries.
This means earlier you installed GLEW, so you have multiple versions
in your path (either LD_LIBRARY_PATH for Linux or PATH for Windows).
The best solution is to recompile the program to use the newer version,
and delete the old GLEW library (which is probably the one I included).
- The driver in 301 MLH is falling back to software rendering.
This can occur if you have been logging into the Linux machines remotly to run
your OpenGL programs and HAVE NOT CLOSED your session from
the other machine. Since running OpenGL programs over the
network automatically reverts to the software rendering
pipeline (which does not support the necessary extensions),
the settings may not be reset until you log out of all DIVMS
machines and remote sessions and then physically relogin at
a terminal in 301.
If you absolutely cannot get the shader program working, please follow the following steps before
sending an e-mail to myself or the TA:
- Run "nvidia-settings" from the command line on your
machine.
- Go to the "OpenGL/GLX Information" tab.
- Scroll down to the "OpenGL Information" section.
- The vendor should be "NVIDIA Corporation"
- The renderer should be "GeForce FX 5200/PCI/SSE2"
- The version should be "2.0.1 NVIDIA 81.78"
- If the vendor is "MESA" or "SGI" (or has either of those
anywhere in the string), your machine is falling back
to software rendering (see above).
- If your version string reads "1.2 (2.0.1 NVIDIA 81.78)"
you are falling back to software rendering (see above)
- If you still cannot get things working, please send us
as much information as possible about the machine.
(the output of "/group/class/c151/bin/glewinfo" would
be helpful)
Last Modified: Tuesday, November 28, 2006
Chris Wyman (cwyman@cs.uiowa.edu)