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
单独显示在OpenGL中渲染的立方体贴图的各个纹理片段_Opengl_Glsl_Fragment Shader - Fatal编程技术网

单独显示在OpenGL中渲染的立方体贴图的各个纹理片段

单独显示在OpenGL中渲染的立方体贴图的各个纹理片段,opengl,glsl,fragment-shader,Opengl,Glsl,Fragment Shader,我已经设置了一个立方体贴图,接下来我要做的是分别标记/显示立方体贴图每个面的纹理的哪些区域/部分正在被渲染(取决于相机) 例如,下面是我的基本顶点着色器: #version 400 in vec3 vp; uniform mat4 P, V; out vec3 texcoords; vec3 newP; void main () { texcoords = vp; gl_Position = P * V * vec4 (vp, 1.0); } 这是我的基本片段着色器: #ver

我已经设置了一个立方体贴图,接下来我要做的是分别标记/显示立方体贴图每个面的纹理的哪些区域/部分正在被渲染(取决于相机)

例如,下面是我的基本顶点着色器:

#version 400
in vec3 vp;
uniform mat4 P, V;
out vec3 texcoords;
vec3 newP;
void main () {
    texcoords = vp;
    gl_Position = P * V * vec4 (vp, 1.0);
}
这是我的基本片段着色器:

#version 400

in vec3 texcoords;
uniform samplerCube cube_texture;
out vec4 frag_colour;

void main () {
  frag_colour = texture (cube_texture, texcoords);
}

现在,我想展示立方体贴图的6个展开纹理,并为每个纹理在立方体贴图中显示相机正在查看的区域的颜色覆盖

例如,如果我的相机正在查看立方体左侧和后侧的交点,我需要一个单独的显示,在这里我可以看到展开的6面纹理和相应纹理的区域,相机正在查看并高亮显示(左墙的加载纹理的一半和后墙的加载纹理的一半)

我能了解一下如何实施这一点吗?或者如果有人在OpenGl中有类似的代码。
谢谢:)

我对您的问题的理解是,对于给定的立方体纹理坐标,在获取立方体贴图时将使用哪个面。这是正确的吗?不仅是哪个面,还有加载在面上的纹理的哪个区域正在被渲染?您希望如何显示这些信息?立方体贴图中渲染到屏幕的texel列表?显示特定的颜色?更改立方体贴图本身,更改获取的颜色值?现在还不清楚你想看到什么。显示立方体贴图的展开的6个纹理,并在立方体贴图中为每个纹理覆盖相机正在查看的区域。然后将其放入你的问题中。让你的问题更清楚。我对你的问题的理解是,对于给定的立方体纹理坐标,你想显示在获取立方体贴图时将使用哪个面。这是正确的吗?不仅是哪个面,还有加载在面上的纹理的哪个区域正在被渲染?您希望如何显示这些信息?立方体贴图中渲染到屏幕的texel列表?显示特定的颜色?更改立方体贴图本身,更改获取的颜色值?现在还不清楚你想看到什么。显示立方体贴图的展开的6个纹理,并在立方体贴图中为每个纹理覆盖相机正在查看的区域。然后将其放入你的问题中。把你的问题弄清楚。