Мой соответствующий код рендеринга:
Код: Выделить всё
public void Render(Camera cam)
{
GL.DepthMask(false);
GL.UseProgram(SkyboxShader.ProgramID);
var camview = new Matrix4(new Matrix3(cam.GetPositionMatrix()));
var camproj = cam.GetFOVMatrix();
GL.UniformMatrix4(SkyboxShader.UniformMatrixView, false, ref camview);
GL.UniformMatrix4(SkyboxShader.UniformMatrixProjection, false, ref camproj);
GL.BindVertexArray(SkyboxVAO);
GL.ActiveTexture(TextureUnit.Texture11);
GL.BindTexture(TextureTarget.TextureCubeMap, CubeMap.ID);
GL.Uniform1(GL.GetUniformLocation(SkyboxShader.ProgramID, "skyboxCubeMap"), 11);
GL.DrawArrays(PrimitiveType.Triangles, 0, 36);
GL.DepthMask(true);
GL.UseProgram(0);
}
Код: Выделить всё
#version 330 core
layout (location = 0) in vec3 aPos;
out vec3 TexCoord;
uniform mat4 projection;
uniform mat4 view;
void main()
{
TexCoord = vec3(0.5, 0.5, 1.0);
vec4 pis = projection * view * vec4(aPos, 1.0);
gl_Position = pis.xyww;
}
Код: Выделить всё
#version 330 core
out vec4 FragColor;
in vec3 TexCoord;
uniform samplerCube skyboxCubeMap;
void main()
{
FragColor = texture(skyboxCubeMap, TexCoord);
}
Я уже проверил, правильно ли загрузилось изображение (да, массив пикселей заполнен значениями) , мой метод рендеринга действительно был вызван (да), и если были какие-либо ошибки GL (нет). Я совершенно не понимаю, что искать.
Подробнее здесь: https://stackoverflow.com/questions/786 ... lor-output
Мобильная версия