c++ - 在 openGL 中绘制具有透明度的实心球体

标签 c++ opengl graphics transparency glut

我想画一个有一定透明度的glutSolidSphere,但是好像不行。

glColor4f(1, 0, 0, 0); // should be completely invisible
glPushMatrix();
glTranslatef(position.x, position.y, position.z);
glutSolidSphere(3, 5, 5);
glPopMatrix();

在我的主要功能中,我使用以下显示模式进行初始化:

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA | GLUT_ALPHA);

我在这里错过了什么?

最佳答案

您需要明确设置 alpha blending . Another example .

glEnable (GL_BLEND);

glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

关于c++ - 在 openGL 中绘制具有透明度的实心球体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451399/

相关文章:

c++ - 在不同 block 之间使用 C++ 类对象

C++容器问题

c++ - 在 c++ 中,为什么编译器在 const 也可以工作时选择非常量函数?

c++ - Assimp无法加载PLY模型的顶点颜色

opengl - OpenGL的glClear()在Windows 64中导致访问冲突(0xc0000005)

c++ - 堆叠 Cg 着色器

c++ - std::experimental::optional<T> 实现:Constexpr 构造函数混淆

r - ggplot stat_smooth : change look of multiple bands

java - Sprite 数组列表永远行不通!需要帮助了解如何在 JAVA 中创建类实例数组

opengl - 如何在不创建窗口的情况下检查 OpenGL 和 GLSL 版本?