
將它與沒有透明度的原始影像進行比較:

不同之處在于vec4(fragColor, 0.5)和vec4(fragColor, 1.0)在片段著色器中:
program.addShaderFromSourceCode(QOpenGLShader::Fragment,
"#version 330\r\n"
"in vec3 fragColor;\n"
"out vec4 color;\n"
"void main() {\n"
" color = vec4(fragColor, 1.0);\n"
"}\n"
);
我可以設定其他選項嗎?
我的環境:Windows 10、MSVC 2019、QT 6.2。
編輯1:
在渲染三角形之前做了一些進一步的實驗并添加了以下內容:
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
并得到白色背景:

與glClearColor(0, 0, 0, 0.5)我有灰色:

uj5u.com熱心網友回復:
您的影像查看器在白色背景上顯示您的影像,以便您看到白色或灰色。隨著glClearColor(0, 0, 0, 1)你會看到在黑色背景上的透明三角:
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
但生成的三角形將是部分透明的,因此白色影像查看器背景將在三角形下部分可見。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378524.html
