

Моя настройка (минимум):
Инициализация окна SFML
Код: Выделить всё
sf::ContextSettings settings;
settings.depthBits = 24;
settings.stencilBits = 8;
settings.antialiasingLevel = 0;
settings.majorVersion = 3;
settings.minorVersion = 3;
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML + OpenGL", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glDisable(GL_ALPHA_TEST);
glDisable(GL_BLEND);
Код: Выделить всё
while (m_isRunning) {
handleEvents();
// Clear the screen
glClearColor(0.9f, 0.9f, 1.0f, 1.0f); // Opaque light blue background
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Update logic
m_activeScene->update(deltaTime);
// Render logic
window.pushGLStates();
m_activeScene->render(); // Custom rendering
window.popGLStates();
window.display();
}
Код: Выделить всё
#version 330 core
out vec4 FragColor;
in vec2 TexCoords;
uniform sampler2D texture_diffuse1;
void main() {
vec4 texColor = texture(texture_diffuse1, TexCoords);
FragColor = vec4(texColor.rgb, 1.0); // Force full opacity
}
- Я отключил глобальное смешивание перед рендерингом
Код: Выделить всё
glDisable(GL_BLEND); - Я убедился, что прозрачный цвет имеет полностью непрозрачное значение альфа
Код: Выделить всё
glClearColor(0.9f, 0.9f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - Я убедился, что глубинное тестирование включено
Код: Выделить всё
glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); - Я заменил фрагментный шейдер простым сплошным цветом, чтобы изолировать проблемы с текстурой. Модель по-прежнему отображается с прозрачностью в некоторых областях.
- Почему модель отображается с прозрачностью даже после отключения смешивания и обеспечения непрозрачности цветов в шейдере?
- Может ли проблема быть связана с альфа-каналом кадрового буфера по умолчанию? Если да, то как я могу визуализировать полностью непрозрачные объекты?
- Существуют ли другие состояния или конфигурации OpenGL, которые могут вызвать такое поведение при рендеринге 3D-моделей?
Подробнее здесь: https://stackoverflow.com/questions/793 ... rency-even
Мобильная версия