By good guy help , I run&nbsp; understand VTK only through vtkOpenGLExtensionManager to support OpenGL 1.5 or 2.0!<br>  <br>  So I do it , my program could loadExtention and run , but I could not  see anything? I should see a red cube, if program run correct!<br>  <br>  why? there&nbsp; were something&nbsp; error?&nbsp; who can give some guide?<br>  <br>  thanks ! Following is my code !<br>  <br>  ==========================================================<br>  <br>  int shader()<br>  {<br>  <br>  &nbsp;&nbsp;&nbsp; vtkCubeSource* sphere = vtkCubeSource::New();<br>  <br>  <br>  &nbsp;&nbsp;&nbsp; vtkPolyDataMapper*&nbsp; sphereMapper = vtkPolyDataMapper::New();<br>  &nbsp;&nbsp;&nbsp; sphereMapper-&gt;SetInputConnection(sphere-&gt;GetOutputPort());<br>  &nbsp;&nbsp;&nbsp; <br>  &nbsp;&nbsp;&nbsp; vtkActor* sphereActor = vtkActor::New();<br>  &nbsp;&nbsp;&nbsp; sphereActor-&gt;SetMapper(sphereMapper);<br>  <br>  <br>  &nbsp;&nbsp;&nbsp; vtkRenderWindow *renWin =
 vtkRenderWindow::New();<br>  <br>  &nbsp;&nbsp;&nbsp; vtkOpenGLExtensionManager *extensions=vtkOpenGLExtensionManager::New();<br>  &nbsp;&nbsp;&nbsp; extensions-&gt;SetRenderWindow(renWin);<br>  <br>  &nbsp;&nbsp;&nbsp; int supports_GL_VERSION_2_0=extensions-&gt;ExtensionSupported("GL_VERSION_2_0");<br>  <br>  <br>  &nbsp;&nbsp;&nbsp; if(supports_GL_VERSION_2_0)<br>  &nbsp;&nbsp;&nbsp; {<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; extensions-&gt;LoadExtension("GL_VERSION_2_0");<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vertShader = vtkgl::CreateShader(vtkgl::VERTEX_SHADER) ;&nbsp;&nbsp;&nbsp; <br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fragShader = vtkgl::CreateShader(vtkgl::FRAGMENT_SHADER);<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; std::cout &lt;&lt; "Ok, Graphic Card&nbsp; supports GL_VERSION_2_0!" &lt;&lt; std::endl;<br>  &nbsp;&nbsp;&nbsp; }<br>  <br>  &nbsp;&nbsp;&nbsp; const vtkgl::GLchar* vs = "void main(){ gl_Position = ftransform(); } ";<br>  &nbsp;&nbsp;&nbsp;
 const vtkgl::GLchar* fs = "void main(){ gl_FragColor = vec4(1.0,0.0,0.0,0.0); }";<br>  <br>  <br>  &nbsp;&nbsp;&nbsp; const char * vv = vs;<br>  &nbsp;&nbsp;&nbsp; const char * ff = fs;<br>  <br>  &nbsp;&nbsp;&nbsp; vtkgl::ShaderSource( vertShader, 1, &amp;vs, NULL );<br>  &nbsp;&nbsp;&nbsp; vtkgl::ShaderSource( fragShader, 1, &amp;fs, NULL );<br>  <br>  &nbsp;&nbsp;&nbsp; vtkgl::CompileShader(vertShader);<br>  &nbsp;&nbsp;&nbsp; vtkgl::CompileShader(fragShader);<br>  <br>  &nbsp;&nbsp;&nbsp; programHandle = static_cast&lt;GLuint&gt;(vtkgl::CreateProgram());<br>  &nbsp;&nbsp;&nbsp; vtkgl::AttachShader(programHandle,vertShader);<br>  &nbsp;&nbsp;&nbsp; vtkgl::AttachShader(programHandle,fragShader);<br>  <br>  &nbsp;&nbsp;&nbsp; vtkgl::LinkProgram(programHandle);<br>  &nbsp; <br>  &nbsp;&nbsp;&nbsp; int maxLength&nbsp; = 1024;<br>  &nbsp;&nbsp;&nbsp; vtkgl::GLchar* info = new vtkgl::GLchar[maxLength];<br>  &nbsp; GLsizei charsWritten = 0;<br>  <br>  &nbsp;
 vtkgl::GetShaderInfoLog( vertShader, maxLength, &amp;charsWritten, info );<br>  <br>  &nbsp; if( info )<br>  &nbsp;&nbsp;&nbsp; {<br>  &nbsp;&nbsp;&nbsp; cout &lt;&lt; "Log message: " &lt;&lt; (char *)info &lt;&lt; endl;<br>  &nbsp;&nbsp;&nbsp; }<br>  <br>  &nbsp; vtkgl::GetShaderInfoLog( fragShader, maxLength, &amp;charsWritten, info );<br>  <br>  &nbsp; if( info )<br>  &nbsp;&nbsp;&nbsp; {<br>  &nbsp;&nbsp;&nbsp; cout &lt;&lt; "Log message: " &lt;&lt; (char *)info &lt;&lt; endl;<br>  &nbsp;&nbsp;&nbsp; }<br>  <br>  &nbsp;&nbsp;&nbsp; vtkgl::UseProgram(programHandle);<br>  <br>  <br>  &nbsp;&nbsp;&nbsp; vtkRenderer* ren1 = vtkRenderer::New();<br>  &nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer(ren1);<br>  &nbsp;&nbsp;&nbsp; vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();<br>  &nbsp;&nbsp;&nbsp; iren-&gt;SetRenderWindow(renWin);<br>  <br>  &nbsp;&nbsp;&nbsp; ren1-&gt;AddActor(sphereActor);<br>  <br>  &nbsp;&nbsp;&nbsp;
 ren1-&gt;SetBackground(0.1,0.2,0.4);<br>  &nbsp;&nbsp;&nbsp; renWin-&gt;SetSize(300,300);<br>  &nbsp;&nbsp;&nbsp; renWin-&gt;Render();<br>  <br>  &nbsp;&nbsp;&nbsp; iren-&gt;Initialize();<br>  &nbsp;&nbsp;&nbsp; iren-&gt;Start();<br>  <br>  &nbsp;&nbsp;&nbsp; return 0;<br>  }<br>  <br>  <br>  <br>  <p>&#32;
                <hr size=1><a href="http://music.yahoo.com.cn/?source=mail_mailbox_footer" target=blank> 
Mp3疯狂搜-新歌热歌高速下 
</a>