2014-05-14 2 views
2

SharpGL에서 기하학 쉐이더를 사용한 사람이 있습니까? 내 코드에서이를 수행하는 방법을 알아낼 수 없습니다. 내가 알기로 ShaderProgram에서 SharpGL.Shaders까지 제공되는 Create 메소드는 매개 변수로 Vertex ShaderFragment Shader만을 취한다.SharpGL 및 기하학 쉐이더

public void Create(
    OpenGL gl, 
    string vertexShaderSource, 
    string fragmentShaderSource, 
    Dictionary<uint, string> attributeLocations 
); 

Geometry Shader를 SharpGL을 통해 OpenGL과 연결하려면 어떻게해야합니까? 또는 Geometry Shader을 얻으려면 다른 접근 방식을 사용해야합니까?

답변

2

나는 내 자신의 질문에 대한 해결책을 찾았습니다. 상당히 간단한 OpenGL 접근 방식을이 문제에 적용 할 수 있습니다. 필요한 것은 기하 구조 쉐이더를 생성하고, 컴파일하고, 프로그램에 첨부하는 것입니다.

uint program = gl.CreateProgram(); 
uint geom = gl.CreateShader(OpenGL.GL_GEOMETRY_SHADER); 
gl.ShaderSource(shader, geometryShaderSourceString); 
gl.CompileShader(shader); 
gl.AttachShader(program, geom);