Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于距离的简单细分中的T连接_Python_Opengl_Glsl_Pyopengl_Tesselation - Fatal编程技术网

Python 基于距离的简单细分中的T连接

Python 基于距离的简单细分中的T连接,python,opengl,glsl,pyopengl,tesselation,Python,Opengl,Glsl,Pyopengl,Tesselation,我使用openGL中的tesselation control/evaluation着色器为未来的地形渲染实现了一个简单的基于距离的LOD。令人惊讶的是,我的输出中仍然有裂缝(T连接)。。。 着色器代码是 统一mat4 pvmM; 统一的vec4 u_camerapos; #ifdef细分控制着色器 布局(顶点=4)向外; 无符号整数距离(vec3 p1、vec3 p2、vec3 p3) { 浮点d=距离((p1+p2)/2.0,p3);//精确浮点d=(…) 如果(dOK),则发现错误。 生成索

我使用openGL中的tesselation control/evaluation着色器为未来的地形渲染实现了一个简单的基于距离的LOD。令人惊讶的是,我的输出中仍然有裂缝(T连接)。。。 着色器代码是

统一mat4 pvmM;
统一的vec4 u_camerapos;
#ifdef细分控制着色器
布局(顶点=4)向外;
无符号整数距离(vec3 p1、vec3 p2、vec3 p3)
{
浮点d=距离((p1+p2)/2.0,p3);//精确浮点d=(…)
如果(dOK),则发现错误。
生成索引数组(面)时,我使用了错误的绕组(与GL_QUAD_STRIP的绕组相同)。正确的面数组应为:

faces= np.array([(x+z*blocksz,x+1+z*blocksz,x+1+(z+1)*blocksz,x+(z+1)*blocksz ) for z in range(blocksz-1) for x in range(blocksz-1)  ],dtype='i4')
然后,在tess求值着色器中(注意点2和3)

vec4 p1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);
vec4 p2 = mix(gl_in[3].gl_Position, gl_in[2].gl_Position, gl_TessCoord.x);