-1
에 나는 맥에 테셀레이션 쉐이더를 시도하고 있지만 오류 목록을 반환OpenGL을 테셀레이션 오류가 맥
ERROR: 0:2: Invalid use of layout 'vertices'
ERROR: 0:12: Use of undeclared identifier 'gl_InvocationID'
ERROR: 0:12: Use of undeclared identifier 'gl_InvocationID'
ERROR: 0:13: Use of undeclared identifier 'gl_InvocationID'
ERROR: 0:14: Use of undeclared identifier 'gl_TessLevelInner'
ERROR: 0:15: Use of undeclared identifier 'gl_TessLevelOuter'
ERROR: 0:16: Use of undeclared identifier 'gl_TessLevelOuter'
ERROR: 0:17: Use of undeclared identifier 'gl_TessLevelOuter'
이 테셀레이션 컨트롤러 쉐이더에 문제가있는 것 같다.
#version 410
layout(vertices = 3) out;
in vec3 vPosition[];
out vec3 tcPosition[];
uniform float TessLevelInner;
uniform float TessLevelOuter;
#define ID gl_InvocationID
void main()
{
tcPosition[ID] = vPosition[ID];
if (ID == 0) {
gl_TessLevelInner[0] = TessLevelInner;
gl_TessLevelOuter[0] = TessLevelOuter;
gl_TessLevelOuter[1] = TessLevelOuter;
gl_TessLevelOuter[2] = TessLevelOuter;
}
}
내 OpenGL을 프로젝트 이것이에서라도 문제입니다 만약 내가 궁금하네요 ... 내 2010 윈도우 PC에서 잘 작동? 내 Mac의 GPU는 Intel Iris입니다. 누구나 이것에 대한 단서 ...
MAIN.CPP 코드에서 here
static GLuint LoadProgram(const char* vert, const char* tcs, const char* tes,const char* geom, const char* frag)
{
GLuint prog = glCreateProgram();
if(vert) AttachShader(prog, GL_VERTEX_SHADER, vert);
if(tcs) AttachShader(prog, GL_VERTEX_SHADER, tcs);
if(tes) AttachShader(prog, GL_VERTEX_SHADER, tes);
if(geom) AttachShader(prog, GL_GEOMETRY_SHADER, geom);
if(frag) AttachShader(prog, GL_FRAGMENT_SHADER, frag);
glLinkProgram(prog);
CheckStatus(prog);
return prog;
}
초기화 중에 * Core * OpenGL 컨텍스트를 요청 하시겠습니까? –
다음과 같이 glfw 초기화시 GLFW_OPENGL_CORE_PROFILE을 초기화했습니다. glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); –
위에 공유 된 main.cpp를 확인하십시오 –