c++ - 仅对某些对象透明?

标签 c++ opengl transparency alphablending

我已经成功地使用了一个透明的立方体

glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

在 shader.frag 中:

gl_FragColor = vec4(texture2D(TextureMap_uniform, uv).xyz,0.5);

但现在我希望我在透明立方体上方移动的实体模型是不透明的(此时透明度应用于所有内容)。谁能指出我正确的方向?

最佳答案

你们使用的是同一个着色器吗? 如果是,那么您需要将有关每个对象的不透明度的信息传递给您的着色器。 一种简单的方法是使用统一变量。

检查这些链接:

https://www.khronos.org/opengl/wiki/Uniform_(GLSL) https://www.khronos.org/opengl/wiki/GLAPI/glUniform

关于c++ - 仅对某些对象透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56076839/

相关文章:

c++ - 引用,地址,取消引用和指针的含义

c++ - openGL修复相机?

css - 不同页面上的相同元素显示不同的 CSS

graphics - 使用SVG进行附加颜色混合(附加混合)

c++ - va_arg() 的问题

c++ - 如何在 VS Code C++ 调试器中启用 justMyCode?

c++ - 如何使用 C++/OpenGL 加载透明背景的图标并正确显示?

c++ - 纹理不会在 OpenGL 和 Xcode 上显示

ios - 如何将半透明 UIView 添加到 UIViewController

c++ - 这个C++结构是什么意思?